html[data-has-hero]{overflow-x:clip}html[data-has-hero] .sl-container{isolation:isolate;position:relative;overflow:visible}course-catalog-contour:where(.astro-3p66ypxg){z-index:-1;opacity:.94;pointer-events:none;width:100vw;display:block;position:absolute;inset-block:0;inset-inline-start:50%;overflow:hidden;transform:translate(-50%);-webkit-mask-image:radial-gradient(50% 50%,#000 22%,#000000f5 68%,#0000 100%);mask-image:radial-gradient(50% 50%,#000 22%,#000000f5 68%,#0000 100%)}canvas:where(.astro-3p66ypxg){width:100%;height:100%;display:block}@media (forced-colors:active),print{course-catalog-contour:where(.astro-3p66ypxg){display:none}}.course-catalog:where(.astro-3mpxecle){--timeline-bottom-veil-opacity:0;--timeline-axis-width:3rem;--timeline-entry-gap:1.25rem;--timeline-knot-offset:1.35rem;--timeline-status-wash-strength:5.5%;--timeline-terminal-fade-length:12rem;flex-direction:column;flex:1;width:100%;max-width:64rem;margin-inline:auto;display:flex}.course-catalog:where(.astro-3mpxecle):after{z-index:2;background:linear-gradient(to bottom, transparent 0%, color-mix(in srgb, var(--course-page) 8%, transparent) 22%, color-mix(in srgb, var(--course-page) 32%, transparent) 48%, color-mix(in srgb, var(--course-page) 68%, transparent) 74%, var(--course-page) 100%);content:"";height:min(44vh,27.5rem);opacity:var(--timeline-bottom-veil-opacity);pointer-events:none;transition:opacity .12s linear;position:fixed;inset-block-end:0;inset-inline:0}.course-timeline:where(.astro-3mpxecle){z-index:1;width:100%;margin:0;padding-block-start:calc(var(--timeline-terminal-fade-length) - var(--timeline-knot-offset));padding-inline:0;list-style:none;position:relative}.course-timeline-stage:where(.astro-3mpxecle){flex:1;align-items:center;width:100%;min-width:0;display:grid;position:relative}.course-timeline:where(.astro-3mpxecle):before,.timeline-item:where(.astro-3mpxecle):last-child:after{z-index:0;width:1px;height:var(--timeline-terminal-fade-length);pointer-events:none;content:"";position:absolute;inset-inline-start:50%;transform:translate(-50%)}.course-timeline:where(.astro-3mpxecle):before{background:linear-gradient(to bottom, transparent, var(--course-border-subtle));inset-block-start:0}.timeline-item:where(.astro-3mpxecle):last-child:after{background:linear-gradient(to bottom, var(--course-border-subtle), transparent);inset-block-start:var(--timeline-knot-offset)}.timeline-item:where(.astro-3mpxecle){--status-color:var(--course-text-subtle);z-index:1;grid-template-columns:minmax(0, 1fr) var(--timeline-axis-width) minmax(0, 1fr);min-width:0;padding-block-end:var(--timeline-entry-gap);display:grid;position:relative}.timeline-item:where(.astro-3mpxecle)[data-status=active]{--status-color:var(--course-success)}.timeline-item:where(.astro-3mpxecle)[data-status=upcoming]{--status-color:var(--course-warning)}.timeline-item:where(.astro-3mpxecle):before{z-index:1;background:var(--course-border-subtle);content:"";width:1px;position:absolute;inset-block:0;inset-inline-start:50%;transform:translate(-50%)}.timeline-item:where(.astro-3mpxecle):first-child:before{inset-block-start:var(--timeline-knot-offset)}.timeline-item:where(.astro-3mpxecle):last-child:before{inset-block-end:calc(100% - var(--timeline-knot-offset))}.timeline-item:where(.astro-3mpxecle):last-child{align-items:start;padding-block-end:calc(var(--timeline-terminal-fade-length) - var(--timeline-knot-offset))}.timeline-marker:where(.astro-3mpxecle){z-index:3;border:2px solid var(--course-page);background:var(--status-color);outline:1px solid var(--status-color);border-radius:50%;width:.8rem;height:.8rem;position:absolute;inset-block-start:.95rem;inset-inline-start:50%;transform:translate(-50%)}.status-wash:where(.astro-3mpxecle){z-index:0;background:radial-gradient(ellipse 17rem 7.5rem at 50% 4.8rem, color-mix(in srgb, var(--status-color) var(--timeline-status-wash-strength), transparent), transparent 72%);opacity:0;pointer-events:none;position:absolute;inset:-3rem -1.5rem}.timeline-item:where(.astro-3mpxecle):is([data-status=upcoming],[data-status=active]) .status-wash:where(.astro-3mpxecle){opacity:1}.timeline-marker:where(.astro-3mpxecle):after{border-block-start:1px solid var(--status-color);content:"";width:1.65rem;position:absolute;inset-block-start:50%;inset-inline-start:100%}.course-entry-frame:where(.astro-3mpxecle){z-index:2;border:1px solid var(--course-border-subtle);border-radius:var(--course-radius);background:var(--course-surface);grid-column:3;min-width:0;margin-inline-start:.75rem;display:flex;position:relative}.timeline-item:where(.astro-3mpxecle):nth-child(2n) .course-entry-frame:where(.astro-3mpxecle){grid-column:1;margin-inline:0 .75rem}.timeline-item:where(.astro-3mpxecle):nth-child(2n) .timeline-marker:where(.astro-3mpxecle):after{inset-inline:auto 100%}.course-entry-frame:where(.astro-3mpxecle):hover,.course-entry-frame:where(.astro-3mpxecle):focus-within{border-color:var(--course-border-strong);background:color-mix(in srgb, var(--course-accent) 4%, var(--course-surface))}.course-entry:where(.astro-3mpxecle){border-radius:inherit;min-width:0;color:var(--course-text);flex-direction:column;flex:1;gap:.4rem;padding:.8rem .9rem;text-decoration:none;display:flex}.course-entry:where(.astro-3mpxecle):focus-visible{outline:3px solid var(--course-accent);outline-offset:3px}.entry-meta:where(.astro-3mpxecle){min-width:0;color:var(--course-text-subtle);font-size:var(--sl-text-xs);align-items:center;gap:.4rem;display:flex}.status-label:where(.astro-3mpxecle){color:var(--status-color);font-size:var(--sl-text-2xs);letter-spacing:.05em;text-transform:uppercase;font-weight:750}.status-label:where(.astro-3mpxecle)+.period-label:where(.astro-3mpxecle):before{color:var(--course-border-strong);content:"·";margin-inline-end:.4rem}.course-entry-frame--protected:where(.astro-3mpxecle) .entry-meta:where(.astro-3mpxecle){padding-inline-end:1.75rem}.access-tooltip-slot:where(.astro-3mpxecle){z-index:2;display:inline-flex;position:absolute;inset-block-start:.68rem;inset-inline-end:.7rem}.entry-title:where(.astro-3mpxecle){color:inherit;font-size:var(--sl-text-lg);margin:0;line-height:1.3}.empty-state:where(.astro-3mpxecle){border-block:1px solid var(--course-border-subtle);color:var(--course-text-muted);font-size:var(--sl-text-sm);margin:0;padding-block:.75rem}.catalog-footer:where(.astro-3mpxecle){color:var(--course-text-subtle);font-size:var(--sl-text-xs);text-align:center;justify-content:center;align-items:center;gap:.75rem 1.5rem;margin-block-start:3rem;display:flex}.catalog-footer:where(.astro-3mpxecle) p:where(.astro-3mpxecle){margin:0}.maintainer:where(.astro-3mpxecle) a:where(.astro-3mpxecle){font-weight:650}@media (width<=49.99rem){.course-catalog:where(.astro-3mpxecle){--timeline-axis-inset:.45rem;--timeline-entry-gap:1rem}.course-timeline-stage:where(.astro-3mpxecle)>.course-timeline:where(.astro-3mpxecle){padding-inline-start:0}.timeline-item:where(.astro-3mpxecle){padding-inline-start:2rem;display:block}.timeline-item:where(.astro-3mpxecle):before,.timeline-marker:where(.astro-3mpxecle),.course-timeline:where(.astro-3mpxecle):before,.timeline-item:where(.astro-3mpxecle):last-child:after{inset-inline-start:var(--timeline-axis-inset)}.timeline-marker:where(.astro-3mpxecle):after,.timeline-item:where(.astro-3mpxecle):nth-child(2n) .timeline-marker:where(.astro-3mpxecle):after{width:1.25rem;inset-inline:100% auto}.course-entry-frame:where(.astro-3mpxecle),.timeline-item:where(.astro-3mpxecle):nth-child(2n) .course-entry-frame:where(.astro-3mpxecle){margin:0}.status-wash:where(.astro-3mpxecle){background:radial-gradient(ellipse 13rem 7.5rem at 1.45rem 4.8rem, color-mix(in srgb, var(--status-color) var(--timeline-status-wash-strength), transparent), transparent 72%);inset-inline:-.75rem}}@media (forced-colors:active),print{.course-catalog:where(.astro-3mpxecle):after,.status-wash:where(.astro-3mpxecle){display:none}}@media (prefers-reduced-motion:reduce){.course-catalog:where(.astro-3mpxecle):after{display:none}}
