:root{--background:#fff;--outerBackground:#eee;--links:#0645ad;--bodyFont:var(--body-text-color,#000);--tooltip:#fff;--grayToWhite:#333;--dropdownBg:#fff;--dropdownHoverBg:#f5f5f5;--navbar:#f8f8f8;--navbarFont:#707070;--navbarFontHover:#000;--alerts:#d9edf7;--completionButton:#f19711;--completionButtonHover:#ff9f19;--completionButtonText:#000;--admonition:#fcf8e3;--admonitionBorder:#fbeed5;--codeButtons:#474949;--codeButtonsBorder:#474949;--dangerAlerts:#f2dede;--successAlerts:#dff0d8;--contentWidthRegular:660px;--contentWidthWide:1060px;--componentBgColor:#f0f8ff;--componentBorderColor:#000;--questionBgColor:#e1efff;--parsonsBgColor:#ffa;--parsonsBorderColor:#ee0;--parsonsCorrectBgColor:#dff0d8;--parsonsCorrectBorderColor:#ade595;--parsonsIncorrectBgColor:#f2dede;--parsonsIncorrectBorderColor:#f2b6b6;--draggableBgColor:#efefef;--dropableBgColor:#ddd;--draggableIncorrectBorder:red;--draggableIncorrectBg:#f2dede;--dragLineColor:#000;--boxBorderColor:#000}:root.dark-mode{--background:#2c2f33;--outerBackground:#23272a;--links:#7289da;--bodyFont:var(--body-text-color,#99aab5);--tooltip:#000;--grayToWhite:#e1e1e1;--navbar:#3d3d3d;--navbarFont:#fff;--navbarFontHover:#d6d6d6;--alerts:#714082;--completionButton:#650087;--completionButtonHover:#560073;--completionButtonText:#fff;--admonition:#3d3d3d;--admonitionBorder:#262626;--codeButtons:#67739d;--codeButtonsBorder:#fff;--dangerAlerts:#8c2626;--successAlerts:#217300;--componentBgColor:var(--rs-component-bg,var(--knowl-background,#07467d));--componentBorderColor:var(--rs-component-border,var(--knowl-border-color,#939090));--questionBgColor:var(--rs-component-bg,var(--knowl-nested-1-background,#0f5a9b));--parsonsBgColor:#e8e8b2;--parsonsBorderColor:#a8a82d;--parsonsCorrectBgColor:#a3c097;--parsonsCorrectBorderColor:#60904c;--parsonsIncorrectBgColor:#ae9090;--parsonsIncorrectBorderColor:#c16b6b;--draggableBgColor:#393434;--dropableBgColor:#2a2d30;--draggableIncorrectBorder:red;--draggableIncorrectBg:#6d2d2d;--dragLineColor:#fff;--boxBorderColor:#fff}[data-theme=dark]{--background:#2c2f33;--outerBackground:#23272a;--links:#7289da;--bodyFont:#99aab5;--tooltip:#000;--grayToWhite:#fff;--dropdownBg:#1a1a1a;--dropdownHoverBg:#333;--navbar:#3d3d3d;--navbarFont:#fff;--navbarFontHover:#d6d6d6;--alerts:#714082;--completionButton:#650087;--completionButtonHover:#560073;--completionButtonText:#fff;--admonition:#3d3d3d;--admonitionBorder:#262626;--codeButtons:#7289da;--codeButtonsBorder:#fff;--dangerAlerts:#8c2626;--successAlerts:#217300;--componentBgColor:#07467d;--componentBorderColor:#939090;--questionBgColor:#17555d;--draggableBgColor:#393434;--dropableBgColor:#2a2d30;--draggableIncorrectBorder:red;--draggableIncorrectBg:#6d2d2d;--dragLineColor:#fff;--boxBorderColor:#fff}.ptx-runestone-container div.assignment-nav,.runestone-sphinx div.assignment-nav{background-color:var(--componentBgColor);border-color:var(--componentBorderColor);border-style:solid;border-width:1px;padding-bottom:5px;padding-top:5px}.ptx-runestone-container div.assignment-nav a,.runestone-sphinx div.assignment-nav a{color:var(--link-alt-text-color,var(--links));font-weight:700}.ptx-runestone-container td.linenos pre,.runestone-sphinx td.linenos pre{color:#6b6b6b}.ptx-runestone-container .str,.runestone-sphinx .str{color:#006b00}.ptx-runestone-container .parsons .block,.runestone-sphinx .parsons .block{background-color:#fafafa}.ptx-runestone-container .highlight .c1,.runestone-sphinx .highlight .c1{color:#376a7b}.ptx-runestone-container .highlight .nn,.runestone-sphinx .highlight .nn{color:#0f6c95}.ptx-runestone-container .highlight .gp,.runestone-sphinx .highlight .gp{color:#a14c08}.ptx-runestone-container .highlight .si,.runestone-sphinx .highlight .si{color:#3c773d}.ptx-runestone-container .highlight .nc,.runestone-sphinx .highlight .nc{color:#0b719d}.ptx-runestone-container ul.search li div.context,.runestone-sphinx ul.search li div.context{color:#6b6b6b}.ptx-runestone-container span.highlighted,.runestone-sphinx span.highlighted{color:#4d4d4d}.ptx-runestone-container .CodeMirror-linenumber,.runestone-sphinx .CodeMirror-linenumber{color:#6b6b6b}.ptx-runestone-container .alert-warning,.runestone-sphinx .alert-warning{background-color:var(--admonition);border-color:var(--admonitionBorder)}.ptx-runestone-container div.ExecutionVisualizer table#pyCodeOutput .lineNo,.runestone-sphinx div.ExecutionVisualizer table#pyCodeOutput .lineNo{color:#6b6b6b}.ptx-runestone-container body,.runestone-sphinx body{background-color:var(--outerBackground);counter-reset:rscomponent;padding-top:60px}.ptx-runestone-container h5,.runestone-sphinx h5{font-weight:700;padding:10px 0}.ptx-runestone-container #table-of-contents a,.runestone-sphinx #table-of-contents a{color:var(--links)}.ptx-runestone-container #table-of-contents a:hover,.runestone-sphinx #table-of-contents a:hover{color:var(--links);text-decoration:underline}.ptx-runestone-container #table-of-contents.section,.runestone-sphinx #table-of-contents.section{font-size:16px}.ptx-runestone-container .navbar-default,.runestone-sphinx .navbar-default{background-color:var(--navbar)}.ptx-runestone-container .navbar-default .navbar-nav>li,.ptx-runestone-container .navbar-default .navbar-nav>li>a,.runestone-sphinx .navbar-default .navbar-nav>li,.runestone-sphinx .navbar-default .navbar-nav>li>a{color:var(--navbarFont)}.ptx-runestone-container .navbar-default .navbar-nav>li>a:hover,.runestone-sphinx .navbar-default .navbar-nav>li>a:hover{color:var(--navbarFontHover)}.ptx-runestone-container .navbar-default .navbar-brand,.runestone-sphinx .navbar-default .navbar-brand{color:var(--navbarFont)}.ptx-runestone-container .toctree-wrapper,.runestone-sphinx .toctree-wrapper{font-size:16px}.ptx-runestone-container .toctree-wrapper a,.runestone-sphinx .toctree-wrapper a{color:var(--links)}.ptx-runestone-container .toctree-wrapper a:hover,.runestone-sphinx .toctree-wrapper a:hover{color:var(--links);text-decoration:underline}.ptx-runestone-container #index-and-search.section,.runestone-sphinx #index-and-search.section{font-size:16px}.ptx-runestone-container #index-and-search.section a,.runestone-sphinx #index-and-search.section a{color:var(--links)}.ptx-runestone-container #index-and-search.section a:hover,.runestone-sphinx #index-and-search.section a:hover{color:var(--links);text-decoration:underline}.ptx-runestone-container a,.runestone-sphinx a{color:var(--links)}@media (max-width:768px){.ptx-runestone-container body,.runestone-sphinx body{padding-top:0}.ptx-runestone-container .navbar-fixed-top,.runestone-sphinx .navbar-fixed-top{position:static}}@media (min-width:768px){.ptx-runestone-container .navbar .divider-vertical,.runestone-sphinx .navbar .divider-vertical{border-left:1px solid #f2f2f2;margin:0 3px}.ptx-runestone-container .navbar-fixed-top .container,.runestone-sphinx .navbar-fixed-top .container{padding:0}}.ptx-runestone-container div.container,.runestone-sphinx div.container{background-color:var(--background)}.ptx-runestone-container .container,.runestone-sphinx .container{padding-left:10px;padding-right:10px}.ptx-runestone-container .runestone,.runestone-sphinx .runestone{background-color:var(--componentBgColor);border-color:var(--componentBorderColor);border-radius:10px;border-style:solid;clear:both;margin-bottom:20px;margin-top:20px;padding:15px}.ptx-runestone-container #main-content section>:not(section),.runestone-sphinx #main-content section>:not(section){margin-left:auto;margin-right:auto;max-width:var(--contentWidthRegular)}.ptx-runestone-container #main-content section>.codelens,.ptx-runestone-container #main-content section>.jupyterlite_sphinx_iframe_container,.ptx-runestone-container #main-content section>.question,.ptx-runestone-container #main-content section>.runestone.ac_section,.ptx-runestone-container #main-content section>.runestone.codelens,.ptx-runestone-container #main-content section>.runestone.parsons-container,.ptx-runestone-container #main-content section>.runestone.parsons-problems,.ptx-runestone-container #main-content section>.timedAssessment,.ptx-runestone-container #main-content section>section,.runestone-sphinx #main-content section>.codelens,.runestone-sphinx #main-content section>.jupyterlite_sphinx_iframe_container,.runestone-sphinx #main-content section>.question,.runestone-sphinx #main-content section>.runestone.ac_section,.runestone-sphinx #main-content section>.runestone.codelens,.runestone-sphinx #main-content section>.runestone.parsons-container,.runestone-sphinx #main-content section>.runestone.parsons-problems,.runestone-sphinx #main-content section>.timedAssessment,.runestone-sphinx #main-content section>section{margin-left:auto;margin-right:auto;max-width:var(--contentWidthWide)}.ptx-runestone-container #main-content section>.full-width,.runestone-sphinx #main-content section>.full-width{max-width:var(--contentWidthWide)}.ptx-runestone-container .container section>img,.runestone-sphinx .container section>img{display:block;margin-left:auto;margin-right:auto}.ptx-runestone-container .container-fluid>.navbar-collapse,.ptx-runestone-container .container-fluid>.navbar-header,.ptx-runestone-container .container>.navbar-collapse,.ptx-runestone-container .container>.navbar-header,.runestone-sphinx .container-fluid>.navbar-collapse,.runestone-sphinx .container-fluid>.navbar-header,.runestone-sphinx .container>.navbar-collapse,.runestone-sphinx .container>.navbar-header{margin-left:0;margin-right:0}.ptx-runestone-container .navbar>.container .navbar-brand,.runestone-sphinx .navbar>.container .navbar-brand{margin-left:0}.ptx-runestone-container .navbar>.container,.runestone-sphinx .navbar>.container{background-color:var(--navbar)}.ptx-runestone-container .navbar-toggle,.runestone-sphinx .navbar-toggle{margin-right:0}.ptx-runestone-container .footer>.container,.runestone-sphinx .footer>.container{background-color:var(--outerBackground)}.ptx-runestone-container .footer>.container p>a,.runestone-sphinx .footer>.container p>a{color:var(--links)}.ptx-runestone-container .brand-logo,.runestone-sphinx .brand-logo{display:block;float:left;margin-top:4px}.ptx-runestone-container .brand-logo img,.runestone-sphinx .brand-logo img{height:40px}.ptx-runestone-container .social-menu,.runestone-sphinx .social-menu{padding:10px 10px 15px 20px;width:220px}.ptx-runestone-container .fb-like,.runestone-sphinx .fb-like{margin-top:7px}.ptx-runestone-container .fb_iframe_widget iframe,.ptx-runestone-container .fb_iframe_widget span,.runestone-sphinx .fb_iframe_widget iframe,.runestone-sphinx .fb_iframe_widget span{height:20px!important;width:82px!important}.ptx-runestone-container .twitter-follow-button,.runestone-sphinx .twitter-follow-button{margin-top:10px}.ptx-runestone-container .gittip,.runestone-sphinx .gittip{margin-top:8px}.ptx-runestone-container .gittip-button,.runestone-sphinx .gittip-button{margin-bottom:-6px}.ptx-runestone-container .dropdown-menu>li>div,.ptx-runestone-container .dropdown-menu>li>label,.ptx-runestone-container .dropdown-menu>li>span,.runestone-sphinx .dropdown-menu>li>div,.runestone-sphinx .dropdown-menu>li>label,.runestone-sphinx .dropdown-menu>li>span{clear:both;color:var(--grayToWhite);display:block;font-weight:700;line-height:20px;padding:3px 20px;white-space:nowrap}.ptx-runestone-container .dropdown-menu>li>label:focus,.ptx-runestone-container .dropdown-menu>li>label:hover,.runestone-sphinx .dropdown-menu>li>label:focus,.runestone-sphinx .dropdown-menu>li>label:hover{background-color:var(--dropdownHoverBg,#f5f5f5);color:var(--grayToWhite);text-decoration:none}.ptx-runestone-container .dropdown-menu,.runestone-sphinx .dropdown-menu{background-color:var(--dropdownBg,#fff)}.ptx-runestone-container .dropdown-menu>li>a,.runestone-sphinx .dropdown-menu>li>a{color:var(--grayToWhite)}.ptx-runestone-container .dropdown-menu>li>a:focus,.ptx-runestone-container .dropdown-menu>li>a:hover,.ptx-runestone-container .dropdown-menu>li>label:focus,.ptx-runestone-container .dropdown-menu>li>label:hover,.runestone-sphinx .dropdown-menu>li>a:focus,.runestone-sphinx .dropdown-menu>li>a:hover,.runestone-sphinx .dropdown-menu>li>label:focus,.runestone-sphinx .dropdown-menu>li>label:hover{background-color:var(--dropdownHoverBg,#f5f5f5);color:var(--grayToWhite)}.ptx-runestone-container .loggedinuser,.runestone-sphinx .loggedinuser{font-weight:700}.ptx-runestone-container .CodeMirror,.runestone-sphinx .CodeMirror{background-color:var(--background);clear:both;margin:0 0 1em}.ptx-runestone-container .ac_section .CodeMirror pre,.runestone-sphinx .ac_section .CodeMirror pre{word-wrap:normal;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;-o-border-radius:0;border-radius:0;border-width:0;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:inherit;margin:0;padding:0;white-space:pre}.ptx-runestone-container .btn,.runestone-sphinx .btn{background-image:none;border:1px solid transparent;border-radius:4px;cursor:pointer;display:inline-block;font-size:14px;font-weight:400;line-height:1.42857143;margin-bottom:0;padding:6px 12px;text-align:center;touch-action:manipulation;user-select:none;vertical-align:middle;white-space:nowrap}.ptx-runestone-container .btn.focus,.ptx-runestone-container .btn:focus,.ptx-runestone-container .btn:hover,.runestone-sphinx .btn.focus,.runestone-sphinx .btn:focus,.runestone-sphinx .btn:hover{color:#333;text-decoration:none}.ptx-runestone-container .btn.focus,.ptx-runestone-container .btn:focus,.runestone-sphinx .btn.focus,.runestone-sphinx .btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.ptx-runestone-container .btn.active,.ptx-runestone-container .btn:active,.runestone-sphinx .btn.active,.runestone-sphinx .btn:active{background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125);outline:0}.ptx-runestone-container .btn.disabled,.ptx-runestone-container .btn[disabled],.ptx-runestone-container fieldset[disabled] .btn,.runestone-sphinx .btn.disabled,.runestone-sphinx .btn[disabled],.runestone-sphinx fieldset[disabled] .btn{box-shadow:none;cursor:not-allowed;opacity:.65}.ptx-runestone-container .btn-lg,.runestone-sphinx .btn-lg{border-radius:6px;font-size:18px;line-height:1.3333333;padding:10px 16px}.ptx-runestone-container .btn-sm,.runestone-sphinx .btn-sm{border-radius:3px;font-size:12px;line-height:1.5;padding:5px 10px}.ptx-runestone-container .btn-xs,.runestone-sphinx .btn-xs{border-radius:3px;font-size:12px;line-height:1.5;padding:1px 5px}.ptx-runestone-container .btn-block,.runestone-sphinx .btn-block{display:block;width:100%}.ptx-runestone-container .btn-block+.btn-block,.runestone-sphinx .btn-block+.btn-block{margin-top:5px}.ptx-runestone-container btn.btn-sm,.ptx-runestone-container button.btn,.ptx-runestone-container input[type=button].btn.btn-sm,.ptx-runestone-container input[type=submit].btn.btn-sm,.runestone-sphinx btn.btn-sm,.runestone-sphinx button.btn,.runestone-sphinx input[type=button].btn.btn-sm,.runestone-sphinx input[type=submit].btn.btn-sm{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1em}.ptx-runestone-container .dropdown-menu .input-group .input-group-btn button.btn,.runestone-sphinx .dropdown-menu .input-group .input-group-btn button.btn{font-size:14px}.ptx-runestone-container .btn,.runestone-sphinx .btn{margin:5px}.ptx-runestone-container .btn.disabled,.runestone-sphinx .btn.disabled{pointer-events:auto}.ptx-runestone-container .btn-default,.ptx-runestone-container .btn-default.disabled,.ptx-runestone-container .btn-default.disabled:hover,.ptx-runestone-container .btn-default[disabled],.ptx-runestone-container .btn-default[disabled]:hover,.runestone-sphinx .btn-default,.runestone-sphinx .btn-default.disabled,.runestone-sphinx .btn-default.disabled:hover,.runestone-sphinx .btn-default[disabled],.runestone-sphinx .btn-default[disabled]:hover{background-color:var(--codeButtons);border-color:var(codeButtonsBorder);color:#fff}.ptx-runestone-container .btn-default.active,.ptx-runestone-container .btn-default:active,.ptx-runestone-container .btn-default:focus,.ptx-runestone-container .btn-default:hover,.runestone-sphinx .btn-default.active,.runestone-sphinx .btn-default:active,.runestone-sphinx .btn-default:focus,.runestone-sphinx .btn-default:hover{background-color:#3a3c3c;border-color:#2e2f2f;color:#fff}.ptx-runestone-container input[type=checkbox],.ptx-runestone-container input[type=radio],.runestone-sphinx input[type=checkbox],.runestone-sphinx input[type=radio]{margin-right:5px}.ptx-runestone-container .tooltip,.runestone-sphinx .tooltip{z-index:2000!important}.ptx-runestone-container .tooltip.in,.runestone-sphinx .tooltip.in{filter:alpha(opacity=80);opacity:.8}.ptx-runestone-container h2,.runestone-sphinx h2{margin-top:20px}.ptx-runestone-container .alert form,.runestone-sphinx .alert form{margin-bottom:0}.ptx-runestone-container .alert,.runestone-sphinx .alert{color:var(--grayToWhite);padding:10px}.ptx-runestone-container .alert-info,.runestone-sphinx .alert-info{background-color:var(--alerts)}.ptx-runestone-container .alert-danger,.runestone-sphinx .alert-danger{background-color:var(--dangerAlerts)}.ptx-runestone-container .alert-success,.runestone-sphinx .alert-success{background-color:var(--successAlerts)}.ptx-runestone-container .unittest-results.alert-danger,.runestone-sphinx .unittest-results.alert-danger{background-color:var(--dangerAlerts)!important}.ptx-runestone-container .unittest-results.alert-success,.runestone-sphinx .unittest-results.alert-success{background-color:var(--successAlerts)!important}.ptx-runestone-container .alert label,.runestone-sphinx .alert label{font-weight:400}.ptx-runestone-container .navbar_message,.runestone-sphinx .navbar_message{font-weight:700;margin-top:15px}.ptx-runestone-container dt.label>span.brackets:not(span.brackets>a),.ptx-runestone-container dt.label>span.fn-backref:not(span.fn-backref>a),.runestone-sphinx dt.label>span.brackets:not(span.brackets>a),.runestone-sphinx dt.label>span.fn-backref:not(span.fn-backref>a){color:#000}.ptx-runestone-container .admonition,.runestone-sphinx .admonition{background-color:var(--admonition);border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;margin-bottom:20px!important;margin-top:20px!important;padding:8px 35px 8px 14px!important;text-shadow:0 1px 0 hsla(0,0%,100%,.5)}.ptx-runestone-container .admonition.caution,.runestone-sphinx .admonition.caution{background-color:#f2dede;border-color:#eed3d7;color:#a33f3e}.ptx-runestone-container .admonition.note,.ptx-runestone-container .admonition.tip,.runestone-sphinx .admonition.note,.runestone-sphinx .admonition.tip{background-color:#d9edf7;border-color:#bce8f1;color:#333}.ptx-runestone-container div.flash,.runestone-sphinx div.flash{-webkit-font-smoothing:antialiased;background-color:#000;background-image:-webkit-linear-gradient(top,#222,#000);background-image:-o-linear-gradient(top,#222,#000);background-image:-moz-linear-gradient(90deg,#222,#000);background-image:linear-gradient(top,#222,#000);background-repeat:repeat-x;border:2px solid #fff;border-radius:8px;-moz-border-radius:8px;-webkit-border-radius:8px;color:#fff;cursor:pointer;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;margin:0 0 10px 10px;opacity:.95;padding:10px;position:fixed;right:45px;top:55px;vertical-align:middle;z-index:2000}.ptx-runestone-container #web2py_user_form,.runestone-sphinx #web2py_user_form{margin-top:10px}.ptx-runestone-container #web2py_user_form form,.runestone-sphinx #web2py_user_form form{float:left;margin-right:150px;padding-top:3px}.ptx-runestone-container #web2py_user_form td,.runestone-sphinx #web2py_user_form td{padding-bottom:15px}.ptx-runestone-container #web2py_user_form td.w2p_fw,.runestone-sphinx #web2py_user_form td.w2p_fw{width:299px}.ptx-runestone-container #auth-actions,.runestone-sphinx #auth-actions{margin-top:50px}.ptx-runestone-container #sign_in_text td,.runestone-sphinx #sign_in_text td{color:#333;font-family:lucida grande,Verdana,sans-serif;font-size:17px;padding-bottom:13px}.ptx-runestone-container #auth_user_remember,.runestone-sphinx #auth_user_remember{margin-top:-20px}.ptx-runestone-container #exercises>ol>li,.ptx-runestone-container #programming-exercises>ol>li,.runestone-sphinx #exercises>ol>li,.runestone-sphinx #programming-exercises>ol>li{margin-bottom:30px}.ptx-runestone-container #exercises>ol>li:nth-child(2n),.ptx-runestone-container #programming-exercises>ol>li:nth-child(2n),.runestone-sphinx #exercises>ol>li:nth-child(2n),.runestone-sphinx #programming-exercises>ol>li:nth-child(2n){background:#faf7df;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;padding:1.2em 1.4em}.ptx-runestone-container .scratch-ac-modal,.runestone-sphinx .scratch-ac-modal{max-height:90%;overflow-y:scroll;width:90%}.ptx-runestone-container .compare-modal .progress,.runestone-sphinx .compare-modal .progress{margin-bottom:0}.ptx-runestone-container .compare-me-progress,.runestone-sphinx .compare-me-progress{width:100%}.ptx-runestone-container .compare-me-progress .progress-bar,.ptx-runestone-container .unittest-results-progress .progress-bar,.runestone-sphinx .compare-me-progress .progress-bar,.runestone-sphinx .unittest-results-progress .progress-bar{color:#333}.ptx-runestone-container .unittest-results-progress,.runestone-sphinx .unittest-results-progress{width:25%}.ptx-runestone-container .compare-modal,.runestone-sphinx .compare-modal{width:350px}.ptx-runestone-container .compare-modal table,.runestone-sphinx .compare-modal table{border-collapse:separate;border-spacing:10px 5px}.ptx-runestone-container .codelens-modal,.runestone-sphinx .codelens-modal{bottom:auto;left:auto;right:20%;top:20%}@media (max-width:768px){.ptx-runestone-container .codelens-modal,.runestone-sphinx .codelens-modal{bottom:0!important;left:0!important;right:0!important;top:0!important}}.ptx-runestone-container .codelens-modal>.modal-dialog,.runestone-sphinx .codelens-modal>.modal-dialog{width:400px}.ptx-runestone-container .footnote.table,.runestone-sphinx .footnote.table{margin-bottom:10px;width:auto}.ptx-runestone-container .footnote.table td.label,.runestone-sphinx .footnote.table td.label{background-color:#d9edf7;padding:2px 5px}.ptx-runestone-container .ac-canvas,.runestone-sphinx .ac-canvas{background-color:#fff;display:inline-block}.ptx-runestone-container .video-play-overlay,.runestone-sphinx .video-play-overlay{background-position:50%;background-repeat:no-repeat;height:85px;left:44%;position:relative;top:-150px;width:130px}.ptx-runestone-container .video_popup video,.runestone-sphinx .video_popup video{cursor:pointer;width:var(--contentWidthRegular)}.ptx-runestone-container .ui-sortable-helper,.runestone-sphinx .ui-sortable-helper{height:auto!important;width:auto!important}.ptx-runestone-container .navLink,.runestone-sphinx .navLink{bottom:65px;display:inline;opacity:.4;position:fixed;z-index:2}.ptx-runestone-container .navLink:hover,.runestone-sphinx .navLink:hover{opacity:1}.ptx-runestone-container .navLink a,.runestone-sphinx .navLink a{background-color:#fff;border:2px solid #d3d3d3;display:inline-block;height:50px;width:100px}.ptx-runestone-container #relations-next,.runestone-sphinx #relations-next{right:35px}.ptx-runestone-container #relations-prev,.runestone-sphinx #relations-prev{left:35px}.ptx-runestone-container .nextprev-list,.runestone-sphinx .nextprev-list{height:50px;margin:10px;padding-left:0}@media (max-width:600px){.ptx-runestone-container .navLink,.runestone-sphinx .navLink{bottom:auto;display:inline-block;position:absolute}.ptx-runestone-container #relations-next,.ptx-runestone-container #relations-prev,.runestone-sphinx #relations-next,.runestone-sphinx #relations-prev{display:inline;padding:0 20px;width:25%}}.ptx-runestone-container #completionButton,.runestone-sphinx #completionButton{color:var(--completionButtonText);font-weight:700;margin-bottom:15px;margin-top:25px;padding-left:70px;padding-right:70px}.ptx-runestone-container .buttonAskCompletion,.runestone-sphinx .buttonAskCompletion{background-color:var(--completionButton);border-color:var(--completionButtonHover);font-weight:700}.ptx-runestone-container .buttonAskCompletion:hover,.runestone-sphinx .buttonAskCompletion:hover{background-color:var(--completionButtonHover);border-color:var(--completionButtonHover)}.ptx-runestone-container .buttonConfirmCompletion,.runestone-sphinx .buttonConfirmCompletion{background-color:#377e22;border-color:#3dc682;color:#fff!important}.ptx-runestone-container .buttonConfirmCompletion:hover,.runestone-sphinx .buttonConfirmCompletion:hover{background-color:#3dc682;border-color:#3dc682}.ptx-runestone-container .navLinkBg,.runestone-sphinx .navLinkBg{background-color:#fff;bottom:55px;-webkit-box-shadow:0 0 3px rgba(50,50,50,.5);-moz-box-shadow:0 0 3px rgba(50,50,50,.5);box-shadow:0 0 3px rgba(50,50,50,.5);color:#999;font-weight:700;height:40px;position:fixed;z-index:1}.ptx-runestone-container .navLinkBg:hover,.runestone-sphinx .navLinkBg:hover{color:#999}.ptx-runestone-container #navLinkBgRight,.runestone-sphinx #navLinkBgRight{padding:10px 15px 0 65px;right:-1000px}.ptx-runestone-container #navLinkBgLeft,.runestone-sphinx #navLinkBgLeft{left:-65px;padding-left:15px;padding-right:50px}.ptx-runestone-container .activehtml,.runestone-sphinx .activehtml{background-color:#fff;height:400px;width:100%}.ptx-runestone-container .container section>div.sidebar,.runestone-sphinx .container section>div.sidebar{margin:0 0 .5em 1em}.ptx-runestone-container a.disqus_thread_link,.runestone-sphinx a.disqus_thread_link{display:block}.ptx-runestone-container .reveal_button,.runestone-sphinx .reveal_button{display:block;margin-left:0}.ptx-runestone-container iframe[seamless],.runestone-sphinx iframe[seamless]{display:block}@media (min-width:768px){.ptx-runestone-container .container section>div.sidebar,.runestone-sphinx .container section>div.sidebar{margin:0 3em .5em 1em}}@media (min-width:992px){.ptx-runestone-container .container section>div.sidebar,.runestone-sphinx .container section>div.sidebar{margin:0 11em .5em 1em}}@media (min-width:1200px){.ptx-runestone-container .container section>div.sidebar,.runestone-sphinx .container section>div.sidebar{margin:0 18em .5em 1em}}.ptx-runestone-container div.ExecutionVisualizer table.visualizer,.runestone-sphinx div.ExecutionVisualizer table.visualizer{background-color:#fff;margin-left:auto;margin-right:auto;width:auto}.ptx-runestone-container .sltooltip,.runestone-sphinx .sltooltip{bottom:120%;display:block;font-size:11px;margin-left:-2em;margin-top:-2px;padding-bottom:5px;position:absolute;visibility:visible;z-index:1020}.ptx-runestone-container .sltooltip .sltooltip-arrow,.runestone-sphinx .sltooltip .sltooltip-arrow{border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000;bottom:0;height:0;left:50%;margin-left:-5px;position:absolute;width:0}.ptx-runestone-container .sltooltip-inner,.runestone-sphinx .sltooltip-inner{background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:var(--tooltip);max-width:200px;padding:3px 8px;text-align:center;text-decoration:none}.ptx-runestone-container ul.dropdown-menu.globaltoc,.runestone-sphinx ul.dropdown-menu.globaltoc{max-height:700px;overflow:auto}.ptx-runestone-container .globaltoc span.caption-text,.runestone-sphinx .globaltoc span.caption-text{display:inline-block;font-size:large;font-weight:700}.ptx-runestone-container textarea.lp-result,.runestone-sphinx textarea.lp-result{font-family:monospace;height:10em;width:100%}.ptx-runestone-container .visuallyhidden,.runestone-sphinx .visuallyhidden{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.ptx-runestone-container .visuallyhidden.focusable:active,.ptx-runestone-container .visuallyhidden.focusable:focus,.runestone-sphinx .visuallyhidden.focusable:active,.runestone-sphinx .visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;white-space:inherit;width:auto}.ptx-runestone-container .blockquote,.runestone-sphinx .blockquote{font-size:large;font-style:italic;padding-left:2em;padding-right:2em;text-align:center}.ptx-runestone-container #subchapterprogress.ui-progressbar .ui-progressbar-value,.runestone-sphinx #subchapterprogress.ui-progressbar .ui-progressbar-value{border-radius:0;margin:0}.ptx-runestone-container #subchapterprogress>div,.runestone-sphinx #subchapterprogress>div{background:green}.ptx-runestone-container #subchapterprogress>div.loggedout,.runestone-sphinx #subchapterprogress>div.loggedout{background:#d3d3d3}.ptx-runestone-container .runestone_caption,.runestone-sphinx .runestone_caption{text-align:center}.ptx-runestone-container .runestone_caption_divid,.runestone-sphinx .runestone_caption_divid{opacity:50%}.ptx-runestone-container #questions .runestone_caption:before,.runestone-sphinx #questions .runestone_caption:before{content:"Problem: " counter(rscomponent) " -- ";counter-increment:rscomponent}.ptx-runestone-container body,.runestone-sphinx body{color:var(--bodyFont)}.ptx-runestone-container .jupyter_container .output,.runestone-sphinx .jupyter_container .output{margin-top:10px}.ptx-runestone-container .jupyter_container .output td,.ptx-runestone-container .jupyter_container .output th,.runestone-sphinx .jupyter_container .output td,.runestone-sphinx .jupyter_container .output th{padding-left:5px;padding-right:5px}.ptx-runestone-container .dropdown-menu>li>label.theme-switch,.runestone-sphinx .dropdown-menu>li>label.theme-switch{align-items:center;cursor:pointer;display:flex;font-weight:400}.ptx-runestone-container .theme-switch input,.runestone-sphinx .theme-switch input{display:none}.ptx-runestone-container .theme-switch .slider,.runestone-sphinx .theme-switch .slider{background-color:#ccc;height:1.25em;margin-right:3px;position:relative;transition:.4s;width:2em}.ptx-runestone-container .theme-switch .slider:before,.runestone-sphinx .theme-switch .slider:before{background-color:#fff;bottom:2px;content:"";height:calc(1.25em - 4px);left:2px;position:absolute;transition:.4s;width:calc(1.25em - 4px)}.ptx-runestone-container .theme-switch input:checked+.slider,.runestone-sphinx .theme-switch input:checked+.slider{background-color:#66bb6a}.ptx-runestone-container .theme-switch input:checked+.slider:before,.runestone-sphinx .theme-switch input:checked+.slider:before{transform:translateX(calc(.75em - 1px))}.ptx-runestone-container .theme-switch .slider.round,.ptx-runestone-container .theme-switch .slider.round:before,.runestone-sphinx .theme-switch .slider.round,.runestone-sphinx .theme-switch .slider.round:before{border-radius:1.25em}.ptx-runestone-container .adcopy,.runestone-sphinx .adcopy{background-color:#f2e0c3;border:2px solid #000;border-radius:10px;margin-left:auto;margin-right:auto;margin-top:10px;padding:10px;width:60%}.ptx-runestone-container .adcopy .donateb,.runestone-sphinx .adcopy .donateb{margin-left:30%}.ptx-runestone-container .isCorrect:before,.runestone-sphinx .isCorrect:before{content:"\e86c ";float:right;font-family:Material Symbols Outlined;padding-left:4px}.ptx-runestone-container .isInCorrect:before,.runestone-sphinx .isInCorrect:before{content:"\e349 ";float:right;font-family:Material Symbols Outlined;padding-left:4px}.ptx-runestone-container .isAssigned:before,.runestone-sphinx .isAssigned:before{content:"\f3de ";float:right;font-family:Material Symbols Outlined;padding-left:4px}.ptx-runestone-container .isCorrect.isAssigned:before,.runestone-sphinx .isCorrect.isAssigned:before{content:"\e86c \f3de ";float:right;font-family:Material Symbols Outlined;padding-left:4px}.ptx-runestone-container .isInCorrect.isAssigned:before,.runestone-sphinx .isInCorrect.isAssigned:before{content:"\e349 \f3de ";float:right;font-family:Material Symbols Outlined;padding-left:4px}.ptx-runestone-container pre,.runestone-sphinx pre{background:inherit;color:inherit}.ptx-runestone-container summary.ptx-footnote__number,.runestone-sphinx summary.ptx-footnote__number{display:inline}.ptx-runestone-container details>summary:first-of-type,.runestone-sphinx details>summary:first-of-type{display:list-item inline}.ptx-runestone-container details.ptx-footnote,.runestone-sphinx details.ptx-footnote{display:inline}.ptx-runestone-container .handsontable td,.ptx-runestone-container .handsontable th,.runestone-sphinx .handsontable td,.runestone-sphinx .handsontable th{background-color:var(--content-background,#fff);color:var(--bodyFont,#000)}.ptx-runestone-container legend,.runestone-sphinx legend{border-bottom-color:var(--grayToWhite,#333);color:var(--grayToWhite,#333)}.ptx-runestone-container .autopermalink,.runestone-sphinx .autopermalink{display:none}.ptx-runestone-container :root,.runestone-sphinx :root{--codebuttons:#474949}.ptx-runestone-container [data-theme=dark],.runestone-sphinx [data-theme=dark]{--codebuttons:#2c0aa6}.ptx-runestone-container li.dropdown.open a.dropdown-toggle,.ptx-runestone-container li.dropdown.open a.dropdown-toggle:focus,.runestone-sphinx li.dropdown.open a.dropdown-toggle,.runestone-sphinx li.dropdown.open a.dropdown-toggle:focus{background-color:#2a5659!important;border:0!important;color:#f8f8f8!important}.ptx-runestone-container a.dropdown-toggle:focus,.runestone-sphinx a.dropdown-toggle:focus{background-color:#52a6ac!important;color:#f8f8f8!important}.ptx-runestone-container li.divider-vertical,.runestone-sphinx li.divider-vertical{margin:0!important}.ptx-runestone-container li.dropdown a.dropdown-toggle,.runestone-sphinx li.dropdown a.dropdown-toggle{padding:15px 18px!important}.ptx-runestone-container button.btn.btn-default:active,.ptx-runestone-container button.btn.btn-default:focus,.runestone-sphinx button.btn.btn-default:active,.runestone-sphinx button.btn.btn-default:focus{background-color:#fff!important;color:#474949!important}.ptx-runestone-container button.btn.btn-default,.runestone-sphinx button.btn.btn-default{background-color:#474949!important;color:#fff!important}.ptx-runestone-container button.btn.btn-default.btn-sm.disabled:active,.ptx-runestone-container button.btn.btn-default.btn-sm.disabled:focus,.runestone-sphinx button.btn.btn-default.btn-sm.disabled:active,.runestone-sphinx button.btn.btn-default.btn-sm.disabled:focus{background-color:#fff!important;color:#474949!important}.ptx-runestone-container button.btn.btn-default.btn-sm.disabled,.runestone-sphinx button.btn.btn-default.btn-sm.disabled{background-color:#474949!important;color:#fff!important}.ptx-runestone-container button.btn.btn-success:active,.ptx-runestone-container button.btn.btn-success:focus,.runestone-sphinx button.btn.btn-success:active,.runestone-sphinx button.btn.btn-success:focus{background-color:#fff!important;color:#427e44!important}.ptx-runestone-container button.btn.btn-success,.runestone-sphinx button.btn.btn-success{background-color:#427e44!important;color:#fff!important}.ptx-runestone-container button.btn.btn-primary:active,.ptx-runestone-container button.btn.btn-primary:focus,.runestone-sphinx button.btn.btn-primary:active,.runestone-sphinx button.btn.btn-primary:focus{background-color:#fff!important;color:#3379b6!important}.ptx-runestone-container button.btn.btn-primary,.runestone-sphinx button.btn.btn-primary{background-color:#3379b6!important;color:#fff!important}.ptx-runestone-container button.btn.btn-info:active,.ptx-runestone-container button.btn.btn-info:focus,.runestone-sphinx button.btn.btn-info:active,.runestone-sphinx button.btn.btn-info:focus{background-color:#fff!important;color:#1a6a83!important}.ptx-runestone-container button.btn.btn-info,.runestone-sphinx button.btn.btn-info{background-color:#1a6a83!important;color:#fff!important}.ptx-runestone-container button.btn.btn-warning:active,.ptx-runestone-container button.btn.btn-warning:focus,.runestone-sphinx button.btn.btn-warning:active,.runestone-sphinx button.btn.btn-warning:focus{background-color:#fff!important;color:#945c0e!important}.ptx-runestone-container button.btn.btn-warning,.runestone-sphinx button.btn.btn-warning{background-color:#945c0e!important;color:#fff!important}.ptx-runestone-container button.btn.btn-danger:active,.ptx-runestone-container button.btn.btn-danger:focus,.runestone-sphinx button.btn.btn-danger:active,.runestone-sphinx button.btn.btn-danger:focus{background-color:#fff!important;color:#d33a35!important}.ptx-runestone-container button.btn.btn-danger,.runestone-sphinx button.btn.btn-danger{background-color:#d33a35!important;color:#fff!important}.ptx-runestone-container button.btn.btn-link:active,.ptx-runestone-container button.btn.btn-link:focus,.runestone-sphinx button.btn.btn-link:active,.runestone-sphinx button.btn.btn-link:focus{background-color:#1a6a83!important;color:#fff!important}.ptx-runestone-container button.btn.btn-link,.runestone-sphinx button.btn.btn-link{background-color:#fff!important;color:#1a6a83!important}#scprogresscontainer{margin:10px auto;max-width:500px;width:100%}#subchapterprogress{background-color:var(--alerts);border:1px solid var(--grayToWhite);border-radius:5px;height:20px;position:relative;width:100%}.exercise-statement{display:block;margin-bottom:1em}:root{--menu:#fff}[data-theme=dark]{--menu:#000}.my-highlighted-text{background-color:#ff9}.social-highlighted-text{background-color:#fcc}.highlight-option-box{left:0;position:absolute;top:0}.highlight-option-box li{height:24px}#continue-reading{display:none;padding-top:20px}#continue-reading a{float:right;margin-right:20px}li.completed{list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO5JREFUeNpi/P//PwMlgImBQjAwBthc4osH4skgNguJGrmA1BQgjgPiUJIMAGpWBVKrgNgAiL2P6H3aRrQBQM12QGo1EIsBcQxMM0oYABXxAjETFs2+QGobVHM9UPNSjEAEKgoEUjeBuBhNcwDUZm4gXg/U3IRuAcwLSkAsCcRdQE16QDoRiG2BGGQbOxA/BOIcbN5jhKVEoMYiINULFT8PxCJALAvlhwBtX4vXAKghpSBXoKlZCtQcQ1RCAirsBlJVSEIfgLiRpJQINKQdSNVCuTOB/Nt44xjkBWzY+iJvGRBr4pKHYUZKszNAgAEAln9yGpx/ZXMAAAAASUVORK5CYII=)}li.active{list-style-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIlJREFUeNpi/P//PwMlgImBQjAMDGCBsxZIkaYz4RmaAZhAHYjNoOxTQHwTvwsQgAeIe4E4DU18FhAXAPF3QgbMB+IQLOIgA4WAOBRfIOri0AwDIDktfAbYEBF89jRNB0eI0HMEnwGXgXgNHs1roGrweiERGmUMWKIxkZh08AWI04G4j5iEBBBgAPddF58mobqdAAAAAElFTkSuQmCC)}.infoTextCompleted{color:#3dc682}.infoTextActive,.infoTextCompleted{display:none;font-size:.9em;font-style:italic;margin-left:10px;opacity:.7}.infoTextActive{color:#ff9f19}.dropdown-menu{background-clip:padding-box;background-color:var(--menu);border:1px solid rgba(0,0,0,.2);border-radius:5px 5px 5px 5px;box-shadow:0 5px 10px rgba(0,0,0,.2);display:none;list-style:none outside none;margin:1px 0 0;min-width:160px;padding:4px 0;position:absolute;top:100%;z-index:1000}.dropdown-menu ul{list-style:disc none outside;margin:0 0 9px 25px;padding:0}.sidebar-highlights{background-color:#ff9}div.documentwrapper{border:0}div.bodywrapper{border-right:0}div.sphinxsidebar{border-left:1px solid #ccc;padding-left:10px}.body>.section .section{padding-top:1px}#jump-to-chapter{border:1px solid #ccc;letter-spacing:.015em;line-height:120%;margin-left:auto;margin-right:auto;padding:.5em;width:80%}[data-theme=dark] #jump-to-chapter{background-color:#000;border-color:#555;color:#fff}[data-theme=dark] #jump-to-chapter option{background-color:#000;color:#fff}#navigation-links{background-color:#f8f8f8;border:1px solid #ccc;margin:10px;padding:10px}.runestone-sphinx .hidden{display:none}.runestone-sphinx .view-toggle{padding:.85em}.runestone-sphinx .presentation-mode section *{display:none}.runestone-sphinx .presentation-mode section .runestone,.runestone-sphinx .presentation-mode section .runestone *{display:initial}.runestone-sphinx .full-height,.runestone-sphinx .present{height:100vh}.runestone-sphinx .bottom{bottom:0;position:absolute}.runestone-sphinx #codeDisplayDiv{width:auto!important}.runestone-sphinx div.ExecutionVisualizer #dataViz{margin:0}.runestone-sphinx div.ExecutionVisualizer div#stackHeader{text-align:center}.runestone-sphinx #stackFrame{display:block!important}.runestone-sphinx #stackHeapTable{width:100%}.runestone-sphinx #stackHeapTable tr{justify-content:space-around}.runestone-sphinx div.ExecutionVisualizer td#heap_td,.runestone-sphinx div.ExecutionVisualizer td#stack_td{flex:1}.runestone-sphinx .presentation-title{display:none}.runestone-sphinx .present .presentation-title{display:block}.runestone-sphinx div.ExecutionVisualizer div#heap{float:none;padding-left:0}.runestone-sphinx #heap_td tr,.runestone-sphinx #stack_td tr{display:table-row}.runestone-sphinx #codeDisplayDiv{margin:0 auto}.runestone-sphinx #vizLayoutTd{flex:1}.runestone-sphinx #vizLayoutTdFirst{flex:2}.runestone-sphinx #vizLayoutTdSecond{flex:1}.runestone-sphinx #vizLayoutTdThird{flex:2}.runestone-sphinx #progOutputs{display:block!important;margin:0 20px;width:60%}.runestone-sphinx #pyStdout{width:100%!important}.runestone-sphinx div.ExecutionVisualizer #pyStdout{margin-bottom:1em}.runestone-sphinx div.ExecutionVisualizer table.visualizer{width:100%}.runestone-sphinx .present #vizLayoutTdThird{text-align:left}.runestone-sphinx .ac-block{display:flex;margin-bottom:1em}.runestone-sphinx .row-mode .ac-block{display:block;margin-bottom:0}.runestone-sphinx .row-mode .ac_code_div,.runestone-sphinx .row-mode .ac_output{display:block;float:none;max-width:none;width:auto}.runestone-sphinx .row-mode .ac_code_div{margin-bottom:1em}.runestone-sphinx .ac_section>*{max-width:100%}.runestone-sphinx .ac_output{display:block;max-width:100%}.runestone-sphinx .ac_output pre{min-height:60px;visibility:visible!important}.runestone-sphinx .CodeMirror{border-radius:3px;margin:0;max-width:100%;min-height:60px}.runestone-sphinx .container section>runestone:not(.ac_section){margin:0;max-width:none}.runestone-sphinx .presentation-options{align-items:center;display:flex;justify-content:flex-end}.runestone-sphinx .layout-btn{align-items:center;background-color:#fbeed5;border:2px solid #dfd4be;border-radius:2px;display:flex;justify-content:center;margin:0 .5rem;padding:.25rem;transition:all .2s ease}.runestone-sphinx .layout-btn.active-layout,.runestone-sphinx .layout-btn:focus{border:2px solid #979797;outline:none}.runestone-sphinx .sketchpad-container{min-height:300px;min-width:50%;padding:0 15px}.runestone-sphinx .card-mode .sketchpad-container{display:inline-block;margin:0;vertical-align:top;width:50%}.runestone-sphinx .row-mode .error{margin:20px 15px}.runestone-sphinx .card-mode .error{display:inline-block;margin:28px 0 0;padding:0 15px;vertical-align:top;width:50%}.runestone-sphinx .sketchpad{background:#fff;border:2px solid grey;border-radius:3px;display:block;min-height:300px;width:100%}.runestone-sphinx .btn-presenter{border-radius:3px;font-weight:500;margin:1.5rem 0 1.5rem 1.5rem;padding:.5rem 1rem}.runestone-sphinx .btn-grey-outline{background:#fff;border:2px solid grey;color:grey}.runestone-sphinx .btn-grey-solid{background:grey;border:2px solid grey;color:#fff}.runestone-sphinx body.present .ac_section>*{max-width:none}.runestone-sphinx body.present iframe{width:100%}.runestone-sphinx body.present #relations-next,.runestone-sphinx body.present #relations-prev,.runestone-sphinx body.present .navLinkBg{display:none}.runestone-sphinx body.present .btn-presenter{position:absolute}.runestone-sphinx body.present .btn-presenter.prev-exercise{left:0}.runestone-sphinx body.present .btn-presenter.next-exercise{right:0}
/*# sourceMappingURL=prefix-runestone.66fa8a682a32c0ac.css.map*/