﻿html{font-kerning:normal;text-rendering:optimizeLegibility;scroll-behavior:smooth}body{display:grid;grid-template-columns:1fr 3fr 1fr;grid-template-rows:40px 1fr 40px;grid-template-areas:"header header header" "sidebar main outline" "footer footer footer";margin:0;height:100vh}header{grid-area:header;background-color:#1e3799;color:#eee}.menu-left-right{display:flex}.menu-left-right nav.menu-left{flex:1;display:flex}.menu-left-right nav.menu-right{display:flex}.menu-left-right .menu-item{padding:10px}.menu-left-right img{padding:2px}.menu-left-right a{display:inline-block;color:#eee}.menu-left-right a:hover{color:#eee}.menu-left-right a:visited{color:#eee}nav#sidebar{grid-area:sidebar}main{grid-area:main}#outline{grid-area:outline}footer{grid-area:footer;background-color:#1e3799;color:#eee}#header-menu{display:flex;align-items:center}nav ul{padding-left:1rem}nav ul li{list-style:none}img{width:100%}aside{padding:.5rem 1rem .5rem .75rem;margin:1rem 0;background-color:rgba(130,204,221,.1254901961);border-left:.25rem solid #82ccdd;border-radius:.25rem}aside.devnote{background-color:rgba(229,80,57,.1254901961);border-left:.25rem solid #e55039}aside.teaching-note{background-color:rgba(96,163,188,.2509803922);border-left:.25rem solid #0a3d62}aside.checkpoint{background-color:rgba(246,185,59,.1254901961);border-left:.25rem solid #f6b93b}aside.vocabulary{background-color:rgba(184,233,148,.1254901961);border-left:.25rem solid #b8e994}aside.deliverables{background-color:rgba(248,194,145,.2509803922);border-left:.25rem solid #eb2f06}.setup-details{padding:.5rem 1rem .5rem .75rem;margin:1rem 0;background-color:rgba(184,233,148,.1254901961);border-left:.25rem solid #b8e994;border-radius:.25rem;cursor:pointer}.setup-details summary::marker{content:"⚙️ "}.setup-details .header{font-weight:bold}pre code::after{display:none}code table td:first-child{color:#7f7f7f}code table td:last-child{padding-left:1em}table{overflow:auto;border-spacing:0;border-collapse:collapse;margin-top:1rem;margin-bottom:1rem}table tr th,.markdown table tr td{padding:.5rem 1rem;border:1px solid #e9ecef}table tr td{padding:.5rem 1rem;border:1px solid #e9ecef}@keyframes fade-in{0%{opacity:0}50%{opacity:.8}100%{opacity:1}}a{color:#079992;text-decoration:none}a:hover{color:#38ada9}a:visited{color:#079992}h2 .anchor,h3 .anchor,h4 .anchor{visibility:hidden;text-decoration:none;cursor:pointer;line-height:1;color:#222}h2:hover .anchor,h3:hover .anchor,h4:hover .anchor{visibility:visible;animation:fade-in .3s ease-in-out;font-family:"FabricMDL2Icons"}main.autonumber{counter-reset:h2 h3}main.autonumber h2::before{counter-increment:h2;counter-set:h3;content:counter(h2) ". "}main.autonumber h3::before{counter-increment:h3;content:counter(h2) "." counter(h3) ". "}table td,table th{border:1px solid #222}pre{margin:1.5rem 0;border-radius:4px;padding:1.5rem;overflow:scroll;position:relative}pre code{background:rgba(0,0,0,0);padding:0}pre code::after{content:attr(data-lang);font-style:italic;line-height:1;opacity:.3;position:absolute;bottom:1.5rem;right:1.5rem;z-index:1}pre table{margin:0}code{padding:0 .25rem;background:#e9ecef;border-radius:.25rem;font-size:.875em}.copy-code-button{font-family:"FabricMDL2Icons";display:none;background:rgba(106,137,204,.062745098);border-radius:4px;border:none;cursor:pointer;animation:fade-in .3s ease-in-out;font-size:1.5rem;color:#222;z-index:10;position:absolute;top:1.5rem;right:1.5rem}pre:hover .copy-code-button{display:block}main{animation:fade-in .4s ease-in-out}#release::before{content:"";font-family:"FabricMDL2Icons";margin-right:calc(1.5rem / 8)}@keyframes slideIn{0%{max-height:0;opacity:0}100%{max-height:999px;opacity:1}}@keyframes slideOut{0%{height:auto;opacity:1}100%{height:0;opacity:0}}nav label{display:block}.active a{font-weight:bold}blockquote{border-left:#82ccdd;margin:0;background-color:rgba(130,204,221,.1254901961);padding:0 20px}details summary p{display:inline}@font-face{font-family:"FabricMDL2Icons";src:url("data:application/octet-stream;base64,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") format("truetype")}.ms-Icon{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-family:"FabricMDL2Icons";font-style:normal;font-weight:normal;speak:none}.ms-Icon--ChevronRightSmall:before{content:""}.ms-Icon--ChromeClose:before{content:""}.ms-Icon--Copy:before{content:""}.ms-Icon--GlobalNavButton:before{content:""}.ms-Icon--MiniLink:before{content:""}.ms-Icon--Page:before{content:""}.ms-Icon--ProductRelease:before{content:""}.ms-Icon--Save:before{content:""}.ms-Icon--Search:before{content:""}.search-wrapper{display:flex}.search-wrapper #search{width:100%;display:block;border:none;margin-left:4px;text-align:left;line-height:1.5rem}.search-wrapper #search:focus{outline:none}.search-results-wrapper{max-height:600px;max-width:400px;overflow-y:scroll;overflow-x:clip;display:none}.search-results{background-color:rgba(130,204,221,.1254901961);border-bottom:.25rem solid #82ccdd;padding:0 1em}.search-results__header{font-weight:bold;padding-top:1rem}.search-results__items{padding:0;list-style:circle}.search-results__item{margin-bottom:1rem}#on_right{display:block;text-align:right;margin-bottom:1.5rem}#search-ico{font-family:"FabricMDL2Icons";cursor:pointer;font-size:1.5rem;line-height:1}@font-face{font-family:"Roboto";font-style:normal;font-weight:400;font-display:swap;src:local(""),url("fonts/roboto-v27-latin-regular.woff2") format("woff2"),url("fonts/roboto-v27-latin-regular.woff") format("woff");}@font-face{font-family:"Roboto";font-style:normal;font-weight:700;font-display:swap;src:local(""),url("fonts/roboto-v27-latin-700.woff2") format("woff2"),url("fonts/roboto-v27-latin-700.woff") format("woff");}@font-face{font-family:"Roboto Mono";font-style:normal;font-weight:400;font-display:swap;src:local(""),url("fonts/roboto-mono-v13-latin-regular.woff2") format("woff2"),url("fonts/roboto-mono-v13-latin-regular.woff") format("woff");}body{font-family:"Roboto",sans-serif}code{font-family:"Roboto Mono",monospace}pre{padding:1rem;overflow:auto}pre[data-linenos]{padding:1rem 0}pre table td{padding:0;border:0}pre table td:nth-of-type(1){text-align:center;user-select:none;width:2em}pre mark{display:block;background-color:rgba(254,252,232,.9)}pre table{width:100%;border-collapse:collapse}.calendar{display:grid;grid-template-columns:repeat(5, 1fr);gap:4px;margin-bottom:1em}.calendar .calendar-day{border:1px solid #000}.calendar .calendar-day .calendar-day-heading .calendar-day-number{color:#fff;background-color:#079992;padding:2px}.calendar .calendar-day .calendar-day-body{padding:2px}@media print{body{grid-template-columns:100%;grid-template-rows:100%;grid-template-areas:"main"}#sidebar,#outline,header,footer{display:none}}