/*! tailwindcss v2.2.17 | MIT License | https://tailwindcss.com */

/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */html{-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:DM Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{font-family:inherit;line-height:inherit}*,:after,:before{box-sizing:border-box;border:0 solid}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:after,:before{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.aspect-w-1{position:relative;padding-bottom:calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%)}.aspect-w-1>*{position:absolute;height:100%;width:100%;top:0;right:0;bottom:0;left:0}.aspect-w-1{--tw-aspect-w:1}.aspect-h-1{--tw-aspect-h:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.top-0{top:0}.top-20{top:5rem}.z-50{z-index:50}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-14{margin-top:3.5rem}.mt-20{margin-top:5rem}.mr-2{margin-right:.5rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-row{display:table-row}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-screen{height:100vh}.max-h-screen{max-height:100vh}.w-4{width:1rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-full{width:100%}.max-w-6xl{max-width:72rem}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg}@-webkit-keyframes spin{to{transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}@-webkit-keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.list-outside{list-style-position:outside}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-y-32>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(8rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(8rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.whitespace-pre-wrap{white-space:pre-wrap}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.border-transparent{border-color:transparent}.border-gray-700{--tw-border-opacity:1;border-color:rgba(55,65,81,var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity:1;border-color:rgba(31,41,55,var(--tw-border-opacity))}.border-gray-900{--tw-border-opacity:1;border-color:rgba(17,24,39,var(--tw-border-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgba(17,24,39,var(--tw-bg-opacity))}.bg-dark-purple{--tw-bg-opacity:1;background-color:rgba(19,1,19,var(--tw-bg-opacity))}.bg-opacity-0{--tw-bg-opacity:0}.bg-opacity-60{--tw-bg-opacity:0.6}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.from-dark-purple{--tw-gradient-from:#130113;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to,rgba(19,1,19,0))}.via-dark-green{--tw-gradient-stops:var(--tw-gradient-from),#040a00,var(--tw-gradient-to,rgba(4,10,0,0))}.to-dark-blue{--tw-gradient-to:#000810}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pt-32{padding-top:8rem}.pr-2{padding-right:.5rem}.pb-3{padding-bottom:.75rem}.pb-6{padding-bottom:1.5rem}.pb-12{padding-bottom:3rem}.pl-8{padding-left:2rem}.text-left{text-align:left}.text-center{text-align:center}.font-display{font-family:Press Start\ 2P,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.font-light{font-weight:300}.font-bold{font-weight:700}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgba(243,244,246,var(--tw-text-opacity))}.text-yellow-400{--tw-text-opacity:1;color:rgba(251,191,36,var(--tw-text-opacity))}.text-opacity-60{--tw-text-opacity:0.6}.text-opacity-80{--tw-text-opacity:0.8}.focus\:underline:focus,.hover\:underline:hover,.underline{text-decoration:underline}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-90{opacity:.9}*,:after,:before{--tw-shadow:0 0 #0000;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}.backdrop-filter{--tw-backdrop-blur:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-brightness:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-contrast:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-grayscale:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-hue-rotate:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-invert:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-opacity:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-saturate:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-sepia:var(--tw-empty,/*!*/ /*!*/);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)}.transition-colors{transition-property:background-color,border-color,color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}body{background-color:#000;zoom:1.1}.neon-text{color:#fff;text-shadow:0 0 7px #fff,0 0 9px #ff00e5,0 0 42px #d702ef}.neon-text-red{color:#ff7997;text-shadow:0 0 7px #f32323,0 0 42px #d70044}.neon-text-red-intense{color:#ff7997;text-shadow:0 0 7px #f32323,0 0 7px #ffa816,0 0 42px #d70044,0 0 42px #ff0368}.neon-text-pink{color:#ff90f4;text-shadow:0 0 7px #ff14bc,0 0 32px #f100ff}.neon-text-pink-intense{color:#ff90f4;text-shadow:0 0 7px #ff14bc,0 0 32px #f100ff,0 0 42px #f100ff}.neon-text-yellow{color:#ffe55f;text-shadow:0 0 7px #ff7a14,0 0 32px #ffd500}.neon-text-yellow-intense{color:#ffe55f;text-shadow:0 0 7px #ff7a14,0 0 7px #ff6d0c,0 0 32px #ffd500,0 0 42px #ffd500}.neon-text-green{color:#6bfa93;text-shadow:0 0 7px #00ffa6,0 0 32px #00ff19}.neon-text-green-intense{color:#6bfa93;text-shadow:0 0 7px #00ffa6,0 0 32px #00ff19,0 0 38px #00ff19}.neon-text-blue{color:#a1fff8;text-shadow:0 0 7px #509fff,0 0 32px #0cf}.neon-text-blue-intense{color:#a1fff8;text-shadow:0 0 7px #509fff,0 0 7px #2bffaa,0 0 32px #0cf,0 0 42px #0cf}.neon-text-purple{color:#d26aff;text-shadow:0 0 7px #b914ff,0 0 32px #e600ff}.neon-text-purple-intense{color:#d26aff;text-shadow:0 0 7px #b914ff,0 0 32px #e600ff,0 0 64px #e600ff}.hover-fade:hover{opacity:.75}.hover-fade{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover-glow:hover{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.hover-glow{transition-property:background-color,border-color,color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.quick-link{margin-right:1.5rem;display:inline-block;font-size:1rem;line-height:1.5rem}.quick-link:hover{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.quick-link:focus{text-decoration:underline}.quick-link{transition-property:background-color,border-color,color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media (min-width:1024px){.quick-link{margin-right:2rem;font-size:1.125rem;line-height:1.75rem}}.quick-link{color:#ff90f4;text-shadow:0 0 7px #ff14bc,0 0 32px #f100ff}.quick-link:hover{color:#ff90f4;text-shadow:0 0 7px #ff14bc,0 0 32px #f100ff,0 0 42px #f100ff}.email-link{color:#ff7997;text-shadow:0 0 7px #f32323,0 0 42px #d70044}.email-link:hover{color:#ff7997;text-shadow:0 0 7px #f32323,0 0 7px #ffa816,0 0 42px #d70044,0 0 42px #ff0368}.table{margin-top:2rem;width:100%;border-collapse:separate;text-align:left;font-size:.875rem;line-height:1.25rem}@media (min-width:768px){.table{font-size:1rem;line-height:1.5rem}}.table{border-spacing:0;border:2px solid #ffe55f;box-shadow:0 0 3px #ffe55f,0 0 6px #ffd500;background:linear-gradient(135deg,#1a1a1a,#121212)}.table-header{border-bottom-width:2px;--tw-border-opacity:1;border-color:rgba(55,65,81,var(--tw-border-opacity));font-size:1rem;line-height:1.5rem}@media (min-width:768px){.table-header{font-size:1.25rem;line-height:1.75rem}}.table-header{background-color:#202020;color:#ffe55f;text-shadow:0 0 1px #ffe55f,0 0 2px #ffd500}.table-header th{padding:1rem}.table-row{background-color:#121212;color:#fff;text-shadow:0 0 2px #444;transition:background-color .3s,box-shadow .3s ease;position:relative}.table-row:nth-child(2n){background-color:#1a1a1a}.table-row td{padding:1rem}.assignment-link{color:#ffe55f;text-shadow:0 0 1px #ffe55f,0 0 2px #ffd500;transition:color .3s,text-shadow .3s}.assignment-link:hover{color:#fff;text-shadow:0 0 3px #ffd500,0 0 6px #ffe55f,0 0 8px #ff7a14;transform:scale(1.05)}.lecture-table{margin-top:2rem;width:100%;border-collapse:separate;text-align:left;font-size:.875rem;line-height:1.25rem}@media (min-width:768px){.lecture-table{font-size:1rem;line-height:1.5rem}}.lecture-table{border-spacing:0;border:2px solid #0f9;box-shadow:0 0 5px #0f9,0 0 10px #00b3ff;background:linear-gradient(135deg,#1a1a1a,#121212)}.lecture-table-header{border-bottom-width:2px;--tw-border-opacity:1;border-color:rgba(55,65,81,var(--tw-border-opacity));font-size:1rem;line-height:1.5rem}@media (min-width:768px){.lecture-table-header{font-size:1.25rem;line-height:1.75rem}}.lecture-table-header{background-color:#202020;color:#0f9;text-shadow:0 0 2px #0f9,0 0 4px #00b3ff}.lecture-table-row{background-color:#121212;color:#fff;text-shadow:0 0 2px #444;transition:background-color .3s,box-shadow .3s ease;position:relative}.lecture-table-row:nth-child(2n){background-color:#1a1a1a}.lecture-table td{padding:1rem}@media (max-width:640px){.lecture-table td{padding:.5rem}.lecture-table th{padding-left:.5rem}}.lecture-link{color:#0f9;text-shadow:0 0 2px #0f9,0 0 4px #00b3ff;transition:color .3s,text-shadow .3s}.lecture-link:hover{color:#fff;text-shadow:0 0 4px #00b3ff,0 0 8px #0f9,0 0 12px #00ff7f;transform:scale(1.05)}.arrow{font-size:1.1rem;margin-left:.3rem;vertical-align:middle}@media (min-width:640px){.sm\:hidden{display:none}}@media (min-width:768px){.md\:mt-2{margin-top:.5rem}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:gap-6{gap:1.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}}@media (min-width:1024px){.lg\:gap-8{gap:2rem}}nav{font-family:Orbitron,sans-serif;z-index:50;position:-webkit-sticky;position:sticky;top:0;width:100%;background:none;box-shadow:0 4px 12px rgba(0,0,0,.5);padding:.3rem 0;transition:all .3s ease-in-out}nav .navbar-container{justify-content:space-between}nav .logo-container,nav .navbar-container{display:flex;align-items:center;padding:0 .5rem}nav .logo-container{background:linear-gradient(90deg,#302b63,#24243e);border-radius:4px}nav .logo{font-size:1rem;color:#fff}nav .menu-container{display:flex;align-items:center;gap:1rem;background:none}nav .desktop-menu{display:none}nav .mobile-menu{display:none;flex-direction:column;background:rgba(15,12,41,.95);position:absolute;top:100%;left:0;width:100%;padding:.3rem;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.5)}nav .mobile-menu.show{display:flex}nav .menu-button{display:block;font-size:1rem;color:#fff;background:none;border:none;cursor:pointer}nav .mobile-menu button{width:100%;text-align:left;margin-bottom:.2rem;border-radius:4px;padding:.3rem .6rem;font-size:.8rem}nav .mobile-menu button:last-child{margin-bottom:0}@media (min-width:768px){nav .desktop-menu{display:flex;gap:1rem}nav .menu-button,nav .mobile-menu{display:none}}button{cursor:pointer;outline:none;transition:color .3s ease,background-color .3s ease,transform .3s ease,text-shadow .3s ease}button:hover{color:#00ffab;text-shadow:0 0 8px #00ffab,0 0 16px #00ffab;transform:translateY(-2px)}.hover-fade{position:relative;overflow:hidden}.hover-fade:after{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background:#00ffab;transition:width .3s ease}.hover-fade:hover:after{width:100%}nav.bg-opacity-60{transition:background-color .3s ease}nav.bg-opacity-0{background-color:transparent}nav.bg-opacity-60:hover{background-color:rgba(15,12,41,.9)}