*,*:before,*:after{box-sizing:border-box}ul[class],ol[class]{padding:0}body,h1,h2,h3,h4,p,ul[class],ol[class],figure,blockquote,dl,dd{margin:0}html{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}ul[class],ol[class]{list-style:none}a:not([class]){text-decoration-skip-ink:auto}img{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media (prefers-reduced-motion: reduce){*{animation-duration:.01s!important;animation-iteration-count:1!important;transition-duration:.01s!important;scroll-behavior:auto!important}}p,input,select,caption,textarea{font-weight:400;line-height:120%;overflow-wrap:break-word}a,a:visited,a:active{color:#8fbc8f;text-decoration:none}a{font-weight:500;text-decoration:inherit}a:hover{color:#556b2f}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:120%;font-weight:400;color:#181818;background-color:#fefefe;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{scroll-behavior:smooth;font-weight:400;font-size:62.5%;margin:0;position:relative;display:flex;place-items:center;min-width:320px;min-height:100vh}main{font-size:1.5em;display:flex}nav{width:25dvw;height:100%;display:flex;align-items:center;padding-inline:1em;font-size:clamp(1.5em,2.5vw,2.5em);background-color:#f8f8f8}.wrapper{height:100vh;overflow-y:auto;overflow-x:hidden;padding-inline:1em;padding-block:2em;width:75dvw}.wrapper .ambient{width:100%;height:100%;position:relative;overflow:hidden;border-radius:1rem}.wrapper .ambient .animation{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:-1;background-image:linear-gradient(to top,#0fd850,#f9f047)}.wrapper .ambient .animation div{border-radius:50%;width:24vw;height:24vw;display:inline-block;filter:blur(100px);animation-name:colorFade;animation-duration:10s;animation-iteration-count:infinite}.wrapper .ambient .animation div:nth-of-type(2n){right:0;background:linear-gradient(90deg,#00c9ff,#92fe9d);animation:pulse 10s infinite}.wrapper .ambient .animation div:nth-of-type(odd){left:0;background:linear-gradient(90deg,#fdbb2d,#22c1c3);position:relative}.wrapper .ambient .animation div:nth-of-type(odd):before,.wrapper .ambient .animation div:nth-of-type(odd):after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;transition:opacity 5s ease}.wrapper .ambient .animation div:nth-of-type(odd):before{background:linear-gradient(90deg,#00c9ff,#92fe9d);opacity:1;animation:fadeToNewGradient 10s infinite}.wrapper .ambient .animation div:nth-of-type(odd):after{background:linear-gradient(90deg,#9ebd13,#008552);opacity:0;animation:fadeFromOldGradient 10s infinite}.wrapper .ambient .content{height:100%;display:grid;place-items:center;align-content:center;text-align:center}.wrapper .ambient .content p{margin-block:.5rem}.wrapper .ambient .content .properties{mix-blend-mode:difference;margin-block-start:1rem;max-width:35%;filter:drop-shadow(0 0 .75rem #000)}.wrapper .ambient .content .properties a{text-decoration:underline}.wrapper .participants .pair{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:1rem}.wrapper .participants .participant.selected a{color:tomato}.wrapper .participants .participant{display:flex;font-weight:400;align-items:center}.calendar{display:grid;grid-auto-columns:1fr;grid-template-rows:repeat(13,auto);gap:1.5em}.calendar .class h2{border-block-end:1px solid #ddd;color:#bebebe;font-family:Courier New,Courier,monospace;cursor:pointer;transition:color .3s cubic-bezier(.455,.03,.515,.955)}.calendar .class h2:hover{color:#181818}nav ul{list-style:none;padding:0}@media (max-width: 40em){body{place-items:start}body main{flex-direction:column;width:100vw}body main nav{width:100%;height:fit-content;flex-direction:row;justify-content:start}body main nav ul{display:flex;gap:1em;flex-wrap:wrap}body main .wrapper{width:100%;height:fit-content}}@keyframes pulse{0%{transform:scale(1);opacity:.7;filter:blur(0px)}50%{transform:scale(1.3);opacity:1;filter:blur(100px)}to{transform:scale(1);opacity:.7;filter:blur(0px)}}@keyframes colorFade{0%{background-color:#ffe4df}50%{background-color:#ffe4df}to{background-color:#ffe4df}}@keyframes fadeToNewGradient{0%,to{opacity:1}50%{opacity:0}}@keyframes fadeFromOldGradient{0%,to{opacity:0}50%{opacity:1}}
