@import"https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Spline+Sans:wght@300..700&display=swap";@import"https://use.typekit.net/zlr0uca.css";:root{--color-menu: #f0f0f0;--color-menu-hover: #e3e2e8;--color-content: #fff;--color-schedule: #d7f2ff}*{margin:0;padding:0;box-sizing:border-box}body{font-family:neue-haas-grotesk-text,sans-serif;height:100vh;overflow:hidden;font-size:1.2rem;line-height:1.5}.container{display:flex;height:100vh}.left-column{position:relative;width:50%;min-width:50%;overflow-y:auto;padding:2rem 2rem 4rem;border-right:1px solid #ddd;transition:margin-left .3s ease;background:var(--color-menu)}.left-content{transition:opacity .15s ease}.left-collapsed{display:none;position:fixed;top:3rem;left:0;width:3rem;height:calc(100% - 3rem);writing-mode:vertical-rl;text-orientation:mixed;padding:1rem 0;font-size:1.2rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;justify-content:start;z-index:90;background:var(--color-menu);border-right:1px solid #ddd}.menu-collapsed .left-column{margin-left:calc(-50% + 3rem);overflow:hidden}.menu-collapsed .left-content{opacity:0;pointer-events:none}.menu-collapsed .left-collapsed{display:flex;align-items:center}.collapse-btn{position:fixed;top:.5rem;left:calc(50% - 3rem);z-index:100;background:var(--color-menu);border:1px solid #ccc;border-radius:4px;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;transition:left .3s ease,transform .3s ease}.collapse-btn svg{width:20px;height:20px}.collapse-btn:hover{background:var(--color-menu-hover)}.menu-collapsed .collapse-btn{left:1.5rem;transform:translate(-50%) rotate(180deg);top:.5rem}.right-column{flex:1;overflow-y:auto;padding:2rem 2rem 4rem;display:flex;justify-content:flex-start;align-items:flex-start;background:var(--color-content)}#content-display{width:calc(50vw - 4rem);padding-bottom:8rem;transition:margin-left .3s ease}.menu-collapsed #content-display{margin-left:calc(25vw - 1.5rem)}.right-column:has(.hero-page){padding:0;position:relative}#content-display:has(.hero-page){position:absolute;inset:0;width:auto;max-width:none;padding:0}.hero-page{width:100%;height:100%;background-size:cover;background-position:center;display:flex;align-items:flex-end}.hero-content{background:var(--color-content);padding:2rem;margin:2rem}.hero-content h1,.hero-content h2,.hero-content h3,.hero-content p{margin:0 0 .5em}.hero-content *:last-child{margin-bottom:0}img{max-width:100%;height:auto}iframe{width:100%;aspect-ratio:16 / 9;border:none}a,a:visited{color:#00f}a[data-content]{cursor:pointer;text-decoration:underline}.link-emoji{text-decoration:none;display:inline-block;margin-right:.25em}a.external-link:after{content:"";display:inline-block;width:.75em;height:.75em;margin-left:.2em;vertical-align:middle;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='blue' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat}mark{background-color:#ffeb3b;color:inherit}hr{border:none;border-top:1px solid black;margin:1.5em 0}h1,h2,h3,h4,h5,h6{font-family:Spline Sans,sans-serif;font-weight:800;font-style:normal;font-variation-settings:"wdth" 100;margin-top:1.5em;margin-bottom:.5em;line-height:1.2}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{margin-top:0}h1{text-shadow:0px 0px 2px rgba(0,0,0,.5)}.site-title{font-size:2.5em}p,ul,ol{margin-bottom:1em}.no-space,.no-space>*{margin-top:0;margin-bottom:.2em;line-height:1}pre{background-color:#f0f0f0;border:1px solid #d0d0d0;border-radius:4px;padding:1em;overflow-x:auto;margin-bottom:1em;font-size:.8rem;line-height:1.5}pre code{background:none!important;border:none;padding:0!important;font-size:inherit;white-space:pre-wrap;word-wrap:break-word}code{background-color:#f0f0f0;border:1px solid #d0d0d0;border-radius:3px;padding:.15em .35em;font-size:.85em;font-family:SF Mono,Fira Code,Fira Mono,Menlo,Consolas,monospace}.sketch-wrapper{margin-bottom:1em}.sketch-container{border:1px solid #d0d0d0;border-radius:4px;overflow:hidden;line-height:0;margin-bottom:.5em}.sketch-container canvas{display:block;max-width:100%;height:auto}.sketch-replay{font-family:Geist,sans-serif;font-size:.9rem;padding:.4em .8em;background:var(--color-menu);border:1px solid #ccc;border-radius:4px;cursor:pointer;transition:background .2s ease}.sketch-replay:hover{background:var(--color-menu-hover)}.content-tabs{margin-top:1.5em;margin-bottom:1.5em}.tab-buttons{display:flex;flex-wrap:wrap;gap:.4em}.tab-btn{font-family:neue-haas-grotesk-text,sans-serif;font-size:.85rem;padding:.35em .7em;background:transparent;border:1px solid #ccc;border-radius:4px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.tab-btn:hover{background:var(--color-menu-hover)}.tab-btn.active{background:var(--color-schedule);border-color:#999}.tab-panel{margin-top:.5em;padding:.5em 0;border-top:1px solid #ddd}.tab-panel ul{margin-bottom:0}.tab-panel li{margin-bottom:.25em}.lecture-upcoming{color:#888}table{width:100%;font-size:1rem}.schedule-table table{display:grid;grid-template-columns:auto auto 1fr auto;background-color:var(--color-schedule);border-top:solid 1px black!important;column-gap:0;row-gap:0}.theme-title{display:inline-block;font-weight:700;background-color:#ffeb3b;padding:.1em .3em;margin-bottom:.5em}tr.row-past td{background-color:var(--color-schedule)}tr.row-current td{background-color:#d1ffe4}tr.row-future td{background-color:var(--color-schedule)}ul{list-style:circle;padding-left:1.5em}ol{padding-left:1.5em}ol li{margin-bottom:.5em}ul ul,ul ol,ol ul,ol ol{margin-left:-.7em;padding-left:2.25em;margin-top:0;margin-bottom:.5em;border-left:1px solid rgba(0,0,0,.5)}.schedule-table thead,.schedule-table tbody,.schedule-table tr{display:contents}th,td{padding:.5rem 1rem;border-bottom:solid 1px black!important;text-align:left!important}th{font-weight:700;border-bottom:1px solid #ddd;position:sticky;top:0;background-color:var(--color-schedule);z-index:10}.schedule-table th{box-shadow:0 -2rem 0 0 var(--color-menu);clip-path:inset(-1px 0 0 0);border-top:solid 1px black}@media(max-width:768px){.left-column{position:absolute;width:100%;min-width:100%;height:100%;z-index:20;background:var(--color-menu)}.left-collapsed{display:none!important}.collapse-btn{left:.5rem}.menu-collapsed .left-column{margin-left:-100%;border:none}.menu-collapsed .collapse-btn{position:fixed;top:.5rem;left:.5rem;right:auto;transform:rotate(180deg);background:var(--color-menu);border:1px solid #ccc}.right-column{width:100%}#content-display{width:100%;max-width:100%}.menu-collapsed #content-display{margin-left:0}.schedule-table thead{display:none}.schedule-table table{grid-template-columns:1fr 1fr;font-size:.85rem}.schedule-table td{border-bottom:none!important;padding:.3rem .5rem}.schedule-table tbody td:nth-child(1):before{content:"Week ";font-weight:700}.schedule-table tbody td:nth-child(3){grid-column:1 / -1}.schedule-table tbody td:nth-child(4){grid-column:1 / -1;border-bottom:1px solid black!important;padding-bottom:1rem;margin-bottom:.5rem}.schedule-table tbody td:nth-child(4):not(:empty):before{content:"Due: ";font-weight:700}.schedule-table tbody tr.break-row td:nth-child(1):before{content:none}th{padding:.3rem .5rem}}
