@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.g30qAdWV.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-400-normal.Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-cyrillic-400-normal.DZqxrq2p.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-400-normal.BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-greek-400-normal._efipK4i.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-400-normal.D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-vietnamese-400-normal.DG4YqDda.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-400-normal.fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-400-normal.RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.DUMzJB7m.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-ext-600-normal.Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-cyrillic-600-normal.71GNu3SW.woff2)format("woff2"),url(/_astro/ibm-plex-sans-cyrillic-600-normal.BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-greek-600-normal.DzTrcv_p.woff2)format("woff2"),url(/_astro/ibm-plex-sans-greek-600-normal.D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-vietnamese-600-normal.DpPYBSTl.woff2)format("woff2"),url(/_astro/ibm-plex-sans-vietnamese-600-normal.DgdngZtN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-ext-600-normal.DIrixKbi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-course=oim7510]{--color-primary:#1e3a5f;--color-primary-dark:#12233a;--color-primary-light:light-dark(#eaf0f7,#1f2e42);--color-primary-ink:light-dark(#1e3a5f,#a9c6ee);--color-link:light-dark(#3b72ba,#538cd7);--color-link-band:light-dark(#eaf0f7,#1f2e42);--color-link-strong:light-dark(#386db2,#6a9de0)}:root[data-course=oim6301]{--color-primary:#5a2a5e;--color-primary-dark:#371939;--color-primary-light:light-dark(#f2eef2,#3a2340);--color-primary-ink:light-dark(#5a2a5e,#e2b2e6);--color-link:light-dark(#a54dad,#c06ac8);--color-link-band:light-dark(#f2eef2,#3a2340);--color-link-strong:light-dark(#9e4aa6,#cf82d6)}:root{--color-accent:light-dark(#b7791f,#d99a3a);--color-text:light-dark(#16202b,#f2f4f3);--color-text-muted:light-dark(#5c6b7a,#a3aeb8);--color-border:light-dark(#d6dfe9,#343c42);--color-bg:light-dark(#fff,#181c1a);--color-bg-alt:light-dark(#f5f7fa,#1e2321);--color-bg-sidebar:light-dark(#f8fafc,#1a1f1d);--color-surface:light-dark(#fff,#1c211f);--color-done:light-dark(#2f6f5d,#4fae8f);--color-current:light-dark(#b7791f,#d99a3a);--color-current-bg:light-dark(#fef9e7,#33290f);--color-upcoming:light-dark(#dbe2ea,#4a545c);--color-due:light-dark(#7a4a07,#f5d08a);--color-due-bg:light-dark(#fae0ad,#4a3510);--color-due-border:light-dark(#e6bc6a,#80601f);--color-mark:light-dark(#fdf0c7,#5c4a12);--color-error:light-dark(#b3261e,#f2a49c);--color-error-bg:light-dark(#fdecea,#3d1a17);--color-ok:light-dark(#1c7a3f,#7fd6a1);--color-ok-bg:light-dark(#e7f6ec,#15301f);--color-scroll-shadow:light-dark(#16202b33,#0000008c);color-scheme:light dark;--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading:"Bricolage Grotesque Variable", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Code", monospace;--sidebar-width:260px;--content-max:860px;--header-height:56px;--radius-xs:2px;--radius-sm:4px;--radius-md:4px}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);margin:0;line-height:1.6}h1,h2,h3{font-family:var(--font-heading);line-height:1.2}code,pre{font-family:var(--font-mono)}:not(pre)>code{border-radius:var(--radius-sm);background:var(--color-primary-light);border:1px solid var(--color-border);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:.15em .4em;font-size:.88em}a>code,a code{color:var(--color-link-strong)}pre{border-radius:var(--radius-md);background:var(--color-bg-alt);border:1px solid var(--color-border);margin:1.1rem 0;padding:.85rem 1rem;font-size:.9em;line-height:1.55;overflow-x:auto}pre>code{font-size:inherit;background:0 0;border:0;padding:0}.codeblock{margin:1.1rem 0;position:relative}.codeblock>pre{margin:0}.codeblock-copy{font:inherit;color:var(--color-text-muted,inherit);background:var(--color-bg,transparent);border:1px solid var(--color-border);border-radius:var(--radius-sm,4px);cursor:pointer;opacity:0;padding:.2rem .5rem;font-size:.75rem;line-height:1.4;transition:opacity .12s;position:absolute;top:.4rem;right:.4rem}.codeblock:hover .codeblock-copy,.codeblock-copy:focus-visible{opacity:1}@media (hover:none){.codeblock-copy{opacity:1}}@media print{.codeblock-copy{display:none}}a{color:var(--color-link);text-decoration:none;transition:color .12s}main :is(p,li,td,th,dd,blockquote) a:hover:not(.session-list a,.vt-item a,.guide-list a,.download-link,.toc-folded a,.toc-rail a),main :is(p,li,td,th,dd,blockquote) a:focus-visible:not(.session-list a,.vt-item a,.guide-list a,.download-link,.toc-folded a,.toc-rail a){background:var(--color-link-band);color:var(--color-link-strong);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:3px;margin:-.15em;padding:.15em}a:focus-visible{outline-offset:2px;text-underline-offset:.24em;text-decoration-skip-ink:none;outline:2px solid;text-decoration:underline 2px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{z-index:100;background:var(--color-bg);border-radius:var(--radius-sm);padding:.5rem 1rem;top:1rem;left:1rem}html{scroll-padding-top:calc(var(--header-height) + .75rem)}.heading-anchor{color:var(--color-text-muted);opacity:0;margin-left:.4em;font-weight:400;transition:opacity .12s}:is(h2,h3,h4,h5,h6):hover>.heading-anchor,.heading-anchor:focus-visible{opacity:1}.heading-anchor:hover{color:var(--color-link)}@media (hover:none){.heading-anchor{opacity:1}}.site-header{height:var(--header-height);background:var(--color-primary);color:#fff;z-index:20;align-items:center;display:flex;position:sticky;top:0}.header-inner{align-items:center;gap:1rem;width:100%;max-width:1280px;margin:0 auto;padding:0 1.25rem;display:flex}.site-brand{color:#fff;align-items:baseline;gap:.6rem;text-decoration:none;display:flex}.course-code{font-family:var(--font-heading);letter-spacing:.02em;font-weight:700}.course-title{opacity:.85;font-size:.85rem}.layout{gap:2rem;max-width:1280px;margin:0 auto;padding:0 1.25rem;display:flex;position:relative}.sidebar{width:var(--sidebar-width);flex:0 0 var(--sidebar-width);border-right:1px solid var(--color-border);padding:1.5rem 0}.sidebar h2{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin:1.25rem 0 .5rem;font-size:.75rem}.sidebar ul{margin:0;padding:0;list-style:none}.sidebar a{border-radius:var(--radius-sm);color:var(--color-text);padding:.3rem .5rem;font-size:.9rem;text-decoration:none;display:block}.sidebar a:hover{background:var(--color-bg-alt)}.sidebar a.active{background:var(--color-primary-light);color:var(--color-primary-ink);font-weight:600}main{min-width:0;max-width:var(--content-max);flex:1;padding:2rem 0 4rem}.site-footer{border-top:1px solid var(--color-border);max-width:1280px;color:var(--color-text-muted);margin:0 auto;padding:1rem 1.25rem 1.5rem;font-size:.8rem}.site-footer code{overflow-wrap:anywhere}@media (width<=640px){.site-footer{padding-bottom:5rem}}.status-dot{border-radius:50%;width:.6rem;height:.6rem;margin-right:.5rem;display:inline-block}.status-done{background:var(--color-done)}.status-current{background:var(--color-current)}.sidebar .status-current{animation:1.2s ease-out .3s status-ring}@keyframes status-ring{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--color-current) 60%, transparent)}to{box-shadow:0 0 0 .45rem color-mix(in srgb, var(--color-current) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.sidebar .status-current{animation:none}}.status-upcoming{background:var(--color-upcoming)}.session-list{margin:0;padding:0;list-style:none}.session-list li{border-bottom:1px solid var(--color-border);border-left:3px solid #0000}.session-list a{color:var(--color-text);align-items:baseline;gap:1rem;padding:.75rem .25rem;text-decoration:none;display:flex}.session-list a:hover{background:var(--color-bg-alt)}.session-list li.current{border-left-color:var(--color-current)}.session-list li.current a{background:var(--color-current-bg)}.session-num{font-family:var(--font-mono);color:var(--color-text-muted);min-width:2.5rem;font-size:.8rem}.session-date{color:var(--color-text-muted);min-width:6.5rem;font-size:.85rem}.session-topic{flex:1}.tbd{color:var(--color-text-muted);font-style:italic}.meeting{font-family:var(--font-mono);color:var(--color-text-muted);margin-top:-.5rem;font-size:.85rem}table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top;padding:.6rem .75rem}th{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}tbody tr:hover{background:var(--color-bg-alt)}.prose table{width:auto}.prose :is(p,ul,ol,dl,blockquote,h1,h2,h3,h4){max-width:62ch}.table-scroll{background:linear-gradient(to right, var(--color-bg) 30%, transparent) left center / 2.5rem 100% no-repeat local, linear-gradient(to left, var(--color-bg) 30%, transparent) right center / 2.5rem 100% no-repeat local, radial-gradient(farthest-side at 0 50%, var(--color-scroll-shadow), transparent) left center / .8rem 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, var(--color-scroll-shadow), transparent) right center / .8rem 100% no-repeat scroll;margin:1rem 0;overflow-x:auto}.table-scroll>table{margin:0}.table-scroll:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}@media (pointer:coarse){.download-link{margin-block:-.75rem;padding-block:.75rem;display:inline-block}}.due-badge{background:var(--color-primary-light);color:var(--color-primary-ink);border-radius:var(--radius-sm);margin-top:1.5rem;padding:.25rem .7rem;font-size:.85rem;font-weight:600;display:inline-block}.due-badge-top{margin:-.5rem 0 1rem}.prose ul:has(>li>input[type=checkbox]){padding-left:0;list-style:none}.prose li:has(>input[type=checkbox]){padding-left:1.6rem}.prose li>input[type=checkbox]:first-child{margin:0 .6rem 0 -1.6rem}.notice{border-left:3px solid var(--color-accent);background:var(--color-bg-alt);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:1.5rem 0;padding:.75rem 1rem}.card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);margin:1.25rem 0;padding:1rem 1.15rem}.card h2{margin:0 0 .5rem;font-size:1rem}.card p{margin:.5rem 0}.card-lead{font-size:1.05rem;font-weight:600}.card-lead a{color:var(--color-text);text-decoration:none}.card-lead a:hover{text-decoration:underline}.card-due{border-bottom:1px solid var(--color-border);margin-top:0;padding-bottom:.6rem;font-size:.9rem}.card-last{color:var(--color-text-muted);font-size:.9rem}.start-steps{margin:.5rem 0;padding-left:1.2rem}.start-steps li{margin:.35rem 0}.res{margin:1.5rem 0}.res-tabs{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:.25rem;margin-bottom:1rem;display:flex}.res-tab{font-family:var(--font-sans);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.5rem .9rem;font-size:.9rem;font-weight:600}.res-tab:hover{color:var(--color-text)}.res-tab.is-active{color:var(--color-primary-ink);border-bottom-color:var(--color-primary-ink)}.res-tab:focus-visible{outline:2px solid var(--color-primary-ink);outline-offset:-2px}.res-panel[hidden]{display:none}.res-panel h3{margin-top:0}.res-actions{font-size:.9rem}.res-run{border-left:3px solid var(--color-border);margin:1rem 0 0;padding:.1rem 0 .1rem 1rem}.res-run p{margin:.5rem 0}.res-run ol{margin:.5rem 0;padding-left:1.2rem}.res-run li{margin:.3rem 0}.res-note{color:var(--color-text-muted);font-size:.85rem}.session-upcoming{margin:0 0 1.5rem}.notebook-frame{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;height:78vh}.notebook-wrap{position:relative}.notebook-loading{text-align:center;border-radius:var(--radius-md);background:var(--color-bg-alt);color:var(--color-text-muted);justify-content:center;align-items:center;margin:0;padding:1rem;font-size:.95rem;display:flex;position:absolute;inset:1px}@media (width<=640px){.notebook-wrap{display:none}}.slides-frame{aspect-ratio:16/9;border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%}.res-open-mobile{display:none}@media (width<=640px){.slides-frame,.notebook-frame,.res-actions{display:none}.res-open-mobile{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;text-align:center;flex-direction:column;align-items:center;gap:.1rem;padding:.8rem 1rem;font-weight:600;display:flex}.res-open-mobile:hover{background:var(--color-primary-dark);color:#fff}.res-open-mobile small{opacity:.85;font-weight:400}}.nav-toggle,.sidebar-backdrop{display:none}.nav-toggle-bars{width:18px;height:14px;display:block;position:relative}.nav-toggle-bars span{background:currentColor;border-radius:1px;width:100%;height:2px;transition:transform .2s,opacity .15s;position:absolute;left:0}.nav-toggle-bars span:first-child{top:0}.nav-toggle-bars span:nth-child(2){top:6px}.nav-toggle-bars span:nth-child(3){bottom:0}.nav-toggle[aria-expanded=true] .nav-toggle-bars span:first-child{transform:translateY(6px)rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle-bars span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] .nav-toggle-bars span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}@media (width<=860px){.header-inner{gap:.5rem;padding:0 .75rem}.nav-toggle{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:flex}.nav-toggle:hover{background:#ffffff1f}.nav-toggle:focus-visible{outline-offset:-2px;outline:2px solid #fff}.site-brand{min-width:0;padding-block:.5rem}.search-trigger{min-height:40px}.course-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.layout{display:block}.sidebar{top:var(--header-height);z-index:40;overscroll-behavior:contain;background:var(--color-bg-sidebar);visibility:hidden;width:min(280px,85vw);padding:.25rem 1rem 2rem;transition:transform .2s,visibility 0s linear .2s;position:fixed;bottom:0;left:0;overflow-y:auto;transform:translate(-100%);box-shadow:0 8px 28px #16202b38}.sidebar.open{visibility:visible;transition:transform .2s;transform:none}.sidebar a{padding:.6rem;font-size:1rem}.sidebar-backdrop{inset:var(--header-height) 0 0 0;z-index:39;opacity:0;visibility:hidden;background:#16202b59;transition:opacity .2s,visibility 0s linear .2s;display:block;position:fixed}.sidebar-backdrop.open{opacity:1;visibility:visible;transition:opacity .2s}html.nav-open{overflow:hidden}}@media (width<=640px){.course-title{display:none}th,td{padding:.5rem}}@media (prefers-reduced-motion:reduce){.sidebar,.sidebar-backdrop,.nav-toggle-bars span{transition:none!important}}.theme-toggle{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:#ffffff1f;border:1px solid #ffffff2e;flex:none;justify-content:center;align-items:center;width:32px;height:30px;margin-left:auto;padding:0;display:flex}.theme-toggle:hover{background:#fff3}.theme-toggle:focus-visible{outline-offset:2px;outline:2px solid #fff}.theme-icon{width:16px;height:16px;display:none}:root:not([data-theme]) .theme-icon-system,:root[data-theme=light] .theme-icon-light,:root[data-theme=dark] .theme-icon-dark{display:block}.theme-toggle+.search-trigger{margin-left:0}.search-trigger{font:inherit;color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:#ffffff1f;border:1px solid #ffffff2e;align-items:center;gap:.4rem;margin-left:auto;padding:.3rem .6rem;font-size:.8rem;display:flex}.search-trigger:hover{background:#fff3}.search-trigger:focus-visible{outline-offset:2px;outline:2px solid #fff}.search-trigger svg{flex:none;width:15px;height:15px}.search-trigger-kbd{font-family:var(--font-mono);background:#ffffff29;border-radius:3px;padding:.05rem .3rem;font-size:.7rem}@media (width<=640px){.search-trigger-label,.search-trigger-kbd{display:none}.search-trigger{justify-content:center;width:40px;height:40px;padding:0}.theme-toggle{width:40px;height:40px}}.search-modal{z-index:50;position:fixed;inset:0}.search-modal[hidden]{display:none}.search-modal-backdrop{background:#16202b73;position:absolute;inset:0}.search-modal-panel{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;width:min(640px,100vw - 2rem);max-height:70vh;margin:10vh auto 0;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 32px #16202b38}.search-modal-input-row{border-bottom:1px solid var(--color-border);align-items:center;gap:.5rem;padding:.7rem .9rem;display:flex}.search-modal-input-row svg{width:17px;height:17px;color:var(--color-text-muted);flex:none}#search-modal-input{font:inherit;color:var(--color-text);background:0 0;border:0;flex:1;padding:0;font-size:1rem}#search-modal-input:focus{outline:none}#search-modal-input::-webkit-search-cancel-button{display:none}.search-modal-results{padding:.3rem;overflow-y:auto}.search-item{text-align:left;border-radius:var(--radius-sm);width:100%;font:inherit;color:var(--color-text);cursor:pointer;background:0 0;border:0;padding:.5rem .6rem;text-decoration:none;display:block}.search-item:hover,.search-item[aria-selected=true]{background:var(--color-primary-light)}.search-item mark{background:var(--color-mark);color:inherit}.search-item-title{color:var(--color-text);font-size:.9rem;font-weight:600;display:block}.search-item-nested{border-left:2px solid var(--color-border);margin-left:1rem;padding-left:.6rem}.search-item-nested .search-item-title{color:var(--color-text-muted);font-size:.84rem;font-weight:500}.search-item-sub{color:var(--color-text-muted);margin-top:.05rem;font-size:.7rem;display:block}.search-item-excerpt{-webkit-line-clamp:2;color:var(--color-text-muted);-webkit-box-orient:vertical;margin-top:.15rem;font-size:.78rem;line-height:1.4;display:-webkit-box;overflow:hidden}.search-empty{text-align:center;color:var(--color-text-muted);padding:1.2rem;font-size:.9rem}.search-egg{text-align:center;color:var(--color-text);padding:1.2rem;font-size:.9rem}.search-egg p{margin:0 0 .8rem}.search-egg img{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;max-width:100%;height:auto}.search-egg pre{text-align:left;margin:0 0 .8rem;display:inline-block}.search-egg .search-egg-credit{color:var(--color-text-muted);margin:.5rem 0 0;font-size:.8rem}.search-modal-footer{border-top:1px solid var(--color-border);background:var(--color-bg-alt);color:var(--color-text-muted);justify-content:center;gap:1rem;padding:.45rem;font-size:.75rem;display:flex}.search-modal-footer kbd,.search-esc{font-family:var(--font-mono);border:1px solid var(--color-border);background:var(--color-surface);border-radius:3px;margin-right:.15rem;padding:.05rem .3rem;font-size:.7rem}.search-esc{color:var(--color-text-muted);flex:none}.auth-chip{white-space:nowrap;flex-shrink:0;align-items:center;gap:.4rem;font-size:.8rem;display:flex}.auth-chip[hidden]{display:none}.auth-chip-profile{color:#fff;align-items:center;gap:.4rem;text-decoration:none;display:inline-flex}.auth-chip-profile:hover .auth-chip-name{text-decoration:underline}.auth-chip-avatar{object-fit:cover;border:1px solid #ffffff40;border-radius:50%;width:22px;height:22px;display:block}.auth-chip-name{color:#fff;font-weight:600}.auth-chip-sep{color:#fff6}.auth-chip-out{font:inherit;color:#fff9;cursor:pointer;background:0 0;border:none;padding:0;transition:color .15s}.auth-chip-out:hover{color:#fff;text-decoration:underline}.sidebar-resize{top:0;bottom:0;left:calc(1.25rem + var(--sidebar-width) - 3px);cursor:col-resize;z-index:10;background:0 0;width:6px;transition:background .15s;position:absolute}.sidebar-resize:hover,.sidebar-resize:active{background:var(--color-primary-light)}@media (width<=860px){.sidebar-resize{display:none}}.instructor-fab{z-index:299;position:fixed;bottom:4.25rem;right:1.25rem}.instructor-fab[hidden]{display:none}.instructor-fab-btn{background:var(--color-bg);border:1px solid var(--color-border);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;opacity:.75;border-radius:50%;justify-content:center;align-items:center;transition:color .15s,border-color .15s,opacity .15s;display:flex;box-shadow:0 2px 8px #16202b26}.instructor-fab-btn:hover{color:var(--color-primary-ink);border-color:var(--color-primary-ink);opacity:1}.instructor-fab-menu{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;min-width:120px;position:absolute;bottom:40px;right:0;overflow:hidden;box-shadow:0 6px 20px #16202b2e}.instructor-fab-menu a{color:var(--color-text);white-space:nowrap;padding:.5rem .75rem;font-size:.8rem;text-decoration:none;transition:background .1s}.instructor-fab-menu a:hover{background:var(--color-primary);color:#fff}.handbook-refs{margin-top:2.5rem}.handbook-refs h2{margin-bottom:.15rem}.handbook-refs-note{color:var(--color-text-muted);margin:0 0 .9rem;font-size:.9rem}.handbook-refs-book-block{margin:0 0 1rem}.handbook-refs-list{columns:2;column-gap:2rem;margin:.25rem 0 0;padding:0;list-style:none}.handbook-refs-list li{break-inside:avoid;margin:0 0 .3rem;line-height:1.45}@media (width<=640px){.handbook-refs-list{columns:1}}.handbook-refs-book{letter-spacing:.04em;text-transform:uppercase;min-width:4rem;color:var(--color-text-muted);font-size:.8rem;font-weight:600;display:inline-block}.handbook-refs-n{color:var(--color-text-muted);margin-right:.3rem}.handbook-refs-sep{color:var(--color-border)}.session-meta{margin:2rem 0 0}.session-meta-row{align-items:baseline;gap:1rem;line-height:2;display:flex}.session-meta dt{letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);flex:0 0 4.5rem;font-size:.78rem;font-weight:600}.session-meta dd{flex:1;min-width:0;margin:0}.session-due{flex-wrap:wrap;align-items:center;gap:.4rem 1.25rem;margin:.2rem 0 1rem;display:flex}.session-due-item{flex-wrap:wrap;align-items:center;gap:.45rem;display:inline-flex}.session-due-item a{font-weight:600}.due-chip{border-radius:var(--radius-xs);letter-spacing:.03em;text-transform:uppercase;color:var(--color-due);background:var(--color-due-bg);border:1px solid var(--color-due-border);padding:.15em .5em;font-size:.72rem;font-weight:600;display:inline-block}.handbook-py{border:1px solid var(--color-border);border-radius:var(--radius-sm);vertical-align:.12em;font-family:var(--font-sans);color:var(--color-text-muted);align-items:center;gap:.3rem;margin-left:.7rem;padding:.12rem .5rem;font-size:.72rem;font-weight:500;text-decoration:none;display:inline-flex}.handbook-py code{color:inherit;background:0 0;border:0;padding:0;font-size:.95em}.handbook-py:hover{color:var(--color-primary-ink);border-color:var(--color-primary-ink);background:var(--color-primary-light)}:root[data-season=first-class]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23f0b323' stroke='%237a5a0b' stroke-width='.8' d='M8 2.2c-2.8 0-4.4 2.2-4.4 5v3.2L2.2 12.4h11.6l-1.4-2V7.2c0-2.8-1.6-5-4.4-5z'/%3E%3Ccircle cx='8' cy='13.9' r='1.4' fill='%237a5a0b'/%3E%3Cpath fill='%237a5a0b' d='M7.3 1h1.4v1.6H7.3z'/%3E%3C/svg%3E")}:root[data-season=commencement]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23f0b323' d='M8 2.5 15 6 8 9.5 1 6z'/%3E%3Cpath fill='%23d49b0b' d='M4 8v3c1 1.2 2.4 1.8 4 1.8s3-.6 4-1.8V8L8 10z'/%3E%3Cpath stroke='%23f0b323' stroke-width='1' d='M14 6.5V11'/%3E%3C/svg%3E")}:root[data-season=babson-monday]{--season-icon:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3E%3Cpath%20fill='%23fff'%20stroke='%23444'%20stroke-width='.8'%20d='M1.5%203h13v11.5h-13z'/%3E%3Cpath%20fill='%23d62828'%20d='M1.5%203h13v3h-13z'/%3E%3Cpath%20fill='%23444'%20d='M4.3%201.4h1.2v3H4.3zm6.2%200h1.2v3h-1.2z'/%3E%3Ctext%20x='8'%20y='12.6'%20text-anchor='middle'%20font-family='Arial,Helvetica,sans-serif'%20font-weight='700'%20font-size='5.4'%20fill='%23006a52'%3EMON%3C/text%3E%3C/svg%3E")}:root[data-season=patriots-day]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%233b82c4' stroke='%231d4f80' stroke-width='.7' d='M1.5 12.8V9.6c0-.9.6-1.5 1.5-1.5h1.6l1.6-2.6c.4-.6 1.2-.7 1.7-.2l1.4 1.5c.4.4 1 .6 1.6.6h2.6c1.1 0 1.9.9 1.9 2v3.4z'/%3E%3Cpath fill='%23fff' d='M1.5 12.8h13.3v1.6H1.5z'/%3E%3Cpath stroke='%23fff' stroke-width='.8' d='M6.8 6.6l1.3 1.3M7.9 5.8l1.3 1.3'/%3E%3C/svg%3E")}:root[data-season=spring-break]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23f0b323' d='M8 1.8c-3.6 0-6.4 2.4-6.6 5.4h13.2C14.4 4.2 11.6 1.8 8 1.8z'/%3E%3Cpath fill='%23e63946' d='M8 1.8c-1.5 0-2.7 2.4-2.8 5.4h5.6C10.7 4.2 9.5 1.8 8 1.8z'/%3E%3Cpath stroke='%236b4f2a' stroke-width='1.1' stroke-linecap='round' d='M8 7.2v6.6'/%3E%3Cpath fill='%23e8d39b' d='M1.5 14h13v1.2h-13z'/%3E%3C/svg%3E")}:root[data-season=halloween]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23f28c28' d='M8 4.5C4.4 4.5 1.5 6.4 1.5 9.5S4.4 14.5 8 14.5s6.5-1.9 6.5-5S11.6 4.5 8 4.5z'/%3E%3Cpath fill='%23c45e0c' d='M8 4.5c-1.3 0-2.2 2.2-2.2 5s.9 5 2.2 5 2.2-2.2 2.2-5-.9-5-2.2-5z'/%3E%3Cpath fill='%2346802e' d='M7.3 1.5h1.5v3.2H7.3z'/%3E%3C/svg%3E")}:root[data-season=thanksgiving]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23c8641e' d='M8 1.5c3.5 2 5 5 4 8.5-.8 2.6-2.8 4-4 4.5-1.2-.5-3.2-1.9-4-4.5-1-3.5.5-6.5 4-8.5z'/%3E%3Cpath stroke='%237a3a0e' stroke-width='.9' d='M8 4v11'/%3E%3C/svg%3E")}:root[data-season=winter]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath stroke='%234a90d9' stroke-width='1.4' stroke-linecap='round' d='M8 1.5v13M2.4 4.75l11.2 6.5M2.4 11.25l11.2-6.5M6.5 2.8 8 4l1.5-1.2M6.5 13.2 8 12l1.5 1.2'/%3E%3C/svg%3E")}:root[data-season=new-year]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23f0b323' d='M8 1l1.6 5.4L15 8l-5.4 1.6L8 15l-1.6-5.4L1 8l5.4-1.6z'/%3E%3C/svg%3E")}:root[data-season=lunar-new-year]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cellipse cx='8' cy='8.5' rx='5.5' ry='4.5' fill='%23d62828'/%3E%3Cpath fill='%23f0b323' d='M6 2.5h4v1.8H6zM6 12.6h4V14H6z'/%3E%3Cpath stroke='%23f0b323' stroke-width='.8' d='M8 14v1.5M8 4.3v8.3'/%3E%3C/svg%3E")}:root[data-season=valentines]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23e63946' d='M8 14S1.5 10 1.5 5.8C1.5 3.6 3.1 2 5 2c1.3 0 2.4.7 3 1.8C8.6 2.7 9.7 2 11 2c1.9 0 3.5 1.6 3.5 3.8C14.5 10 8 14 8 14z'/%3E%3C/svg%3E")}:root[data-season=pi-day]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%237b6cf6' stroke-width='1.7' stroke-linecap='round' d='M2.5 4.5h11M5.8 4.5v9.5M10.6 4.5v7.4c0 1.3.6 2 1.9 2'/%3E%3C/svg%3E")}:root[data-season=st-patricks]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='%232e9e4f'%3E%3Ccircle cx='8' cy='4.6' r='3'/%3E%3Ccircle cx='4.6' cy='8.6' r='3'/%3E%3Ccircle cx='11.4' cy='8.6' r='3'/%3E%3C/g%3E%3Cpath stroke='%232e9e4f' stroke-width='1.4' d='M8 9v6'/%3E%3C/svg%3E")}:root[data-season=earth-day]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6.5' fill='%233b82c4'/%3E%3Cpath fill='%233fae5a' d='M5 4c1.5 0 2 1.2 1.4 2.3-.6 1 .4 1.8-.4 2.9-.9 1.2-2.6.5-3-1C2.5 6.3 3.6 4 5 4zm5 4.5c1.4-.3 2.6.8 2.2 2.2-.4 1.5-2.2 2.3-3.1 1.3-.8-.9-.5-3.2.9-3.5z'/%3E%3C/svg%3E")}:root[data-season=independence-day]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23d62828' d='M8 1.2l2 4.3 4.7.6-3.4 3.2.9 4.7L8 11.7 3.8 14l.9-4.7L1.3 6.1 6 5.5z'/%3E%3C/svg%3E")}:root[data-season=programmers-day]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%232e9e7e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M5 4.5 1.8 8 5 11.5M11 4.5 14.2 8 11 11.5M9.3 3l-2.6 10'/%3E%3C/svg%3E")}:root[data-season=ada-lovelace]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23d9c48f' d='M2 3h10l2 2v8H2z'/%3E%3Cpath fill='%235a4a2a' d='M4 5h1v2H4zm3 0h1v2H7zm3 3h1v2h-1zM4 9h1v2H4zm3 1h1v2H7z'/%3E%3C/svg%3E")}:root[data-season=hopper]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23a89070' d='M8 6C5 2 1.5 3 2 6.5c.4 2.7 3.6 3 6 1.5 2.4 1.5 5.6 1.2 6-1.5C14.5 3 11 2 8 6z'/%3E%3Cpath fill='%23806a52' d='M7.3 5h1.4v8.5H7.3z'/%3E%3C/svg%3E")}:root[data-season=last-class]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath stroke='%23666' stroke-width='1.4' stroke-linecap='round' d='M3 1.5v13'/%3E%3Cpath fill='%23fff' stroke='%23444' stroke-width='.6' d='M3.7 2h10v6.5h-10z'/%3E%3Cpath fill='%23222' d='M3.7 2h2.5v2.2H3.7zm5 0h2.5v2.2H8.7zM6.2 4.2h2.5v2.1H6.2zm5 0h2.5v2.1h-2.5zM3.7 6.3h2.5v2.2H3.7zm5 0h2.5v2.2H8.7z'/%3E%3C/svg%3E")}:root[data-season=april-fools]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%237b6cf6' d='M1.5 13 3.5 3.5 8 9l4.5-5.5 2 9.5z'/%3E%3Cpath fill='%23e63946' d='M8 9 5.8 13h4.4z'/%3E%3Cpath fill='%23f0b323' d='M1.5 12.6h13V14.5h-13z'/%3E%3Ccircle cx='3.5' cy='3' r='1.4' fill='%23f0b323'/%3E%3Ccircle cx='12.5' cy='3' r='1.4' fill='%23f0b323'/%3E%3C/svg%3E")}:root[data-season=babson-founding]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cg fill='none' stroke='%232e9e7e' stroke-width='1.2'%3E%3Ccircle cx='8' cy='8' r='6.3'/%3E%3Cellipse cx='8' cy='8' rx='2.8' ry='6.3'/%3E%3Cpath d='M1.8 8h12.4M3 4.6h10M3 11.4h10'/%3E%3C/g%3E%3C/svg%3E")}:root[data-season=babson-break]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23f25555' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round' d='M1.5 4 5 6.5 8 5l5.3 6'/%3E%3Cpath fill='%23f25555' d='M14.8 8.6v4.6h-4.6z'/%3E%3C/svg%3E")}:root[data-season=founders-day]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23d62828' d='M8 4.6c-1-1-4.8-1.4-5.6 2.4-.7 3.4 1.6 7.2 3.4 7.2 1 0 1.4-.5 2.2-.5s1.2.5 2.2.5c1.8 0 4.1-3.8 3.4-7.2C12.8 3.2 9 3.6 8 4.6z'/%3E%3Cpath fill='%2346802e' d='M8.2 4.4c.2-1.6 1.2-2.6 2.8-2.9-.1 1.6-1.2 2.7-2.8 2.9z'/%3E%3Cpath stroke='%23603a1a' stroke-width='.9' d='M8 4.6 7.6 2'/%3E%3C/svg%3E")}:root[data-season=roger-babson]{--season-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23f4a6c0' stroke='%237a3a52' stroke-width='.8' d='M2.5 8.6h11v5.4h-11z'/%3E%3Cpath fill='%23fff6e8' d='M2.5 8.6h11v1.8c-1.1.8-2.2.8-3.3 0-1.1.8-2.2.8-3.3 0-1.1.8-2.2.8-3.3 0-.4.3-.7.4-1.1.4z'/%3E%3Cpath fill='%23d4c3a8' d='M1.5 14h13v1h-13z'/%3E%3Cpath fill='%237b6cf6' d='M7.3 4.4h1.4v4.2H7.3z'/%3E%3Cpath fill='%23f0b323' d='M8 1.2c.9 1 1.3 1.8 1 2.5-.2.4-.6.6-1 .6s-.8-.2-1-.6c-.3-.7.1-1.5 1-2.5z'/%3E%3C/svg%3E")}.sidebar a.season-day:after,.session-list li.season-day .session-topic:after,.cal-mobile-row.season-day .cal-mobile-date:after{content:"";vertical-align:-.24em;background:var(--season-icon) center / contain no-repeat;width:1.2em;height:1.2em;margin-left:.4em;display:inline-block}.season-mark{cursor:default;flex:none;width:1.5rem;height:1.5rem;margin-left:-.4rem;position:relative}.season-mark:before{content:"";background:var(--season-icon) center / contain no-repeat;transform-origin:var(--season-motion-origin,50% 50%);position:absolute;inset:0}.season-bubble{background:var(--color-surface);width:max-content;max-width:min(18rem,80vw);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:center;opacity:0;visibility:hidden;z-index:30;pointer-events:none;padding:.45rem .7rem;font-size:.82rem;font-weight:500;line-height:1.4;transition:opacity .12s;position:absolute;top:calc(100% + .5rem);left:50%;transform:translate(-50%);box-shadow:0 6px 20px #16202b2e}@media (hover:hover){.season-mark:hover .season-bubble{opacity:1;visibility:visible}}.season-mark.open .season-bubble{opacity:1;visibility:visible}.season-mark.play:before{animation:var(--season-motion,none) var(--season-motion-time,.9s) ease-in-out}@media (prefers-reduced-motion:reduce){.season-mark.play:before{animation:none}}:root[data-season=halloween]{--season-motion:season-wobble;--season-motion-origin:50% 90%}:root[data-season=st-patricks]{--season-motion:season-wobble;--season-motion-origin:50% 95%}:root[data-season=founders-day]{--season-motion:season-wobble;--season-motion-origin:50% 90%}:root[data-season=thanksgiving]{--season-motion:season-drift}:root[data-season=winter],:root[data-season=spring-break]{--season-motion:season-spin}:root[data-season=new-year],:root[data-season=independence-day]{--season-motion:season-twinkle}:root[data-season=lunar-new-year]{--season-motion:season-swing;--season-motion-origin:50% 0;--season-motion-time:1.2s}:root[data-season=first-class]{--season-motion:season-ring;--season-motion-origin:50% 5%}:root[data-season=valentines],:root[data-season=roger-babson]{--season-motion:season-beat}:root[data-season=pi-day],:root[data-season=earth-day],:root[data-season=babson-founding],:root[data-season=babson-monday]{--season-motion:season-turn}:root[data-season=programmers-day],:root[data-season=ada-lovelace]{--season-motion:season-shake}:root[data-season=hopper]{--season-motion:season-flutter}:root[data-season=last-class]{--season-motion:season-wave;--season-motion-origin:20% 50%}:root[data-season=commencement]{--season-motion:season-toss}:root[data-season=patriots-day],:root[data-season=fall-break],:root[data-season=babson-break]{--season-motion:season-hop}:root[data-season=april-fools]{--season-motion:season-flip;--season-motion-time:1.6s}@keyframes season-wobble{0%,to{transform:rotate(0)}20%{transform:rotate(-14deg)}40%{transform:rotate(11deg)}60%{transform:rotate(-7deg)}80%{transform:rotate(4deg)}}@keyframes season-drift{0%,to{transform:translate(0)rotate(0)}35%{transform:translate(-15%,10%)rotate(-25deg)}70%{transform:translate(12%,5%)rotate(18deg)}}@keyframes season-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes season-twinkle{0%{transform:scale(1)rotate(0)}50%{transform:scale(1.4)rotate(180deg)}to{transform:scale(1)rotate(360deg)}}@keyframes season-swing{0%,to{transform:rotate(0)}20%{transform:rotate(22deg)}45%{transform:rotate(-16deg)}70%{transform:rotate(8deg)}88%{transform:rotate(-3deg)}}@keyframes season-ring{0%,90%,to{transform:rotate(0)}10%{transform:rotate(18deg)}20%{transform:rotate(-18deg)}30%{transform:rotate(15deg)}40%{transform:rotate(-15deg)}50%{transform:rotate(10deg)}60%{transform:rotate(-10deg)}70%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}}@keyframes season-beat{0%,30%,60%,to{transform:scale(1)}15%,45%{transform:scale(1.3)}}@keyframes season-turn{0%{transform:perspective(4rem)rotateY(0)}to{transform:perspective(4rem)rotateY(360deg)}}@keyframes season-shake{0%,90%,to{transform:translate(0)}15%{transform:translate(-12%)}30%{transform:translate(12%)}45%{transform:translate(-9%)}60%{transform:translate(9%)}75%{transform:translate(-4%)}}@keyframes season-flutter{0%,40%,80%,to{transform:scaleX(1)}20%,60%{transform:scaleX(.4)}}@keyframes season-wave{0%,to{transform:skewY(0)}25%{transform:skewY(-12deg)}50%{transform:skewY(8deg)}75%{transform:skewY(-4deg)}}@keyframes season-toss{0%{transform:translateY(0)rotate(0)}50%{transform:translateY(-60%)rotate(180deg)}to{transform:translateY(0)rotate(360deg)}}@keyframes season-hop{0%,50%,85%,to{transform:translateY(0)}25%{transform:translateY(-30%)}70%{transform:translateY(-15%)}}@keyframes season-flip{0%{transform:rotate(0)}25%,75%{transform:rotate(180deg)}to{transform:rotate(360deg)}}@media (width<=640px){.season-bubble{top:calc(var(--header-height) + .5rem);width:auto;max-width:none;position:fixed;left:1rem;right:1rem;transform:none}}.cal-day.season-day:after{content:"";background:var(--season-icon) center / contain no-repeat;width:1.5rem;height:1.5rem;position:absolute;top:.3rem;right:.3rem}.halloween-skeleton{z-index:250;width:6rem;height:4.95rem;position:fixed;bottom:0;right:7rem}@media (width<=640px){.halloween-skeleton{width:4.4rem;height:3.65rem;right:4.1rem}}.halloween-skeleton{pointer-events:none;display:none}:root[data-season=halloween] .halloween-skeleton{display:block}.halloween-skeleton svg{width:100%;height:100%;display:block;overflow:visible}.halloween-skeleton :is(.skeleton-head,.skeleton-hand){pointer-events:visiblePainted;cursor:pointer;-webkit-tap-highlight-color:transparent;transform-box:fill-box;transform-origin:50% 100%}.halloween-skeleton{--skeleton-crawl:min(14rem, 40vw)}.halloween-skeleton.crawl{animation:3.6s ease-in-out skeleton-crawl}.halloween-skeleton.crawl .skeleton-hand-left{animation:.54s ease-in-out 4 skeleton-reach}.halloween-skeleton.crawl .skeleton-hand-right{animation:.54s ease-in-out 4 skeleton-push}.halloween-skeleton.crawl .skeleton-head{animation:.54s ease-in-out 4 skeleton-bob}@keyframes skeleton-crawl{0%{transform:translate(0)}15%{transform:translate(calc(var(--skeleton-crawl) * -.25), 0)}30%{transform:translate(calc(var(--skeleton-crawl) * -.5), 0)}45%{transform:translate(calc(var(--skeleton-crawl) * -.75), 0)}60%{transform:translate(calc(var(--skeleton-crawl) * -1), 0)}70%{transform:translate(calc(var(--skeleton-crawl) * -1), 110%)}70.1%{transform:translateY(110%)}85%{transform:translateY(110%)}to{transform:translate(0)}}@keyframes skeleton-reach{0%,to{transform:translate(0)}25%{transform:translate(-5px,-5px)}45%{transform:translate(-7px)}}@keyframes skeleton-push{0%,50%,to{transform:translate(0)}70%{transform:translate(-5px,-4px)}85%{transform:translate(-6px)}}@keyframes skeleton-bob{0%,to{transform:rotate(0)}30%{transform:rotate(-6deg)}70%{transform:rotate(3deg)}}@media (prefers-reduced-motion:reduce){.halloween-skeleton.crawl,.halloween-skeleton.crawl .skeleton-hand{animation:none}.halloween-skeleton.crawl .skeleton-head{animation:.6s ease-in-out skeleton-bob}}@media print{.halloween-skeleton{display:none!important}}
