:root{--theme:0;--contrast:0;--background:color-mix(in srgb,#fff,#181818 calc(var(--theme) * 100%));--high-contrast:color-mix(in srgb,#000,#fff calc(var(--theme) * 100%));--normal-contrast-partial:color-mix(in srgb,#202020,#e0e0e0 calc(var(--theme) * 100%));--low-contrast-partial:color-mix(in srgb,#606060,#b8b8b8 calc(var(--theme) * 100%));--normal-contrast:color-mix(in srgb,var(--normal-contrast-partial),var(--high-contrast) calc(var(--contrast) * 100%));--low-contrast:color-mix(in srgb,var(--low-contrast-partial),var(--high-contrast) calc(var(--contrast) * 100%));--neutral-hover:color-mix(in srgb,#d0d0d0,#404040 calc(var(--theme) * 100%));--link-normal-contrast:color-mix(in srgb,rgb(0 60.09% 3.61%),#a0e0a0 calc(var(--theme) * 100%));--link-hover-normal-contrast:color-mix(in srgb,#47dc54,#93ff93 calc(var(--theme) * 100%));--link-high-contrast:color-mix(in srgb,#00c000,#7fff7f calc(var(--theme) * 100%));--link-hover-high-contrast:color-mix(in srgb,#0f0,#00c000 calc(var(--theme) * 100%));--link:color-mix(in srgb,var(--link-normal-contrast),var(--link-high-contrast) calc(var(--contrast) * 100%));--link-hover:color-mix(in srgb,var(--link-hover-normal-contrast),var(--link-hover-high-contrast) calc(var(--contrast) * 100%));--cap-min-color:color-mix(in srgb,#3060ff,#3060ff calc(var(--theme) * 100%));--gallery-color:#b5ebb5;--store-color:#bddeff;--applets-color:#fcbdcd;--teaching-color:#fcdc9f;--projects-color:#ddd1ff;--news-color:#ffd6b3;--math-color:#b8eaf2;--about-color:#eccdfa;--page-width:1150px;--text-width:800px;--header-height:40px;--dark-outline-color-partial:color-mix(in srgb,rgba(0,0,0,0),var(--normal-contrast) calc(var(--theme) * 100%));--dark-outline-color:color-mix(in srgb,var(--dark-outline-color-partial),var(--high-contrast) calc(var(--contrast) * 100%));--contrast-border-color:color-mix(in srgb,rgba(0,0,0,0),var(--high-contrast) calc(var(--contrast) * 100%));--safe-area-inset-top:env(safe-area-inset-top);--safe-area-inset-bottom:env(safe-area-inset-bottom);--safe-area-inset-left:env(safe-area-inset-left);--safe-area-inset-right:env(safe-area-inset-right)}html{background-color:var(--background);font-size:16px;font-family:"Rubik",sans-serif;-webkit-tap-highlight-color:rgba(0,0,0,0);min-height:100vh;overflow-x:hidden;overflow-y:scroll}body{margin:0;padding:0;overflow-x:hidden;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased}.page{overflow-x:hidden;width:min(100% - 32px,100% - env(safe-area-inset-left) - env(safe-area-inset-right));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:env(safe-area-inset-bottom);min-height:100vh}@media(min-width:501px){.page{width:min(100% - 64px,100% - env(safe-area-inset-left) - env(safe-area-inset-right));padding-left:max(32px,env(safe-area-inset-left));padding-right:max(32px,env(safe-area-inset-right))}}.hover-reduce-motion{filter:brightness(.85)}.checkbox-row.disabled>.checkbox-container.hover-reduce-motion,.text-button.dropdown.expanded.hover-reduce-motion{filter:unset}header{margin-top:calc(80px + env(safe-area-inset-top));margin-bottom:32px;transition:margin-top .3s cubic-bezier(0.3,1,0.4,1)}#banner ~ #content-container header{margin-top:8px}main{margin-bottom:100px}a{color:var(--link);text-decoration:none;cursor:pointer}:root[style*="--contrast: 1"] .body-text a{text-decoration:underline}a.hover{color:var(--link-hover)}a:not(:hover):focus{color:var(--link-hover);outline:0}p,h1,h2{margin:0;padding:0;margin-top:0;margin-bottom:0;font-weight:normal}q{font-style:italic}q:before,q:after{content:""}dfn{font-weight:bold;font-style:normal}code{font-family:Menlo,Monaco,Consolas,monospace}pre code.highlightable{position:relative;max-width:var(--text-width);margin:0 auto;tab-size:4;-moz-tab-size:4;-o-tab-size:4}img{transform:translateZ(0);perspective:1000;-webkit-backface-visibility:hidden;backface-visibility:hidden}#logo,#logo-no-link{width:100px;height:100px;margin:0 auto;user-select:none;-webkit-user-select:none}#logo img,#logo-no-link img{position:absolute;width:100px;height:100px;outline:3px solid color-mix(in srgb,rgba(0,0,0,1),rgba(0,0,0,0) calc(var(--theme) * 100%));background:#fff;border-radius:50%}.heading-text,.section-text,.body-text,.song-lyrics{position:relative;max-width:var(--text-width);margin:0 auto;margin-bottom:16px}.heading-text{font-size:175%;color:var(--high-contrast);text-align:center}.section-text{font-size:125%;color:var(--high-contrast);text-align:center;margin-top:100px;margin-bottom:24px}.body-text{font-size:100%;color:var(--normal-contrast);text-align:justify;line-height:1.65;text-wrap:pretty}.body-text span{display:inline-block;text-align:justify}.center-if-needed{text-align:center !important}.center-content{display:flex;justify-content:center;margin:0 auto}#MathJax_Message{display:none !important}mjx-container{overflow-y:hidden;margin:0 !important;pointer-events:none;width:fit-content}.tex-holder{position:relative;max-width:calc(100% - 16px)}.tex-holder.inline-math{white-space:nowrap}.tex-holder:not(.inline-math){overflow-x:auto}.card .tex-holder:not(.inline-math){max-width:calc(100vw - 80px)}@media(max-width:500px){.card .tex-holder:not(.inline-math){max-width:calc(100vw - 64px)}}.tex-holder textarea{tab-size:4;-moz-tab-size:4;-o-tab-size:4}.bad-math{color:#ff7f00}#card-container{position:fixed;top:0;left:0;width:100%;height:calc(100% * 1.1);margin-top:calc(-100vh * .05);z-index:2000;display:none;flex-direction:column;justify-content:center;align-items:center;overflow-y:scroll;overflow-x:hidden;scrollbar-width:none}#card-container::-webkit-scrollbar{display:none}.card{display:none;position:relative;opacity:1;max-width:min(var(--page-width),min(calc(100vw - 64px), calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right))));margin-left:max(16px,env(safe-area-inset-left));margin-right:max(16px,env(safe-area-inset-right));margin-top:calc(16px + 5vh + env(safe-area-inset-top));margin-bottom:calc(16px + 5vh + env(safe-area-inset-bottom));padding:16px;border-radius:16px;background-color:var(--background);box-shadow:0 0 16px 0 rgba(0,0,0,.3),inset 0 0 0 2px var(--contrast-border-color)}@media(max-width:500px){.card{max-width:min(calc(100vw - 48px), calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right)));margin-left:max(8px,env(safe-area-inset-left));margin-right:max(8px,env(safe-area-inset-right));margin-top:calc(8px + 5vh + env(safe-area-inset-top));margin-bottom:calc(8px + 5vh + env(safe-area-inset-bottom));box-shadow:0 0 8px 0 rgba(0,0,0,.3)}}.card .body-text,.card .section-text,.card .heading-text{width:100% !important;text-align:left}.card :is(ul,ol){box-sizing:border-box;width:100%;max-width:var(--text-width);margin:0 auto 16px;padding-left:28px}.card .body-text.homework-problem{margin-top:32px}.card .heading-text{margin-top:-4.5px;width:calc(100% - 50px) !important;margin-left:0}.card>*:last-child{margin-bottom:0}.card img{max-width:var(--text-width);user-select:none;-webkit-user-select:none}.card .applet-controls{grid-template-columns:unset !important}#card-container .card{display:block}#card-close-button{position:absolute;top:0;right:0;font-size:32px;color:var(--high-contrast);cursor:pointer;border-radius:10px;display:flex;justify-content:center;align-items:center;background-color:var(--background);width:38px;margin:6px;z-index:1001;user-select:none;-webkit-user-select:none}#card-close-button.hover{background-color:var(--neutral-hover);box-shadow:inset 0 0 0 2px var(--contrast-border-color)}#card-close-button span{margin-top:-1.35px;margin-bottom:1.35px}#contents-indicator{position:fixed;right:0;top:calc((100vh - 128px - var(--header-height)) / 2 + var(--header-height));width:8px;padding-right:8px;padding-left:32px;padding-top:48px;padding-bottom:48px;cursor:pointer;user-select:none;-webkit-user-select:none}@media(max-width:440px){#contents-indicator{width:6px;padding-right:6px;padding-right:8px;padding-left:24px;padding-top:36px;padding-bottom:36px;top:calc((100vh - 96px - var(--header-height)) / 2 + var(--header-height))}}@media(max-width:320px){#contents-indicator{width:4px;padding-right:4px;padding-right:4px;padding-left:16px;padding-top:24px;padding-bottom:24px;top:calc((100vh - 64px - var(--header-height)) / 2 + var(--header-height))}}#contents-container{position:fixed;height:calc(100% - 72px);width:fit-content;max-width:min(100% - 4px,500px);display:flex;flex-direction:column;justify-content:center;align-items:center;top:56px;right:0;z-index:100;user-select:none;-webkit-user-select:none}@media(max-width:350px){#contents-container{height:calc(100% - 67px);top:51px}}@media(max-width:300px){#contents-container{height:calc(100% - 62px);top:46px}}@media(max-width:270px){#contents-container{height:calc(100% - 57px);top:41px}}#contents{width:fit-content;max-width:100%;overflow-y:auto;padding:16px;border-radius:22px;margin-left:16px;margin-right:20px;box-shadow:0 0 16px 0 rgba(0,0,0,0.35);outline:2px solid var(--dark-outline-color);background-color:var(--background)}#contents>*{cursor:pointer}#contents>.section-text,#contents>.heading-text{width:fit-content}#contents>.section-text{margin-top:48px}#contents>.notes-pf-title,#contents>.notes-thm-title+.notes-cor-title,#contents>.notes-prop-title+.notes-cor-title,#contents>.notes-pf-title+.notes-cor-title,#contents>.notes-lem-title{margin-left:16px}#contents>.notes-lem-title+.notes-pf-title{margin-left:32px}#contents>*:last-child{margin-bottom:0}*:focus{outline:0}.output-canvas{width:calc(100% - 8px);aspect-ratio:1;border:2px solid var(--normal-contrast);border-radius:18px;padding:2px}.WILSON_canvas-container{width:100%;font-size:0}.WILSON_applet-container{margin-top:32px;margin-bottom:0;line-height:0}.WILSON_button-container{column-gap:6px}.WILSON_fullscreen-container.WILSON_fullscreen .WILSON_button-container{column-gap:10px}.WILSON_button{background:var(--background);border:2px solid var(--normal-contrast)}.WILSON_button img{filter:invert(calc(.25 + var(--theme)* .5657))}.WILSON_button-text{filter:invert(calc(.25 + var(--theme)* .5657));font-weight:bold}.fps-canvas{width:100px;height:100px;position:absolute;bottom:4px;right:4px;border-bottom-right-radius:12px}.WILSON_fullscreen-container.WILSON_fullscreen-fill-screen .fps-canvas{view-transition-name:unset !important}body>.WILSON_fullscreen-container .fps-canvas{bottom:0;right:0;border-bottom-right-radius:0}.wilson-help-button{position:absolute;left:10px;top:10px;width:16px;height:16px;z-index:50;background:var(--background);border:2px solid var(--normal-contrast);padding:5px;border-radius:8px;cursor:pointer;outline:0}.wilson-help-button img{width:100%;height:100%;filter:invert(calc(.25 + var(--theme)* .5657))}body>.WILSON_fullscreen-container .wilson-help-button{position:fixed;left:calc(10px + env(safe-area-inset-left));top:calc(10px + env(safe-area-inset-top));z-index:1000}#canvas-landscape{display:flex;flex-direction:column;width:100%;justify-content:space-between;align-items:center;line-height:0}#canvas-landscape-left,#canvas-landscape-right{width:100%;line-height:0}#canvas-landscape-middle{width:60%;line-height:0}.desmos-border .output-canvas{border:0;padding:0;border-radius:14px;width:100% !important}.desmos-border .WILSON_applet-container{margin-top:0}.desmos-border .WILSON_button-container{right:6px;top:6px}@media(max-aspect-ratio:12/16){#canvas-landscape-middle{width:80%}}@media(max-aspect-ratio:9/16){#canvas-landscape-middle{width:100%}}@media(min-aspect-ratio:1/1) and (min-width:750px){#canvas-landscape{flex-direction:row}#canvas-landscape-left,#canvas-landscape-middle,#canvas-landscape-right{width:33.33%}#canvas-landscape-middle{margin-left:16px;margin-right:16px}#canvas-landscape-left .body-text,#canvas-landscape-left .section-text,#canvas-landscape-middle .body-text,#canvas-landscape-middle .section-text,#canvas-landscape-right .body-text,#canvas-landscape-right .section-text{width:70%}}#banner,#banner-small,#banner-large{position:fixed;width:calc(100vw + 75px);height:calc(100vh + 75px);left:-25px;background:url("") no-repeat center center;background-size:cover;transform:translate3d(0,0,0)}#banner-small{z-index:10}#banner-large{z-index:5}#content-container{display:flex;justify-content:center;margin-top:calc(100vh - 40px)}@media(max-width:500px){#banner ~ #content-container{margin-left:-24px;margin-right:-24px}}#content{background:var(--background);position:relative;border-radius:16px;padding:16px;max-width:var(--page-width);box-shadow:0 0 16px 4px rgba(0,0,0,.35)}#height-measurer{height:1vh;position:fixed;top:0;left:0}.applet-controls{position:relative;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;width:min(100%,var(--text-width));margin:0 auto;row-gap:32px;column-gap:32px;margin-top:32px}.applet-controls .dropdown-container{margin-top:0}.applet-controls .text-field-container{margin-top:0}.contents-button-container{display:flex;justify-content:center;margin-top:-22px;margin-bottom:32px}.text-button{color:var(--normal-contrast);background-color:var(--background);width:fit-content;display:inline-block;margin:auto;position:relative;text-align:center;font-size:100%;border:2px solid var(--normal-contrast);border-radius:10px;padding:10px;cursor:pointer;outline:0;z-index:10;user-select:none;-webkit-user-select:none}.text-button:not(.dropdown){max-width:100px}.text-button:not(:hover):focus{outline:0}.text-button.dropdown,.text-button.file-upload{border-radius:25px;position:absolute;width:fit-content;height:50px;padding:0;white-space:pre;background-color:var(--background);overflow:hidden;transition:box-shadow .2s ease-out;z-index:75;margin-top:44px}.text-button.file-upload{height:42.5px;padding:10px;margin-bottom:16px}.text-button.dropdown.expanded{box-shadow:0 0 32px 0 rgba(0,0,0,.4);cursor:default}.text-button.dropdown .option-container{display:grid;padding:10px;align-content:center;align-items:center;justify-content:center;justify-items:center}.text-button.dropdown .option-container.two-column{grid-template-columns:repeat(2,1fr)}.text-button.dropdown .option-container.two-column>*:first-child{grid-column:span 2}.text-button.dropdown .option-container>*{width:fit-content;text-align:center;padding:10px;border-radius:10px}.text-button.dropdown.expanded .option-container>*:not(:first-child).hover{cursor:pointer;background:var(--neutral-hover);box-shadow:inset 0 0 0 2px var(--contrast-border-color)}.dropdown-holder{z-index:75}.checkbox-row{display:flex;align-items:center;justify-content:center}.checkbox-row.disabled{opacity:.5}.checkbox-row p{width:auto;text-align:left;user-select:none;-webkit-user-select:none}.checkbox-subtext{margin-bottom:0 !important;width:100% !important}.checkbox-container{position:relative;width:24px;height:24px;border:2px solid var(--normal-contrast);border-radius:8px;padding:2px}.checkbox-row:not(.disabled) .checkbox-container{cursor:pointer}.checkbox-row.disabled .checkbox-container{transform:scale(1) !important}.checkbox-container:not(:hover):focus{outline:0}.checkbox-container>input{position:absolute;width:calc(100% - 4px);height:calc(100% - 4px);margin:0;opacity:0}.checkbox-row:not(.disabled) .checkbox-container>input{cursor:pointer}.checkbox-container>input ~ .checkbox{width:100%;height:100%;border-radius:4px;background:var(--normal-contrast);opacity:0}.checkbox-row:not(.disabled) .checkbox-container>input ~ .checkbox{cursor:pointer}.text-box{width:100%;border:0;border-radius:0;border-bottom:2px solid var(--normal-contrast);outline:0;background-color:rgba(0,0,0,0);box-sizing:border-box;color:var(--normal-contrast);font-size:100%;text-align:center;font-family:Menlo,Monaco,Consolas,monospace;transition:border-color .25s ease-out,color .25s ease-out}.text-box:focus{border-color:var(--high-contrast);color:var(--high-contrast)}.text-box-container{width:100px;display:flex;flex-direction:column;align-items:center;align-self:flex-start}.text-box-subtext{width:100% !important;height:fit-content;margin-bottom:0 !important;text-align:center !important;user-select:none;-webkit-user-select:none}.text-box-subtext span{transition:color .25s ease-out;user-select:none;-webkit-user-select:none}.text-box.capped-input-max{border-bottom:2px solid #c00000 !important;color:#c00000 !important}.text-box.capped-input-max ~ .text-box-subtext span{color:#c00000 !important;cursor:pointer}.text-box.capped-input-min{border-bottom:2px solid var(--cap-min-color) !important;color:var(--cap-min-color) !important}.text-box.capped-input-min ~ .text-box-subtext span{color:var(--cap-min-color) !important;cursor:pointer}.cap-triangle{width:0;padding-left:0;opacity:0;font-size:12px;transition:width .25s ease-out,opacity .25s ease-out,padding .25s ease-out,color .25s ease-out !important}.text-box.capped-input-max ~ .text-box-subtext .cap-triangle,.text-box.capped-input-min ~ .text-box-subtext .cap-triangle{width:12px;padding-left:2px;opacity:1}.input-cap-dialog{max-width:min(360px,calc(100vw - 48px));background-color:var(--background);color:var(--normal-contrast);text-align:justify;padding:12px;padding-top:10px;border-radius:12px;box-shadow:0 0 16px calc(var(--theme) * 8px) rgba(0, 0, 0, .4), inset 0 0 0 2px var(--dark-outline-color);position:absolute;z-index:100}.input-cap-dialog .checkbox-row{margin-top:16px !important}.text-field,.textarea-overlay{width:100%;border-radius:10px;padding:10px;outline:0;background-color:rgba(0,0,0,0);box-sizing:border-box;-webkit-appearance:none;appearance:none;font-family:Menlo,Monaco,Consolas,monospace;font-size:100%;transition:border-color .25s ease-in-out,color .25s ease-in-out;white-space:pre-wrap;word-break:break-all;overflow-wrap:break-word;cursor:text}.textarea-overlay{position:absolute;top:0;left:0;color:var(--normal-contrast);pointer-events:none;z-index:1;height:100px;line-height:20px;border:2px solid var(--normal-contrast)}.text-field{border:2px solid transparent;color:transparent;z-index:2;caret-color:var(--high-contrast);resize:none;width:calc(100% - 4px)}.text-field-container{width:293px;max-width:100%;display:flex;flex-direction:column;align-items:center;margin-top:32px;transform:translateY(14px);cursor:text}.text-field-container p{width:70%;margin-bottom:0 !important;user-select:none;-webkit-user-select:none;cursor:default}.textarea-wrapper{width:100%;height:fit-content;position:relative;display:flex;justify-content:center;margin-left:16px;margin-right:16px;cursor:text}.slider-container{width:170px;position:relative;display:flex;flex-direction:column;align-items:center;transform:translateY(22px)}.slider-bar{background:var(--normal-contrast);width:100%;height:2.5px;border-radius:2.5px;transition:background .25s ease-out}.slider-tick{background:var(--normal-contrast);width:2.5px;height:2.5px;border-radius:2.5px;position:absolute;top:0;transition:top .125s ease-in-out,height .125s ease-in-out,background .25s ease-out}.slider-thumb{position:absolute;top:calc(-24px / 2 - 2.5px / 2);left:0;background:var(--background);border-radius:50%;border:2.5px solid var(--normal-contrast);cursor:pointer;width:24px;height:24px;z-index:10;touch-action:none;transition:margin-top .125s ease-in-out,margin-left .125s ease-in-out,width .125s ease-in-out,height .125s ease-in-out,transform .125s ease-in-out,border-color .25s ease-out !important}.slider-thumb:active{transform:scale(1.1) !important;width:12px;height:12px;margin-top:6px;margin-left:6px}.slider-subtext{text-align:center;margin-top:16px;margin-bottom:0 !important;width:100% !important;user-select:none;-webkit-user-select:none;color:var(--normal-contrast);transition:color .25s ease-out}.slider-subtext span{text-align:center;user-select:none;-webkit-user-select:none}.slider-subtext .slider-value{font-family:Menlo,Monaco,Consolas,monospace;cursor:text;text-align:center}.slider-container.capped-input-max .slider-bar,.slider-container.capped-input-max .slider-tick{background:#c00000}.slider-container.capped-input-max .slider-thumb{border:2.5px solid #c00000}.slider-container.capped-input-max .slider-subtext{color:#c00000;cursor:pointer}.slider-container.capped-input-min .slider-bar,.slider-container.capped-input-min .slider-tick{background:var(--cap-min-color)}.slider-container.capped-input-min .slider-thumb{border:2.5px solid var(--cap-min-color)}.slider-container.capped-input-min .slider-subtext{color:var(--cap-min-color);cursor:pointer}.slider-container.capped-input-max .cap-triangle,.slider-container.capped-input-min .cap-triangle{width:12px;padding-left:2px;opacity:1}.dropdown-container{position:relative;display:flex;justify-content:center;align-items:center;margin-top:32px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:none;position:absolute;top:0;left:0;opacity:0;z-index:20;cursor:pointer;outline:0}option{-webkit-appearance:none;-moz-appearance:none;appearance:none}.carousel{width:min(500px,100%);margin:0 auto;margin-top:32px;display:flex;flex-direction:column;align-items:center}.carousel-content{width:100%}.carousel-entry:not(:first-child){display:none;opacity:0}.carousel-dots{display:flex;align-items:center;margin-top:16px}.carousel-dot{width:12px;height:12px;border-radius:12px;border:2px solid var(--low-contrast);display:flex;align-items:center;justify-content:flex-start}.carousel-dot:not(:first-child){margin-left:4px}.carousel-dot:not(.active){cursor:pointer}.carousel-dot:not(.active).hover{background-color:var(--low-contrast);box-shadow:inset 0 0 0 2px var(--contrast-border-color)}.carousel-dot .fill{opacity:0;width:12px;height:12px;margin-left:-2px;margin-right:-2px;border-radius:6px;background-color:var(--low-contrast)}.header-container{position:fixed;top:calc(env(safe-area-inset-top));left:calc(env(safe-area-inset-left));width:calc(100% - env(safe-area-inset-left) - env(safe-area-inset-right));z-index:110;display:flex;justify-content:center;align-items:center}#header{position:relative;background-color:var(--background);height:var(--header-height);width:100%;transform-origin:50% 50vh;user-select:none;-webkit-user-select:none;transition:margin .3s cubic-bezier(.3,1,.4,1),max-width .3s cubic-bezier(.3,1,.4,1),width .3s cubic-bezier(.3,1,.4,1),border-radius .3s cubic-bezier(.3,1,.4,1),box-shadow .3s cubic-bezier(.3,1,.4,1);border-bottom-width:calc(var(--contrast) * 2px);border-bottom-style:solid;border-bottom-color:var(--contrast-border-color)}#header-background{position:fixed;top:-50vh;left:-50vw;z-index:110;width:200vw;height:calc(50vh + var(--header-height));background-color:var(--background);transform-origin:50% 100vh;box-shadow:0 0 16px calc(var(--theme) * 8px) rgba(0, 0, 0, calc(.2 + var(--theme) * .2));transition:opacity .3s cubic-bezier(.3,1,.4,1)}#header-blur{height:80px;width:calc(100% + 96px);max-width:calc(var(--text-width) + 96px);backdrop-filter:blur(32px);mask-image:linear-gradient(to top,transparent,black 32px),linear-gradient(to right,transparent,black 48px),linear-gradient(to left,transparent,black 48px);mask-composite:intersect;opacity:0;transition:opacity .3s cubic-bezier(.3,1,.4,1)}#header-logo{position:absolute;top:4px;left:4px;padding:2px;border-radius:8px;height:calc(100% - 12px);width:fit-content;display:flex;align-items:center;cursor:pointer}#header-logo img{height:100%;filter:invert(var(--theme))}#header-logo span{color:var(--high-contrast);padding-left:6px;padding-right:4px}#header-logo.hover,#header-logo:not(.hover):focus{background-color:#e0e0e0;outline:2px solid var(--contrast-border-color)}#header-logo.hover span{color:#000}#header-logo.hover img{filter:invert(0)}#header-links{margin:0 auto;height:100%;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;width:fit-content}#header-links a{padding:4px;border-radius:8px;padding-left:6px;padding-right:6px;margin-top:4px;margin-bottom:4px;cursor:pointer;transition:none;height:calc(100% - 16px);display:flex;align-items:center;justify-content:center}#header-links a span{color:var(--high-contrast)}#header-links a img{height:100%;display:none;filter:invert(var(--theme))}#header-links a.hover{outline:2px solid var(--contrast-border-color)}#header-links a.hover span{color:#000}#header-links a.hover img{filter:invert(0)}#header-gallery-link.hover{background-color:var(--gallery-color)}#header-store-link.hover{background-color:var(--store-color)}#header-applets-link.hover{background-color:var(--applets-color)}#header-teaching-link.hover{background-color:var(--teaching-color)}#header-projects-link.hover{background-color:var(--projects-color)}#header-news-link.hover{background-color:var(--news-color)}#header-math-link.hover{background-color:var(--math-color)}#header-about-link.hover{background-color:var(--about-color)}#header-settings-button{position:absolute;top:4px;right:4px;padding:4px;height:calc(100% - 16px);aspect-ratio:1;border-radius:8px;width:fit-content;display:flex;align-items:center;cursor:pointer}#header-settings-button.hover{background-color:#e0e0e0;outline:2px solid var(--contrast-border-color)}#header-settings-button input{height:100%;filter:invert(var(--theme))}#header-settings-button.hover input{filter:invert(0)}#accessibility-tooltip{position:fixed;top:calc(56px + env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));border-radius:24px;background-color:var(--background);max-width:min(calc(100vw - 64px), calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right)));padding-top:14px;padding-left:16px;padding-right:16px;padding-bottom:16px;box-shadow:0 0 16px 0 rgba(0,0,0,.35),inset 0 0 0 2px var(--dark-outline-color);opacity:0;display:none;z-index:150;user-select:none;-webkit-user-select:none;transition:right .3s cubic-bezier(.3,1,.4,1),top .3s cubic-bezier(.3,1,.4,1)}#accessibility-tooltip .section-text{margin-top:0}#accessibility-tooltip .checkbox-row{justify-content:flex-start;width:100%}#accessibility-tooltip .checkbox-row>label{max-width:calc(100% - 42px)}#accessibility-tooltip .applet-controls{margin-top:16px}@media(max-width:725px){#header-logo span{display:none}}@media(max-width:525px){#header-links a span{display:none}#header-links a img{display:block}#header-links a{margin-left:1px;margin-right:1px;padding:2px;border-radius:8px;height:calc(100% - 12px)}#accessibility-tooltip{top:calc(48px + env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));max-width:min(calc(100vw - 48px), calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right)));padding-top:14px;padding-left:16px;padding-right:16px;padding-bottom:16px}}@media(max-width:325px){:root{--header-height:36px}#header-settings-button{padding:3px;height:calc(100% - 14px)}#accessibility-tooltip{top:calc(44px + env(safe-area-inset-top))}}@media(max-width:275px){:root{--header-height:32px}#header-logo{top:3px;left:3px;padding:2px;height:calc(100% - 10px)}#header-links a{margin-top:3px;margin-bottom:3px;padding:2.5px;border-radius:7.5px;margin-left:.25px;margin-right:.25px;height:calc(100% - 11px)}#header-settings-button{top:3px;right:3px;padding:3.5px;height:calc(100% - 13px)}#accessibility-tooltip{top:calc(40px + env(safe-area-inset-top))}}@media(max-width:240px){:root{--header-height:28px}#header-logo{top:2px;left:2px;padding:2px;height:calc(100% - 8px)}#header-links a{margin-top:2px;margin-bottom:2px;padding:2.5px;margin-left:-0.25px;margin-right:-0.25px;height:calc(100% - 9px)}#header-settings-button{top:2px;right:2px;padding:3.5px;height:calc(100% - 11px)}#accessibility-tooltip{top:calc(36px + env(safe-area-inset-top))}}.image-links{display:grid;column-gap:16px;row-gap:8px;grid-template-columns:repeat(6,1fr);justify-content:center;justify-items:center;max-width:calc(175px * 6 + 16px * 5);margin-top:8px}@media(max-width:1043px){.image-links{grid-template-columns:repeat(5,1fr)}}@media(max-width:877px){.image-links{grid-template-columns:repeat(4,1fr)}}@media(max-width:711px){.image-links{grid-template-columns:repeat(3,1fr)}}@media(max-width:545px){.image-links{grid-template-columns:repeat(2,1fr)}}@media(max-width:347px){.image-link-subtext{font-size:90% !important}}@media(max-width:289px){.image-links{grid-template-columns:repeat(1,1fr)}.image-link-subtext{font-size:100% !important}}.one-image-link{grid-template-columns:repeat(1,1fr)}.image-link{width:100%;padding:4px;padding-bottom:8px;border-radius:calc(18% - 2px) calc(18% - 2px) calc(12% - 2px) calc(12% - 2px);height:fit-content}.image-link img{width:100%;aspect-ratio:1;border-radius:18%;box-shadow:0 0 30px 0 rgba(0,0,0,.16);outline:2px solid var(--contrast-border-color);user-select:none;-webkit-user-select:none}.one-image-link .image-link{margin:0 auto}.image-link-subtext{margin-top:5px;width:calc(100% + 10px);margin-left:-5px;transition:color .125s ease-out;color:var(--normal-contrast);text-align:center;font-size:100%}.project{margin-top:96px}.body-text-with-image-link{width:min(100%,var(--text-width));margin:0 auto;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}.section-text-with-image-link{width:fit-content;margin:0 auto;margin-bottom:16px;padding-left:16px;padding-right:16px;display:none;flex-direction:row-reverse;justify-content:center;align-items:center}.project:nth-child(even) .body-text-with-image-link{flex-direction:row-reverse}:is(.body-text-with-image-link,.section-text-with-image-link) .image-link{margin:-4px;margin-bottom:-12px;flex-shrink:0;width:175px}.body-text-with-image-link .body-text{flex:1;min-width:0;margin-bottom:0;margin-right:32px}.project:nth-child(even) .body-text-with-image-link .body-text{margin-right:0;margin-left:32px}.section-text-with-image-link .section-text{min-width:0;margin:0}.section-text-with-image-link .image-link{width:50px}@media(max-width:700px){.body-text-with-image-link .body-text{margin-right:0 !important;margin-left:0 !important}.section-text-with-image-link .section-text{min-width:0;margin-left:16px}.body-text-with-image-link .image-link,.project>.section-text{display:none}.section-text-with-image-link{display:flex}}.desmos-border{margin:0 auto;border:2px solid var(--normal-contrast);border-radius:18px;margin-top:32px;margin-bottom:32px}.desmos-border.canvas-container{border-radius:18px;padding:2px}.desmos-container{border-radius:16px}.dcg-container{border-radius:16px !important}.desmos-container.melded .dcg-container{background:transparent !important}.desmos-container.melded .dcg-graphpaper-branding{display:none !important}.dcg-pillbox-container{right:4px !important;top:4px !important}.dcg-btn-flat-gray,.dcg-icon-btn,.dcg-overgraph-icon,.dcg-action-reset,.dcg-action-toggle-edit{border-radius:12px !important}.dcg-overgraph-icon-container:not(.dcg-bottom-right){top:4px !important;left:4px !important}.dcg-overgraph-icon-container.dcg-bottom-right{bottom:4px !important;right:4px !important}:is(.desmos-border,.desmos-container,.dcg-container){--w-offset:8px;--h-offset:48px;width:min(calc(var(--text-width) - var(--w-offset)), calc(90vw - var(--w-offset)), calc(60vh - var(--h-offset)))}.notes-environment :is(.desmos-border,.desmos-container,.dcg-container){--w-offset:20px;--h-offset:60px}:is(.desmos-border,.desmos-container,.dcg-container):not(.canvas-container){width:min(calc(var(--text-width) - var(--w-offset)), calc(90vw - var(--w-offset)));height:min(calc(var(--text-width) - var(--w-offset)), calc(90vw - var(--w-offset)), calc(60vh - var(--h-offset)))}.desmos-border.no-stretch,.desmos-border.no-stretch :is(.desmos-container,.dcg-container){width:min(calc(var(--text-width) - var(--w-offset)), calc(90vw - var(--w-offset)), calc(60vh - var(--h-offset)));height:min(calc(var(--text-width) - var(--w-offset)), calc(90vw - var(--w-offset)), calc(60vh - var(--h-offset)))}.desmos-container{filter:brightness(calc(1 + var(--theme) * 0.125))}@media(color-gamut:p3){.desmos-container:not(.is3d){filter:brightness(calc(1 + var(--theme) * 0.25))}}.desmos-container.fullscreen{width:100%;height:100%}.desmos-border.fullscreen{width:100%;height:100%;border:0;border-radius:0;margin:0}.desmos-border.fullscreen .desmos-container,.desmos-border.fullscreen .dcg-container{width:100%;height:100%;border-radius:0 !important}.desmos-border.fullscreen canvas{border-radius:0}.desmos-fullscreen-button{position:absolute;left:10px;bottom:10px;width:16px;height:16px;background:var(--background);border:2px solid var(--normal-contrast);padding:5px;border-radius:8px;cursor:pointer;outline:0}.desmos-fullscreen-button img{width:100%;height:100%;filter:invert(calc(.25 + var(--theme)* .5657))}.notes-images{display:flex;justify-content:center;align-items:center;margin:0 auto;flex-wrap:wrap;column-gap:16px;max-width:min(calc(var(--text-width) * 1.5), 100%)}.notes-image{max-width:min(var(--text-width),100%,500px);border-radius:16px;margin-bottom:16px;line-height:0;box-shadow:0 0 32px 0 rgba(0,0,0,.2);outline:2px solid var(--dark-outline-color)}.notes-image img{max-width:min(var(--text-width),100%,500px);max-height:50vh;border-radius:16px}.notes-image.invertible img{filter:invert(var(--theme))}@media(max-width:500px){.notes-image{border-radius:8px}}.notes-environment{max-width:calc(var(--text-width) - 12px);margin:0 auto;margin-bottom:16px;border-width:0 0 0 4px;border-style:solid;padding:0 0 0 8px}.notes-environment .body-text{width:100% !important}.notes-environment>*:last-child,.notes-environment>.solution>*:last-child{margin-bottom:0 !important}.notes-environment>.text-buttons{transform:translateX(-6px)}.notes-def{border-color:rgb(3.06% 54.29% 4.56%);border-color:lch(50% 70 135)}.notes-ex{border-color:rgb(46.63% 46.63% 46.63%);border-color:lch(50% 0 0)}.notes-exc{border-color:rgb(0 49.83% 75.18%);border-color:lch(50% 45 255)}.notes-prop,.notes-thm{border-color:rgb(71.78% 36.54% 0);border-color:lch(50% 70 60)}.notes-pf{border-color:rgb(55.46% 29.75% 77.56%);border-color:lch(45% 70 310)}.notes-cor{border-color:rgb(9.81% 30.27% 72.48%);border-color:lch(35% 65 285)}.notes-lem{border-color:rgb(71.64% 53.3% 0);border-color:lch(60% 100 80)}.notes-ax{border-color:rgb(73.89% 0 1.62%);border-color:lch(40% 90 40)}.notes-as{border-color:rgb(87.18% 41.03% 57.63%);border-color:lch(60% 50 360)}.notes-environment br:last-child{display:none}.notes-title{color:#fff;font-weight:bold;border-radius:6px;padding:3px 6px 3px 6px;margin-bottom:16px;width:fit-content;text-align:left !important}.notes-def-title{background-color:rgb(3.06% 54.29% 4.56%);background-color:lch(50% 70 135)}.notes-ex-title{background-color:rgb(46.63% 46.63% 46.63%);background-color:lch(50% 0 0)}.notes-exc-title{background-color:rgb(0 49.83% 75.18%);background-color:lch(50% 45 255)}.notes-prop-title,.notes-thm-title{background-color:rgb(71.78% 36.54% 0);background-color:lch(50% 70 60)}.notes-pf-title{background-color:rgb(55.46% 29.75% 77.56%);background-color:lch(45% 70 310)}.notes-cor-title{background-color:rgb(9.81% 30.27% 72.48%);background-color:lch(35% 65 285)}.notes-lem-title{background-color:rgb(71.64% 53.3% 0);background-color:lch(60% 100 80)}.notes-ax-title{background-color:rgb(73.89% 0 1.62%);background-color:lch(40% 90 40)}.notes-as-title{background-color:rgb(87.18% 41.03% 57.63%);background-color:lch(60% 50 360)}