/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
:root {
    --source-serif: source-serif-pro, serif;
    --open-sans: open-sans, sans-serif;
    --body: 400 1rem / 1.6875 var(--open-sans);
    --h1: 600 clamp(2.5rem, 7vw, 3.5rem) / 1.2 var(--source-serif);
    --h2: 600 clamp(2.25rem, 5vw, 2.75rem) / 1.25 var(--source-serif);
    --h3: 700 1.75rem / 1.35 var(--open-sans);
    --h4: 700 1.5rem / 1.5 var(--open-sans);
    --h5: 700 1.25rem / 1.5 var(--open-sans);
    --h6: 700 1rem / 1.5 var(--open-sans);
    --text-small: 400 .875rem / 1.5 var(--open-sans);
    --text-intro: 600 clamp(1.375rem, 5vw, 1.625rem) / 1.5 var(--source-serif);
    --text-button: 600 .875rem / 1.186 var(--open-sans);
    --text-stat: 700 3.3125rem / 1 var(--source-serif);
    --text-eyebrow: 600 .875rem / 1.1 var(--open-sans);
    --text-quote: 600 clamp(1.5rem, 5vw, 1.875rem) / 1.5 var(--source-serif);
    --link: 600 1rem / 1.1 var(--open-sans);
    --meta: 700 .875rem / 1.1 var(--open-sans);
    --black: #000;
    --black-75: #000000bf;
    --black-80: #000c;
    --black-90: #000000e6;
    --black-20: #0003;
    --black-10: #0000001a;
    --white: #fff;
    --white-20: #fff3;
    --white-40: #fff6;
    --carnegie-red: #c41230;
    --gray-light: #f2f2f2;
    --gray-medium: #948f8f;
    --gray-dark: #222;
    --transition: .4s ease;
    --transition-short: .2s ease;
    --transition-cubic: .4s cubic-bezier(.4, 0, .2, 1);
    --panel: clamp(3.5rem, 10vw, 4.5rem);
    --gap: clamp(1.5rem, 6vw, 3rem);
    --gap-sm: clamp(1.5rem, 6vw, 2rem);
    --gutter: clamp(1.5rem, 6vw, 4rem);
    --wrap: max(var(--gutter), (100% - 78rem) / 2);
    --wrap-sm: max(var(--gutter), (100% - 44rem) / 2);
    --radius: 0;
    --shadow: 0 0 .75rem #00000040;
    --accent: var(--carnegie-red);
    --background: var(--white);
    --color: var(--black);
}

@media (prefers-reduced-motion) {
    :root {
        --transition: 0s ease;
    }
}

:root .theme-dark {
    --accent: var(--carnegie-red);
    --background: var(--black);
    --color: var(--white);
    background-color: var(--black);
    color: var(--white);
}

@keyframes fade-in {
    from {
        opacity: 0;
    }
}

@keyframes fade-in-up {
    from {
        opacity: 0;
        transform: translateY(3rem);
    }
}

*,
:before,
:after {
    box-sizing: border-box;
}

#root {
    container: root / inline-size;
}

body {
    -moz-text-size-adjust: none;
    text-size-adjust: none;
    overflow-wrap: break-word;
    margin: 0;
}

iframe,
img,
svg,
video {
    max-width: 100%;
    height: auto;
    display: block;
}

iframe,
video {
    aspect-ratio: 16 / 9;
    border: 0;
    width: 100%;
}

svg {
    fill: currentColor;
}

table {
    border-collapse: collapse;
}

blockquote,
fieldset,
figure,
legend {
    border: 0;
    margin-inline-start: 0;
    margin-inline-end: 0;
    padding: 0;
}

button,
input,
select,
textarea {
    color: inherit;
    font: inherit;
    text-overflow: ellipsis;
    border-radius: 0;
    max-width: 100%;
}

button,
select,
[type="button"],
[type="reset"],
[type="submit"] {
    cursor: pointer;
}

[type="search"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

input[type="search"]::-webkit-search-decoration {
    display: none;
}

input[type="search"]::-webkit-search-cancel-button {
    display: none;
}

input[type="search"]::-webkit-search-results-button {
    display: none;
}

input[type="search"]::-webkit-search-results-decoration {
    display: none;
}

input[type="search"]::-ms-clear {
    width: 0;
    height: 0;
    display: none;
}

input[type="search"]::-ms-reveal {
    width: 0;
    height: 0;
    display: none;
}

::placeholder {
    color: inherit;
    opacity: 1;
}

:focus {
    outline-offset: -.175rem;
    outline-width: .175rem;
    outline-style: inset;
    outline-color: var(--color, var(--black));
}

:focus:not(:-webkit-any(form input, form textarea, form select)) {
    outline-offset: .25rem;
    outline: .25rem dashed;
    outline-color: var(--color, var(--black));
}

:focus:not(:-moz-any(form input, form textarea, form select)) {
    outline-offset: .25rem;
    outline: .25rem dashed;
    outline-color: var(--color, var(--black));
}

:focus:not(:is(form input, form textarea, form select)) {
    outline-offset: .25rem;
    outline: .25rem dashed;
    outline-color: var(--color, var(--black));
}

:focus:not(:focus-visible) {
    outline: 0;
}

:root {
    scroll-behavior: smooth;
    overflow-x: hidden;
}

body {
    color: var(--black);
    font: var(--body);
    -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4,
h5 {
    margin-block-start: 2rem;
    margin-block-end: 1rem;
}

:is(h1, h2, h3, h4, h5) a {
    font-weight: inherit;
}

h1,
.h1 {
    font: var(--h1);
}

h2,
.h2 {
    font: var(--h2);
}

h3,
.h3 {
    font: var(--h3);
}

h4,
.h4 {
    font: var(--h4);
}

h5,
.h5 {
    font: var(--h5);
}

h6,
.h6 {
    font: var(--h6);
}

.text-small {
    font: var(--text-small);
}

.text-intro {
    font: var(--text-intro);
}

.text-stat {
    font: var(--text-stat);
    color: var(--carnegie-red);
    align-items: center;
    gap: .5rem;
    font-size: 2rem;
    display: flex;
}

.text-stat span {
    font: var(--text-stat);
    letter-spacing: -3.71px;
}

.text-stat--lg span {
    letter-spacing: 0;
    font-size: 5rem;
}

.text-eyebrow {
    font: var(--text-eyebrow);
    letter-spacing: 2px;
    text-transform: uppercase;
}

.text-eyebrow+h1 {
    margin-top: 0;
}

.text-eyebrow+h2 {
    margin-top: 0;
}

.text-eyebrow+h3 {
    margin-top: 0;
}

.text-eyebrow+h4 {
    margin-top: 0;
}

.meta {
    font: var(--meta);
    color: var(--carnegie-red);
    display: inline-grid;
}

.meta a {
    font-weight: 700;
}

.meta--alt {
    background-color: var(--gray-light);
    padding: .5rem .25rem;
}

.theme-dark .meta--alt {
    background-color: var(--carnegie-red);
    color: var(--white);
}

a {
    color: inherit;
    transition: all var(--transition);
    font-weight: normal;
    text-decoration: none;
}

.Common :is(a:not([class])) {
    transition: box-shadow var(--transition), text-shadow var(--transition);
    box-shadow: 0 .0625rem;
}

.Common :is(a:not([class])):hover {
    text-shadow: .5px 0;
    box-shadow: 0 .125rem;
}

.Common a:not([class]):not(h1 a):not(h2 a):not(h3 a):not(h4 a):not(h5 a):not(h6 a):not(.Section--black *):not(.Section--bg-image *):not(.theme-dark *) {
    color: var(--carnegie-red);
    font-weight: 600;
}

a:not([class]):has(img) {
    text-decoration: none;
    display: inline-block;
    box-shadow: none !important;
}

a:not([class]):has(img) img {
    transition: var(--transition);
}

a:not([class]):has(img):hover img {
    background: none;
    transform: scale(1.2);
}

ol,
ul {
    padding-inline-start: 1.25em;
}

strong {
    font-weight: 700;
}

blockquote {
    padding-inline: var(--wrap);
    position: relative;
}

blockquote:before {
    content: "";
    background-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/quote.svg);
    background-repeat: no-repeat;
    width: 44px;
    height: 44px;
    margin-block-start: 0;
    margin-block-end: 1.5rem;
    display: block;
}

blockquote p {
    font-family: var(--source-serif);
    margin-block-start: 0;
    margin-block-end: 1em;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.4;
    position: relative;
}

blockquote cite {
    font: var(--h6);
    margin-top: 2rem;
    font-weight: normal;
    display: block;
}

blockquote cite strong {
    color: var(--carnegie-red);
    font: var(--h6);
}

blockquote .Buttons {
    margin-top: var(--gap-sm);
}

@media (min-width:48em) {
    blockquote {
        padding: 0 0 0 calc(var(--gap-sm) + 44px);
    }

    blockquote:before {
        margin-block-start: .5rem;
        margin-block-end: 0;
        position: absolute;
        left: 0;
    }
}

.Common {
    display: flow-root;
}

main>.Common {
    margin: var(--panel) var(--wrap-sm);
}

.Common:has(> :only-child:empty) {
    display: none;
}

.Common .alignleft {
    float: none;
    display: table;
}

@media (min-width:32em) {
    .Common .alignleft {
        width: calc(50% - 2rem);
        margin-block-start: .5rem;
        margin-block-end: 1.5rem;
    }
}

.Common .alignright {
    float: none;
    display: table;
}

@media (min-width:32em) {
    .Common .alignright {
        width: calc(50% - 2rem);
        margin-block-start: .5rem;
        margin-block-end: 1.5rem;
    }
}

@media (min-width:32em) {
    .Common .alignleft {
        float: left;
        margin-right: 2rem;
    }
}

@media (min-width:32em) {
    .Common .alignright {
        float: right;
        margin-left: 2rem;
    }
}

.Common .aligncenter {
    text-align: center;
    margin-inline-start: auto;
    margin-inline-end: auto;
    display: table;
}

.ContentSidebar {
    gap: var(--gap) calc(var(--gutter) * 2);
    margin-block: var(--panel);
    padding-inline: var(--wrap);
    grid-template: auto / 100%;
    display: grid;
}

@media (max-width:calc(63.999em - .001px)) {
    .ContentSidebar {
        row-gap: var(--panel);
    }
}

@media (min-width:64em) {
    .ContentSidebar {
        grid-template-columns: minmax(0, 1fr) 20rem;
    }
}

@media (min-width:80em) {
    .ContentSidebar {
        margin-top: 12rem;
    }
}

@media (min-width:64em) {
    .ContentSidebar:not(:has(.ContentSidebar__subnav)) .ContentSidebar__sidebar {
        grid-area: 1 / 2 / span 2;
    }
}

@media (min-width:64em) {
    .Hero+.ContentSidebar .ContentSidebar__subnav:has(*) {
        z-index: 1;
        margin-top: -1rem;
    }

    .Hero+.ContentSidebar .ContentSidebar__subnav:has(*)~.ContentSidebar__sidebar {
        margin-top: 0;
    }

    .Hero+.ContentSidebar .ContentSidebar__sidebar {
        z-index: 1;
        margin-top: -1rem;
    }

    .Hero+.ContentSidebar .ContentSidebar__sidebar~.ContentSidebar__sidebar {
        margin-top: 0;
    }
}

.ContentSidebar.hide-header {
    margin-top: 0;
}

@media (min-width:64em) {
    .ContentSidebar.hide-header .ContentSidebar__subnav {
        margin-top: var(--gap);
    }
}

.hide-header .ContentSidebar__header h1 {
    visibility: hidden;
    display: none;
}

@media (max-width:calc(63.999em - .001px)) {
    .hide-header .ContentSidebar__header {
        display: none;
    }
}

@media (min-width:64em) {
    .ContentSidebar__header:has(.Breadcrumbs) h1 {
        border-bottom: 1px solid var(--black-10);
        margin: 0;
        padding-bottom: 1rem;
        display: inline-flex;
    }
}

.ContentSidebar__header:not(:has(*)) {
    display: none;
}

@media (min-width:64em) {
    .ContentSidebar__header:not(:has(*))~.ContentSidebar__content {
        grid-row: 1 / span 2;
    }
}

.ContentSidebar__subnav {
    background-color: var(--gray-light);
    margin-inline: calc(-1 * var(--wrap));
}

@media (min-width:64em) {
    .ContentSidebar__subnav {
        margin-inline: unset;
        background-color: #0000;
        grid-area: span 2 / 2;
    }
}

.ContentSidebar__subnav:not(:has(*)) {
    display: none;
}

@media (min-width:64em) {
    .ContentSidebar__subnav:not(:has(*))~.ContentSidebar__sidebar {
        grid-area: 1 / 2 / span 2;
    }
}

@media (min-width:64em) {
    .ContentSidebar__content {
        grid-area: span 3 / 1;
    }
}

@media (max-width:calc(63.999em - .001px)) {
    .ContentSidebar__header+.ContentSidebar__content {
        margin-top: calc(var(--panel) * -.5);
    }
}

@media (min-width:64em) {
    .ContentSidebar__sidebar {
        grid-column: 2;
    }
}

#main-content .Section.Section--gray.Section--bg-split-alt:last-child {
    margin-bottom: var(--panel);
}

.flush> :first-child {
    margin-top: 0;
}

.flush> :last-child {
    margin-bottom: 0;
}

:is(.invis, .screen-reader-text):not(:-webkit-any(:active, :focus, :focus-within)) {
    clip-path: inset(50%);
    white-space: nowrap;
    width: 1px;
    height: 1px;
    position: absolute;
    overflow: hidden;
}

:is(.invis, .screen-reader-text):not(:-moz-any(:active, :focus, :focus-within)) {
    clip-path: inset(50%);
    white-space: nowrap;
    width: 1px;
    height: 1px;
    position: absolute;
    overflow: hidden;
}

:is(.invis, .screen-reader-text):not(:is(:active, :focus, :focus-within)) {
    clip-path: inset(50%);
    white-space: nowrap;
    width: 1px;
    height: 1px;
    position: absolute;
    overflow: hidden;
}

.contents {
    display: contents;
}

.skip-link {
    outline-color: var(--white);
    top: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 4 !important;
    background: var(--black) !important;
    color: var(--white) !important;
    width: auto !important;
    position: absolute !important;
}

.link-underline {
    transition: box-shadow var(--transition), text-shadow var(--transition);
    background: none;
    border-color: #0000;
    padding: 0;
    box-shadow: 0 .0625rem;
}

.link-underline:hover {
    text-shadow: .5px 0;
    box-shadow: 0 .125rem;
}

.link-underline-show {
    transition: box-shadow var(--transition);
    box-shadow: 0 .0625rem #0000;
}

.link-underline-show:hover {
    box-shadow: 0 .0625rem;
}

.link-underline-swipe {
    transition: background var(--transition), color var(--transition);
    color: inherit;
    background: linear-gradient(currentColor, currentColor) 0 100% / 0 .0625em no-repeat;
    padding-bottom: .0625em;
    line-height: 1.5;
    text-decoration: none;
}

.link-underline-swipe:hover {
    background-size: 100% .0625em;
    text-decoration: none;
}

.link-cover {
    position: static;
}

.link-cover:after {
    content: "";
    z-index: 1;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

.columns {
    gap: var(--gutter);
    grid-template-columns: 100%;
    display: grid;
}

@media (min-width:48em) {
    .columns {
        grid-template-columns: 1fr 1fr;
    }
}

hr {
    margin: 2rem var(--wrap);
    border: 0;
    border-top: 3px solid var(--carnegie-red);
    display: block;
}

.Common :is(hr) {
    margin-inline-start: 0;
    margin-inline-end: 0;
}

.Section :is(hr) {
    margin-inline-start: 0;
    margin-inline-end: 0;
}

.grid {
    --grid-min: 14rem;
    gap: var(--gap);
    grid-template-columns: repeat(auto-fit, minmax(var(--grid-min), 1fr));
    display: grid;
}

@media (min-width:80em) {
    .grid--4 {
        --grid-min: 10rem !important;
    }
}

.with-scroll {
    position: unset;
    order: 2;
    max-height: 100vh;
    overflow: auto;
}

.with-scroll::-webkit-scrollbar {
    width: 8px;
}

.with-scroll::-webkit-scrollbar-track {
    background: var(--gray-dark);
}

.with-scroll::-webkit-scrollbar-thumb {
    background: var(--gray-light);
}

.with-scroll::-webkit-scrollbar-thumb:hover {
    background: var(--carnegie-red);
}

.with-scroll:after {
    content: "";
    transition: all var(--transition);
    background: linear-gradient(#0000 0%, #000 80%);
    width: 100%;
    height: 12%;
    position: absolute;
    bottom: 0;
    left: 0;
}

.with-scroll:before {
    content: "";
    text-align: center;
    background-color: var(--white);
    color: var(--white);
    z-index: 2;
    transition: all var(--transition);
    width: 100%;
    padding-bottom: 30px;
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
    position: absolute;
    bottom: .5%;
    left: 0;
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) bottom / 1.25rem no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) bottom / 1.25rem no-repeat;
}

.with-scroll.scrolled:after {
    opacity: 0;
    visibility: hidden;
}

.with-scroll.scrolled:before {
    opacity: 0;
    visibility: hidden;
}

.article-header .date {
    margin-bottom: 1rem;
    display: block;
}

.article-header h1 {
    margin-block-start: 1rem;
    margin-block-end: 1rem;
}

.article-header h2 {
    margin-block-start: 1rem;
    margin-block-end: 1rem;
}

.article-header em+.Widget__icon {
    margin-left: 1rem;
}

.contact {
    margin-block-start: 1rem;
    margin-block-end: 1rem;
}

.contact ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
}

.rule-bottom {
    border-bottom: 1px solid var(--black-20);
    margin-bottom: .35em;
    padding-bottom: .35em;
}

@media not print {
    [data-animation="fade-in-up"] {
        animation: .6s both fade-in-up;
    }

    [data-animate] {
        animation-play-state: paused;
    }

    [data-animate]:before {
        animation-play-state: paused;
    }

    [data-animate="true"] {
        animation-play-state: running;
    }

    [data-animate="true"]:before {
        animation-play-state: running;
    }
}

@media (prefers-reduced-motion:reduce) {
    [data-animate] {
        animation: none !important;
    }
}

.flickity-enabled:focus-visible {
    outline: none !important;
}

.flickity-viewport {
    position: relative;
}

.flickity-viewport:focus-visible {
    outline: none !important;
}

.slider:has(.flickity-button[disabled="true"]) {
    padding-bottom: 0;
}

.slider:has(.flickity-button[disabled="true"]) .flickity-button {
    visibility: hidden;
    display: none;
}

.slider:has(.flickity-button[disabled="true"]) .flickity-status {
    visibility: hidden;
    display: none;
}

.slider:has(.flickity-button[disabled="true"]) .flickity-cell {
    margin-right: 0;
    padding-inline-start: 0;
    padding-inline-end: 0;
}

.slider:has(.flickity-button[disabled="true"])+.flickity-status {
    visibility: hidden;
    display: none;
}

.flickity-slider {
    flex-wrap: nowrap;
    display: flex;
}

.flickity-slider>* {
    flex-shrink: 0;
    position: absolute;
    top: 0;
}

.flickity-prev-next-button,
.flickity-control {
    border: .125rem solid var(--carnegie-red);
    transition: color var(--transition), opacity var(--transition);
    background: var(--carnegie-red);
    color: inherit;
    outline-color: var(--white);
    outline-offset: -.25em;
    z-index: 1;
    border-radius: 0;
    place-items: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    display: inline-grid;
    position: absolute;
    bottom: 0;
    left: calc(38px + .75rem);
}

:is(.flickity-prev-next-button, .flickity-control):after {
    content: "";
    background: var(--white);
    transition: var(--transition);
    position: absolute;
    top: -.125rem;
    bottom: -.125rem;
    left: -.125rem;
    right: -.125rem;
    -webkit-mask: none center / 60% no-repeat;
    mask: none center / 60% no-repeat;
}

:is(.flickity-prev-next-button, .flickity-control) svg {
    display: none;
}

:is(.flickity-prev-next-button, .flickity-control).previous:after {
    transform: rotate(180deg);
    -webkit-mask-image: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg");
    mask-image: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg");
}

:is(.flickity-prev-next-button, .flickity-control).previous:hover:after {
    transform: rotate(180deg)scale(1.2);
}

@media (min-width:64em) {
    :is(.flickity-prev-next-button, .flickity-control).previous {
        order: -1;
    }
}

:is(.flickity-prev-next-button, .flickity-control).next:after {
    -webkit-mask-image: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg");
    mask-image: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg");
}

:is(.flickity-prev-next-button, .flickity-control):hover {
    background: var(--carnegie-red);
}

:is(.flickity-prev-next-button, .flickity-control):hover:after {
    transform: scale(1.2);
}

:is(.flickity-prev-next-button, .flickity-control)[disabled] {
    cursor: auto;
    opacity: .7;
}

:is(.flickity-prev-next-button, .flickity-control)[disabled]:hover {
    opacity: .7;
}

@media (min-width:64em) {
    :is(.flickity-prev-next-button, .flickity-control) {
        width: 2.75rem;
        height: 2.75rem;
    }
}

.flickity-status {
    color: var(--color, var(--black));
    order: 1;
    grid-template-columns: auto auto auto;
    justify-content: center;
    place-items: center;
    gap: .5rem;
    width: auto;
    margin: 0 auto;
    font-weight: 700;
    display: grid;
}

.flickity-enabled.is-fade .flickity-slider>* {
    pointer-events: none;
    z-index: 0;
}

.flickity-enabled.is-fade .flickity-slider>.is-selected {
    pointer-events: auto;
    z-index: 1;
}

.flickity-enabled.loaded.is-fade * {
    animation-duration: 6s;
    animation-delay: .5s;
}

.FormConnector-form-container {
    --color: var(--black);
    --background: var(--white);
    color: var(--black);
    background-color: var(--white);
    padding: var(--gap-sm) !important;
}

.FormConnector-form-container select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg") calc(100% - .75rem) / .75rem no-repeat;
    padding-right: 1.75rem;
}

.FormConnector-phone-cell-prefix {
    width: 115px !important;
}

.FormConnector-form-label {
    font-weight: 600 !important;
}

.FormConnector-form-input {
    border: 1px solid var(--black);
    padding: .5rem 1rem;
    font-weight: 600 !important;
}

.FormConnector-form-required {
    color: var(--carnegie-red) !important;
}

.Form {
    --color: var(--black);
    --background: var(--white);
    color: var(--black);
}

.Form input {
    border: 1px solid var(--gray-medium);
    color: var(--black);
    width: 100%;
    margin-top: .25rem;
    padding: .5rem;
    display: block;
}

.Form input[type="checkbox"] {
    border: 1px solid var(--gray-medium);
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: none;
    flex-shrink: 0;
    align-self: start;
    place-items: center;
    width: 1.375em;
    height: 1.375em;
    margin: .125em 0 0;
    padding: 0;
    display: grid;
}

.Form input[type="checkbox"]:checked:before {
    content: "";
    background: currentColor;
    width: 75%;
    height: 75%;
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/check.svg") center / contain no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/check.svg") center / contain no-repeat;
}

.Form input[type="radio"] {
    border: 1px solid var(--gray-medium);
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: none;
    flex-shrink: 0;
    align-self: start;
    place-items: center;
    width: 1.375em;
    height: 1.375em;
    margin: .125em 0 0;
    padding: 0;
    display: grid;
}

.Form input[type="radio"]:checked:before {
    content: "";
    background: currentColor;
    width: 75%;
    height: 75%;
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/check.svg") center / contain no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/check.svg") center / contain no-repeat;
}

.Form input[type="radio"] {
    border-radius: 50%;
}

.Form input[type="radio"]:checked:before {
    border-radius: 50%;
    width: 66%;
    height: 66%;
    -webkit-mask: none;
    mask: none;
}

.Form select option {
    color: var(--black);
}

.Form textarea {
    padding: .5rem;
}

.Form label {
    font-weight: 600;
    display: block;
}

.Form [data-required] label {
    font-weight: 600;
}

.Form [data-required] .form_label {
    font-weight: 600;
}

.Form select {
    color: var(--black);
    border: 1px solid var(--gray-medium);
    font: inherit;
    box-sizing: border-box;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg") calc(100% - .75rem) / .75rem no-repeat;
    margin: 0;
    padding: .5em 1.75rem .5em .5rem;
    line-height: 1.5em;
    display: inline-block;
}

div.form_question {
    box-sizing: border-box;
    margin: 0 0 1em;
    padding: 0;
}

div.form_question .form_label,
div.form_question label {
    margin-bottom: .25em;
    display: block;
}

div.form_question fieldset {
    border: 0;
    min-width: 0;
    margin: 0;
    padding: 0;
}

div.form_question fieldset>legend {
    display: none !important;
}

div+div.form_h1 {
    margin-top: 15px;
}

div.form_h1 .form_label {
    font-size: 1.4em;
}

div.form_h2 .form_label {
    font-size: 1.3em;
}

div.form_h3 .form_label {
    font-size: 1.1em;
}

div.form_p .form_label {
    font-weight: normal;
}

div.form_header .form_label {
    padding: 4px 5px;
    font-weight: bold;
}

div.form_responses {
    white-space: pre-wrap;
}

div.form_birthdate .form_responses {
    display: flex;
}

div.form_response input+label {
    margin-left: .5em;
    font-weight: normal;
    display: inline;
}

div.form_response:has(input[type="checkbox"]) {
    align-items: flex-start;
    display: flex;
}

div.form_response span.full_message {
    color: #c00;
    vertical-align: middle;
    margin-left: 1em;
    font-weight: bold;
}

div.form_question.selected,
div.form_question.required {
    background-color: #ffc;
}

div.form_question.required {
    background-color: #fcc;
}

.form_success {
    color: #0a0;
    border: 2px solid #0a0;
    padding: .5em;
    font-size: 1.25em;
}

.form_question {
    position: relative;
}

div.form_page+div.form_page {
    margin-top: 10px;
}

div.form_page input,
div.form_page label {
    vertical-align: middle;
}

div.form_page input[type="password"],
div.form_page input[type="text"],
div.form_page input[type="email"],
div.form_page input[type="tel"],
div.form_page input:not([type]),
div.form_page select,
div.form_page textarea {
    box-sizing: border-box;
    max-width: 100%;
}

div.form_question+div.form_question[data-type="plugin:widget"] {
    margin-top: 10px;
}

div.form_question[data-type="plugin:widget"]+div.form_question {
    margin-bottom: 10px;
}

div.form_question[data-type="likert"]>fieldset>.form_responses_labels>.form_response_label,
div.form_question[data-type="likert"]>fieldset>.form_responses>.form_response {
    box-sizing: border-box;
    text-align: left;
    display: inline-block;
}

div.form_question[data-type="likert"]>fieldset>.form_responses_labels,
div.form_question[data-type="likert"]>fieldset>.form_label {
    margin-bottom: .5em;
}

div.form_question.form_layout_stacked[data-type="address"]>fieldset>.form_responses>div,
div.form_question.form_layout_stacked[data-type="location"]>fieldset>.form_responses>div,
div.form_question.form_layout_stacked[data-type="location_nopostal"]>fieldset>.form_responses>div {
    margin-top: 5px;
}

div.form_question.form_layout_table input,
div.form_question.form_layout_table textarea {
    box-sizing: border-box;
    max-width: 100%;
}

div.form_question[data-type="payment"][data-amount="0"] {
    display: none;
}

@media (min-width:481px) {
    div.form_container:not(.form_width_narrow) div.form_question.form_layout_table {
        width: 100%;
        margin: 0;
        padding: 0;
        display: table;
    }

    div.form_container:not(.form_width_narrow) div.form_question.form_layout_table>fieldset {
        display: table-row-group;
    }

    div.form_container:not(.form_width_narrow) div.form_question.form_layout_table>fieldset>div {
        display: table-row;
    }

    div.form_container:not(.form_width_narrow) div.form_question.form_layout_table>fieldset>.form_label {
        display: table-cell;
    }

    div.form_container:not(.form_width_narrow) div.form_question.form_header.form_layout_table {
        margin: 0;
        padding: 0;
    }

    div.form_container:not(.form_width_narrow) div.form_question.form_layout_table .form_label {
        box-sizing: border-box;
        vertical-align: top;
        width: 150px;
        padding: 4px 5px;
        display: table-cell;
    }

    div.form_container:not(.form_width_narrow) div.form_question.form_layout_table[data-type="address"] .form_label,
    div.form_container:not(.form_width_narrow) div.form_question.form_layout_table[data-type="location"] .form_label,
    div.form_container:not(.form_width_narrow) div.form_question.form_layout_table[data-type="location_nopostal"] .form_label {
        min-width: 150px;
    }

    div.form_container:not(.form_width_narrow) div.form_question.form_layout_table .form_responses,
    div.form_container:not(.form_width_narrow) div.form_question.form_layout_table .form_responses_labels {
        box-sizing: border-box;
        vertical-align: top;
        padding: 4px 5px;
        display: table-cell;
    }

    div.form_container:not(.form_width_narrow) div.form_question.form_layout_table[data-type="likert"] {
        display: block;
    }

    div.form_container:not(.form_width_narrow) div.form_question.form_layout_table[data-type="likert"] .form_label {
        display: inline-block;
    }

    div.form_container:not(.form_width_narrow) div.form_question.form_layout_table[data-type="likert"] .form_responses,
    div.form_container:not(.form_width_narrow) div.form_question.form_layout_table .form_responses_labels {
        width: calc(100% - 150px);
        display: inline-block;
    }

    div.form_container:not(.form_width_narrow) div.form_h1.form_layout_table,
    div.form_container:not(.form_width_narrow) div.form_h1.form_layout_table .form_label,
    div.form_container:not(.form_width_narrow) div.form_h1.form_layout_table .form_responses,
    div.form_container:not(.form_width_narrow) div.form_h2.form_layout_table,
    div.form_container:not(.form_width_narrow) div.form_h2.form_layout_table .form_label,
    div.form_container:not(.form_width_narrow) div.form_h2.form_layout_table .form_responses,
    div.form_container:not(.form_width_narrow) div.form_p.form_layout_table,
    div.form_container:not(.form_width_narrow) div.form_p.form_layout_table .form_label,
    div.form_container:not(.form_width_narrow) div.form_p.form_layout_table .form_responses {
        display: block;
        width: inherit !important;
    }

    div.form_container:not(.form_width_narrow) div.form_header.form_layout_table,
    div.form_container:not(.form_width_narrow) div.form_header.form_layout_table .form_label,
    div.form_container:not(.form_width_narrow) div.form_header.form_layout_table .form_responses {
        padding: 4px 5px;
        display: block;
        width: inherit !important;
    }

    div.form_container:not(.form_width_narrow) div.form_question[data-type="likert"]>fieldset>.form_responses {
        margin-top: 0;
    }

    div.form_container:not(.form_width_narrow) div.form_question[data-type="likert"]>fieldset>.form_responses_labels {
        margin-left: 150px;
    }

    div.form_container:not(.form_width_narrow) div.form_question[data-type="likert"]>fieldset>.form_responses_labels>.form_response_label,
    div.form_question[data-type="likert"]>fieldset>.form_responses>.form_response {
        min-width: 25px;
    }

    div.form_container:not(.form_width_narrow) div.form_question[data-type="likert"]>fieldset>.form_responses_labels,
    div.form_container:not(.form_width_narrow) div.form_question[data-type="likert"]>fieldset>.form_label {
        margin-bottom: 0;
    }
}

@media only screen and (max-width:736px) {
    div.form_question {
        margin: 0;
        width: 100% !important;
        padding: 0 0 .5em !important;
    }
}

.ui-draggable-handle {
    -ms-touch-action: none;
    touch-action: none;
}

.ui-helper-hidden {
    display: none;
}

.ui-helper-hidden-accessible {
    clip: rect(0 0 0 0);
    border: 0;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    position: absolute;
    overflow: hidden;
}

.ui-helper-reset {
    border: 0;
    outline: 0;
    margin: 0;
    padding: 0;
    font-size: 100%;
    line-height: 1.3;
    text-decoration: none;
    list-style: none;
}

.ui-helper-clearfix:before,
.ui-helper-clearfix:after {
    content: "";
    border-collapse: collapse;
    display: table;
}

.ui-helper-clearfix:after {
    clear: both;
}

.ui-helper-zfix {
    opacity: 0;
    -ms-filter: "alpha(opacity=0)";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.ui-front {
    z-index: 100;
}

.ui-state-disabled {
    pointer-events: none;
    cursor: default !important;
}

.ui-icon {
    vertical-align: middle;
    text-indent: -99999px;
    background-repeat: no-repeat;
    margin-top: -.25em;
    display: inline-block;
    position: relative;
    overflow: hidden;
}

.ui-widget-icon-block {
    margin-left: -8px;
    display: block;
    left: 50%;
}

.ui-widget-overlay {
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
}

.ui-resizable {
    position: relative;
}

.ui-resizable-handle {
    -ms-touch-action: none;
    touch-action: none;
    font-size: .1px;
    display: block;
    position: absolute;
}

.ui-resizable-disabled .ui-resizable-handle,
.ui-resizable-autohide .ui-resizable-handle {
    display: none;
}

.ui-resizable-n {
    cursor: n-resize;
    width: 100%;
    height: 7px;
    top: -5px;
    left: 0;
}

.ui-resizable-s {
    cursor: s-resize;
    width: 100%;
    height: 7px;
    bottom: -5px;
    left: 0;
}

.ui-resizable-e {
    cursor: e-resize;
    width: 7px;
    height: 100%;
    top: 0;
    right: -5px;
}

.ui-resizable-w {
    cursor: w-resize;
    width: 7px;
    height: 100%;
    top: 0;
    left: -5px;
}

.ui-resizable-se {
    cursor: se-resize;
    width: 12px;
    height: 12px;
    bottom: 1px;
    right: 1px;
}

.ui-resizable-sw {
    cursor: sw-resize;
    width: 9px;
    height: 9px;
    bottom: -5px;
    left: -5px;
}

.ui-resizable-nw {
    cursor: nw-resize;
    width: 9px;
    height: 9px;
    top: -5px;
    left: -5px;
}

.ui-resizable-ne {
    cursor: ne-resize;
    width: 9px;
    height: 9px;
    top: -5px;
    right: -5px;
}

.ui-selectable {
    -ms-touch-action: none;
    touch-action: none;
}

.ui-selectable-helper {
    z-index: 100;
    border: 1px dotted #000;
    position: absolute;
}

.ui-sortable-handle {
    -ms-touch-action: none;
    touch-action: none;
}

.ui-datepicker {
    width: 17em;
    padding: .2em .2em 0;
    display: none;
}

.ui-datepicker .ui-datepicker-header {
    padding: .2em 0;
    position: relative;
}

.ui-datepicker .ui-datepicker-prev,
.ui-datepicker .ui-datepicker-next {
    width: 1.8em;
    height: 1.8em;
    position: absolute;
    top: 2px;
}

.ui-datepicker .ui-datepicker-prev-hover,
.ui-datepicker .ui-datepicker-next-hover {
    top: 1px;
}

.ui-datepicker .ui-datepicker-prev {
    left: 2px;
}

.ui-datepicker .ui-datepicker-next {
    right: 2px;
}

.ui-datepicker .ui-datepicker-prev-hover {
    left: 1px;
}

.ui-datepicker .ui-datepicker-next-hover {
    right: 1px;
}

.ui-datepicker .ui-datepicker-prev span,
.ui-datepicker .ui-datepicker-next span {
    margin-top: -8px;
    margin-left: -8px;
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
}

.ui-datepicker .ui-datepicker-title {
    text-align: center;
    margin: 0 2.3em;
    line-height: 1.8em;
}

.ui-datepicker .ui-datepicker-title select {
    margin: 1px 0;
    font-size: 1em;
}

.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year {
    width: 45%;
}

.ui-datepicker table {
    border-collapse: collapse;
    width: 100%;
    margin: 0 0 .4em;
    font-size: .9em;
}

.ui-datepicker th {
    text-align: center;
    border: 0;
    padding: .7em .3em;
    font-weight: bold;
}

.ui-datepicker td {
    border: 0;
    padding: 1px;
}

.ui-datepicker td span,
.ui-datepicker td a {
    text-align: right;
    padding: .2em;
    text-decoration: none;
    display: block;
}

.ui-datepicker .ui-datepicker-buttonpane {
    background-image: none;
    border-bottom: 0;
    border-left: 0;
    border-right: 0;
    margin: .7em 0 0;
    padding: 0 .2em;
}

.ui-datepicker .ui-datepicker-buttonpane button {
    float: right;
    cursor: pointer;
    width: auto;
    margin: .5em .2em .4em;
    padding: .2em .6em .3em;
    overflow: visible;
}

.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
    float: left;
}

.ui-datepicker.ui-datepicker-multi {
    width: auto;
}

.ui-datepicker-multi .ui-datepicker-group {
    float: left;
}

.ui-datepicker-multi .ui-datepicker-group table {
    width: 95%;
    margin: 0 auto .4em;
}

.ui-datepicker-multi-2 .ui-datepicker-group {
    width: 50%;
}

.ui-datepicker-multi-3 .ui-datepicker-group {
    width: 33.3%;
}

.ui-datepicker-multi-4 .ui-datepicker-group {
    width: 25%;
}

.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
    border-left-width: 0;
}

.ui-datepicker-multi .ui-datepicker-buttonpane {
    clear: left;
}

.ui-datepicker-row-break {
    clear: both;
    width: 100%;
    font-size: 0;
}

.ui-datepicker-rtl {
    direction: rtl;
}

.ui-datepicker-rtl .ui-datepicker-prev {
    left: auto;
    right: 2px;
}

.ui-datepicker-rtl .ui-datepicker-next {
    left: 2px;
    right: auto;
}

.ui-datepicker-rtl .ui-datepicker-prev:hover {
    left: auto;
    right: 1px;
}

.ui-datepicker-rtl .ui-datepicker-next:hover {
    left: 1px;
    right: auto;
}

.ui-datepicker-rtl .ui-datepicker-buttonpane {
    clear: right;
}

.ui-datepicker-rtl .ui-datepicker-buttonpane button {
    float: left;
}

.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
.ui-datepicker-rtl .ui-datepicker-group {
    float: right;
}

.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
    border-left-width: 1px;
    border-right-width: 0;
}

.ui-datepicker .ui-icon {
    text-indent: -99999px;
    background-repeat: no-repeat;
    display: block;
    top: .3em;
    left: .5em;
    overflow: hidden;
}

legend {
    max-width: 100%;
}

blockquote.hidden,
button.hidden,
div.hidden,
fieldset.hidden,
form.hidden,
iframe.hidden,
li.hidden,
img.hidden,
input.hidden,
option.hidden,
p.hidden,
select.hidden,
span.hidden,
table.hidden,
thead.hidden>tr,
tbody.hidden>tr,
textarea.hidden,
tr.hidden,
ul.hidden {
    display: none !important;
}

.hidden2,
.hidden2 *,
.hidden_dialog_0,
.hidden_dialog_1,
.hidden_dialog_2 {
    visibility: hidden !important;
}

div.fixed {
    position: fixed;
    top: 0;
}

.nowrap td {
    text-overflow: ellipsis;
    overflow: hidden;
}

.nowrap div {
    white-space: nowrap;
}

.dialog div.action {
    clear: both;
}

.dialog span.action {
    margin: 10px 0;
    display: block;
}

.dialog ul.action {
    margin: 15px 0;
    padding: 0;
    list-style: none;
    display: block;
}

.dialog .action li {
    margin: 0;
    padding: 0;
    display: inline;
}

.dialog .action {
    line-height: normal;
    position: relative;
}

.dialog ul.action a,
.dialog button,
.dialog input[type="button"],
.dialog input[type="submit"] {
    background-color: var(--cDFDFDFFF, #dfdfdf);
    color: var(--c000000FF, #000);
    cursor: pointer;
    border: 0;
    margin: 0 10px 0 0;
    padding: 5px 15px;
    font-size: 12px;
    font-weight: normal;
    line-height: 12px;
    text-decoration: none;
    display: inline-block;
    font-family: Arial, Helvetica, sans-serif !important;
}

.dialog ul.action a.default,
.dialog button.default {
    background-color: var(--cC6C6C6FF, #c6c6c6);
    font-weight: bold;
}

.dialog ul.action a:hover,
.dialog button:hover,
.dialog input[type="button"]:hover,
.dialog input[type="submit"]:hover {
    background-color: var(--cF3F3F3FF, #f3f3f3);
}

.dialog ul.action a.default:hover,
.dialog button.default:hover,
.dialog input[type="button"].default:hover,
.dialog input[type="submit"].default:hover {
    background-color: var(--cDADADAFF, #dadada);
}

.dialog ul.action a:focus,
.dialog button:focus,
.dialog input[type="button"]:focus,
.dialog input[type="submit"]:focus,
.dialog ul.action a.default:focus,
.dialog button.default:focus,
.dialog input[type="button"].default:focus,
.dialog input[type="submit"].default:focus {
    background-color: var(--c00669EFF, #00669e);
    color: var(--cFFFFFFFF, #fff);
}

input.expanded,
select.expanded,
textarea.expanded {
    box-sizing: border-box;
    width: 100%;
}

input[type="password"].validate_error,
input[type="text"].validate_error,
input[type="email"].validate_error,
input[type="tel"].validate_error,
input:not([type]).validate_error {
    color: var(--cFF0000FF, red);
}

.searchable_hidden {
    display: none;
}

table.mixed>*>tr,
table.plain>*>tr,
table.table>*>tr,
table.table * tr {
    vertical-align: middle;
}

table.fixed,
table.layout {
    border-collapse: collapse;
    clear: both;
    table-layout: fixed;
}

table.layout {
    width: 100%;
}

table.fixed>*>tr>th,
table.fixed>*>tr>td,
table.layout>*>tr>th,
table.layout>*>tr>td,
table.fixed * tr th,
table.fixed * tr td {
    margin: 0;
    padding: 0;
}

table.fixed>*>tr,
table.layout>*>tr {
    vertical-align: top;
}

table.mixed,
table.plain,
table.table {
    border-collapse: collapse;
    clear: both;
    table-layout: fixed;
    text-align: left;
    width: 100%;
}

table.plain>*>tr>th,
table.plain>*>tr>td {
    padding: 4px 5px;
}

table.plain>*>tr>th,
table.plain * tr th {
    text-align: left;
    font-weight: normal;
}

table.mixed>*>tr>th,
table.mixed>*>tr>td {
    padding: 4px 5px;
}

table.mixed>*>tr>th,
table.mixed * tr th {
    text-align: left;
}

table.table>*>tr>th,
table.table>*>tr>td {
    border-bottom: 1px solid var(--cCCCCCCFF, #ccc);
    text-align: left;
    padding: 4px 5px;
}

table.table>*>tr>th>div:first-child,
table.table>*>tr>td>div:first-child {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}

tr.header>th,
tr.header>td,
.dialog div.header {
    background-color: var(--cCCCCCCFF, #ccc);
    text-align: left;
    vertical-align: bottom;
    border: 0;
    font-weight: bold !important;
}

tr.column>th,
tr.column>td {
    background-color: var(--cECECECFF, #ececec);
    text-align: left;
    vertical-align: bottom;
    font-weight: bold !important;
}

tr.column>td {
    font-weight: normal !important;
}

tr.row_select,
tr.row_hover {
    cursor: pointer;
}

tr.row_select a,
tr.row_hover a {
    outline: 0;
    text-decoration: none;
    color: var(--c000000FF, #000) !important;
}

tr.hover td,
tr.hover th {
    background: var(--cFFFFE8FF, #ffffe8) !important;
}

tr.plain a {
    color: var(--c0000FFFF, #00f) !important;
    text-decoration: underline !important;
}

tr.plain a:active,
tr.plain a:hover {
    color: var(--cFF0000FF, red) !important;
}

.clear {
    clear: both;
}

.progress_div,
.progress_dialog_div {
    background-color: var(--c000000FF, #000);
    opacity: .1;
    filter: progid:DXImageTransform. Microsoft. Alpha(opacity=10);
    z-index: 5001;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
}

.progress_box {
    text-align: center;
    z-index: 5001;
    width: 100px;
    height: 80px;
    margin: -40px 0 0 -50px;
    position: fixed;
    top: 50%;
    left: 50%;
}

.progress_timer {
    color: var(--c00669EFF, #00669e);
    text-align: center;
    margin-top: 50px;
    font-size: 11px;
}

.progress_loader:before,
.progress_loader:after,
.progress_loader {
    border-radius: 50%;
    width: 2.5em;
    height: 2.5em;
    font-size: 4px;
    animation: 1.8s ease-in-out infinite progress_loader;
}

.progress_loader {
    margin: 0 auto;
    animation-delay: -.16s;
    position: relative;
    transform: translateZ(0);
}

.progress_loader:before {
    animation-delay: -.32s;
    left: -3.5em;
}

.progress_loader:after {
    left: 3.5em;
}

.progress_loader:before,
.progress_loader:after {
    content: "";
    position: absolute;
    top: 0;
}

@keyframes progress_loader {

    0%,
    80%,
    100% {
        box-shadow: 0 2.5em 0 -1.3em var(--c00669EFF, #00669e);
    }

    40% {
        box-shadow: 0 2.5em 0 .05em var(--c00669EFF, #00669e);
    }
}

.dialog {
    background-color: var(--cFFFFFFFF, #fff);
    overflow: hidden;
}

.dialog_host .dialog {
    box-shadow: 0 0 5px var(--c00000066, #0006);
    padding: 0;
}

.dialog_flat>.dialog {
    display: none;
}

.dialog .header {
    background: var(--cDADADAFF, #dadada);
    color: var(--c000000FF, #000);
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 8px 10px;
    overflow: hidden;
}

.dialog div.action {
    background: var(--cFFFFFFFF, #fff);
    border-top: 1px solid var(--cEAEAEAFF, #eaeaea);
    margin: 0;
    padding: 10px;
}

body.dialog {
    border: 0;
}

.dialog div.content {
    padding: 8px;
    overflow: hidden auto;
}

.dialog_host {
    z-index: 5000;
    position: fixed;
}

.error,
.success,
.alert {
    border-left: 5px solid var(--c000000FF, #000);
    color: var(--c000000FF, #000);
    padding: 10px 10px 10px 15px;
    display: block;
}

.error {
    background-color: var(--cFFFFCCFF, #ffc);
    border-color: var(--cFFCC66FF, #fc6);
}

.success {
    background-color: var(--cE6EFC2FF, #e6efc2);
    border-color: var(--c529214FF, #529214);
}

.suggest {
    background: var(--cFFFFFFFF, #fff);
    border: 1px solid var(--cCCCCCCFF, #ccc);
    -moz-user-select: none;
    font-size: 11px;
    position: absolute;
    overflow: hidden;
}

.suggest_default {
    background: var(--cECECECFF, #ececec);
    color: var(--c666666FF, #666);
    text-align: left;
    height: 1%;
    padding: 4px 5px;
}

.suggest_item {
    background-color: var(--cFFFFFFFF, #fff);
    color: var(--c000000FF, #000);
    cursor: pointer;
    text-align: left;
    height: 1%;
    padding: 2px 0;
}

.suggest_item b {
    color: var(--c3399FFFF, #39f);
    font-weight: normal;
}

.suggest_item_selected {
    background-color: var(--cEFEFEFFF, #efefef);
}

.suggest_name {
    color: var(--c000000FF, #000);
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 0 2px 0 10px;
    overflow: hidden;
}

.suggest_data {
    color: var(--c666666FF, #666);
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 0 2px 0 10px;
    font-size: 9px;
    overflow: hidden;
}

.suggest_collection_title {
    color: var(--c00669EFF, #00669e);
    padding: 4px;
}

.suggest_table>tbody>tr>td {
    vertical-align: top;
}

.suggest_table b {
    color: var(--c3399FFFF, #39f);
    font-weight: normal;
}

.suggest_color {
    vertical-align: middle;
    width: 7.5px;
    height: 7.5px;
    margin-right: 2.5px;
    display: inline-block;
}

@media print {
    :root * {
        color: #000 !important;
        background-image: none !important;
    }

    :root body {
        background-color: #fff;
        margin: 0;
        color: #000 !important;
    }

    :root .Header {
        padding-bottom: 5rem;
    }

    :root [data-automodal] {
        display: none !important;
    }

    :root img {
        display: none !important;
    }

    :root svg {
        display: none !important;
    }

    :root img.print {
        max-width: 100%;
        display: block;
    }

    :root svg.print {
        max-width: 100%;
        display: block;
    }

    :root h1 {
        break-before: always;
    }

    :root table {
        break-inside: avoid;
    }

    :root img {
        break-inside: avoid;
    }

    :root svg {
        break-inside: avoid;
    }

    :root [data-flexscroll-viewport] {
        grid-template-columns: 1fr;
        gap: 1rem;
        display: grid;
        overflow: visible;
    }

    :root .Header {
        visibility: hidden !important;
        display: none !important;
        overflow: hidden !important;
    }
}

html:has(.menu-open) {
    overflow: hidden;
}

html:has(.menu-open) #main-content {
    pointer-events: none;
    cursor: default;
    -webkit-user-select: none;
    user-select: none;
    position: relative;
}

html:has(.search-open) {
    overflow: hidden;
}

html:has(.search-open) #main-content {
    pointer-events: none;
    cursor: default;
    -webkit-user-select: none;
    user-select: none;
    position: relative;
}

.Header {
    --color: var(--white);
    --height: 3.75rem;
    background: var(--black);
    color: var(--white);
    box-shadow: var(--shadow);
    z-index: 3;
    position: sticky;
    top: 0;
}

.Header .link-underline:after {
    background-color: var(--white);
}

.Header .link-underline:hover {
    color: var(--black);
}

@media (max-width:calc(79.999em - .001px)) {
    .Header .Button {
        width: 100%;
    }
}

@media (min-width:80em) {
    .Header {
        box-shadow: none;
        flex-direction: column;
        display: flex;
    }

    .Header.Header--college .Header__primary .Header__college-title {
        visibility: visible;
        background-color: #0000;
        flex: 1;
        margin-right: auto;
        padding: .5rem 0 .5rem calc(200px + 1rem);
        transition: padding .4s;
        display: block;
    }

    .menu-open :is(.Header.Header--college .Header__primary .Header__college-title) {
        padding-left: calc(132px + 1rem);
        transition: padding .4s;
    }

    [data-sticky] :is(.Header.Header--college .Header__primary .Header__college-title) {
        padding-left: calc(132px + 1rem);
        transition: padding .4s;
    }
}

.Header__primary {
    grid-template-columns: 1fr minmax(0, 3.75rem) minmax(0, 3.75rem);
    align-items: center;
    width: 100%;
    display: grid;
    height: 3rem;
}

@media (min-width:80em) {
    .Header__primary {
        justify-content: flex-end;
        align-items: center;
        gap: var(--gap);
        order: 1;
        width: auto;
        margin-inline-start: 3rem;
        margin-inline-end: 3rem;
        display: flex;
        position: relative;
    }

    .Header__primary:before {
        content: " ";
        background: var(--carnegie-red);
        height: 1px;
        margin-inline-start: auto;
        margin-inline-end: auto;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
    }
}

.Header__logo-wrapper {
    z-index: 1;
    flex: 1;
    place-items: center;
    height: 100%;
    display: grid;
    position: relative;
}

@media (min-width:80em) {
    .Header__logo-wrapper {
        margin-right: auto;
        position: absolute;
        top: 0;
        left: 0;
    }
}

.Header__logo {
    background: var(--carnegie-red);
    width: -moz-fit-content;
    width: fit-content;
    height: 100%;
    padding-inline-start: 1.25rem;
    padding-inline-end: 1.25rem;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    outline-offset: -.35rem !important;
}

.Header__logo>* {
    margin: 0 auto;
}

.Header__logo>*:first-child {
    width: 15rem;
    height: 3.75rem;
    padding-block-start: .5rem;
    padding-block-end: .5rem;
}

.Header__logo>*:nth-child(2) {
    display: none;
}

.Header__logo>*:last-child {
    display: none;
}

@media (min-width:80em) {
    .Header__logo {
        place-items: center;
        width: 200px;
        max-width: calc(376px + 6rem);
        height: 200px;
        padding: 0;
        transition: height .4s .8s, width .4s .4s;
    }

    @media (prefers-reduced-motion) {
        .Header__logo {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    .Header__logo>*:first-child {
        visibility: hidden;
        opacity: 0;
        height: 0;
        padding: 0 1.25rem;
        transition: opacity .4s, visibility 0s 1.2s, height, transform 0s 1.2s, width 0s 1.2s, padding;
    }

    @media (prefers-reduced-motion) {
        .Header__logo>*:first-child {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    .Header__logo>*:last-child {
        visibility: visible;
        opacity: 1;
        width: 161px;
        height: 200px;
        transition: opacity .4s 1.2s, visibility 0s 1.2s, height 0s 1.2s, transform 0s 1.2s, width 0s 1.2s, padding;
        display: block;
    }

    @media (prefers-reduced-motion) {
        .Header__logo>*:last-child {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    .Header--college :is(.Header__logo > *):first-child {
        visibility: hidden;
        display: none;
    }

    .Header--college :is(.Header__logo > *):nth-child(2) {
        visibility: hidden;
        opacity: 0;
        height: 0;
        padding: 0 1.25rem;
        transition: opacity .4s, visibility 0s 1.2s, transform 0s 1.2s, width 0s 1.2s;
        display: block;
    }

    @media (prefers-reduced-motion) {
        .Header--college :is(.Header__logo > *):nth-child(2) {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }
}

@media (min-width:80em) {
    .menu-open .Header__logo {
        width: 320px;
        height: 3rem;
        transition: height .4s .4s, width .4s .8s, padding 0s 1.6s;
    }

    @media (prefers-reduced-motion) {
        .menu-open .Header__logo {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    .menu-open .Header__logo>*:first-child {
        visibility: visible;
        opacity: 1;
        width: 100%;
        height: 3rem;
        padding: .5rem 0;
        transition: opacity .4s 1.2s, visibility 0s 1.2s, height 0s 1.2s, transform 0s 1.2s, width 0s 1.2s, padding 0s 1.2s;
    }

    @media (prefers-reduced-motion) {
        .menu-open .Header__logo>*:first-child {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    .menu-open .Header__logo>*:last-child {
        visibility: hidden;
        opacity: 0;
        height: 0;
        transition: opacity .4s, visibility 0s 1.2s, height 0s 1.2s, transform 0s 1.2s, width 0s 1.2s, padding 0s 1.2s;
    }

    @media (prefers-reduced-motion) {
        .menu-open .Header__logo>*:last-child {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    [data-sticky] .Header__logo {
        width: 320px;
        height: 3rem;
        transition: height .4s .4s, width .4s .8s, padding 0s 1.6s;
    }

    @media (prefers-reduced-motion) {
        [data-sticky] .Header__logo {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    [data-sticky] .Header__logo>*:first-child {
        visibility: visible;
        opacity: 1;
        width: 100%;
        height: 3rem;
        padding: .5rem 0;
        transition: opacity .4s 1.2s, visibility 0s 1.2s, height 0s 1.2s, transform 0s 1.2s, width 0s 1.2s, padding 0s 1.2s;
    }

    @media (prefers-reduced-motion) {
        [data-sticky] .Header__logo>*:first-child {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    [data-sticky] .Header__logo>*:last-child {
        visibility: hidden;
        opacity: 0;
        height: 0;
        transition: opacity .4s, visibility 0s 1.2s, height 0s 1.2s, transform 0s 1.2s, width 0s 1.2s, padding 0s 1.2s;
    }

    @media (prefers-reduced-motion) {
        [data-sticky] .Header__logo>*:last-child {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    .menu-open .Header__logo {
        width: 400px;
    }

    [data-sticky] .Header__logo {
        width: 400px;
    }
}

@media (min-width:85em) {
    .menu-open .Header__logo {
        width: 472px;
    }

    [data-sticky] .Header__logo {
        width: 472px;
    }
}

@media (max-width:calc(79.999em - .001px)) {
    .Header--college .Header__logo {
        place-items: center;
        display: grid;
        width: 132px !important;
    }

    .Header--college .Header__logo>*:first-child {
        visibility: hidden;
        display: none;
    }

    .Header--college .Header__logo>*:nth-child(2) {
        visibility: visible;
        opacity: 1;
        width: 100%;
        height: 3rem;
        transition: visibility 0s 1.2s, height 0s 1.2s, transform, width 0s 1.2s;
        display: block;
        transform: none;
    }

    @media (prefers-reduced-motion) {
        .Header--college .Header__logo>*:nth-child(2) {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }
}

@media (min-width:80em) {
    .Header--college .Header__logo {
        transition: height .4s, width;
    }

    .menu-open :is(.Header--college .Header__logo) {
        width: 132px !important;
    }

    .menu-open :is(.Header--college .Header__logo)>*:nth-child(2) {
        visibility: visible;
        opacity: 1;
        width: 100%;
        height: 3rem;
        transition: opacity .4s 1.2s, visibility 0s 1.2s;
        transform: none;
    }

    @media (prefers-reduced-motion) {
        .menu-open :is(.Header--college .Header__logo)>*:nth-child(2) {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    .menu-open :is(.Header--college .Header__logo)>*:last-child {
        visibility: hidden;
        opacity: 0;
        height: 0;
        transition: opacity .4s, visibility 0s 1.2s;
    }

    @media (prefers-reduced-motion) {
        .menu-open :is(.Header--college .Header__logo)>*:last-child {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    [data-sticky] :is(.Header--college .Header__logo) {
        width: 132px !important;
    }

    [data-sticky] :is(.Header--college .Header__logo)>*:nth-child(2) {
        visibility: visible;
        opacity: 1;
        width: 100%;
        height: 3rem;
        transition: opacity .4s 1.2s, visibility 0s 1.2s;
        transform: none;
    }

    @media (prefers-reduced-motion) {
        [data-sticky] :is(.Header--college .Header__logo)>*:nth-child(2) {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    [data-sticky] :is(.Header--college .Header__logo)>*:last-child {
        visibility: hidden;
        opacity: 0;
        height: 0;
        transition: opacity .4s, visibility 0s 1.2s;
    }

    @media (prefers-reduced-motion) {
        [data-sticky] :is(.Header--college .Header__logo)>*:last-child {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }
}

.Header__college-logo {
    background: var(--carnegie-red);
    outline-offset: -.35rem;
    width: -moz-fit-content;
    width: fit-content;
    height: 100%;
    padding-inline-start: 1.25rem;
    padding-inline-end: 1.25rem;
    display: grid;
}

.Header__college-logo svg {
    width: 100%;
    max-width: 376px;
    height: 3rem;
}

@media (min-width:80em) {
    .Header__college-logo {
        flex: 1;
        place-items: center;
        width: 100%;
        max-width: calc(376px + 6rem);
        margin-right: auto;
        padding-inline-start: 3rem;
        padding-inline-end: 3rem;
    }
}

.Header__college-title {
    background-color: var(--gray-dark);
    width: 100%;
    padding: 1.25rem;
    font-weight: 400;
    line-height: normal;
}

.Header__primary .Header__college-title {
    visibility: hidden;
    display: none;
}

.Header__college {
    width: 100%;
    position: relative;
}

@media (min-width:80em) {
    .Header__college {
        visibility: hidden;
        display: none;
    }
}

.Header__search-toggle,
.Header__menu-toggle {
    background: none;
    border: 0;
    padding: 0;
    outline-offset: -.25rem !important;
}

:is(.Header__search-toggle, .Header__menu-toggle):before {
    content: "";
    transition: background var(--transition), transform var(--transition);
    background: var(--white);
    width: 3.75rem;
    height: 3.75rem;
    display: block;
    -webkit-mask: none center / 2rem no-repeat;
    mask: none center / 2rem no-repeat;
}

:is(.Header__search-toggle, .Header__menu-toggle)[aria-expanded="true"]:before {
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg") center / 2rem no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg") center / 2rem no-repeat;
}

@media (min-width:80em) {
    :is(.Header__search-toggle, .Header__menu-toggle):before {
        width: 3rem;
        height: 3rem;
        -webkit-mask: none center / 1.5rem no-repeat;
        mask: none center / 1.5rem no-repeat;
    }

    :is(.Header__search-toggle, .Header__menu-toggle)[aria-expanded="true"]:before {
        -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg") center / 1.125rem no-repeat;
        mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg") center / 1.125rem no-repeat;
    }

    :is(.Header__search-toggle, .Header__menu-toggle):hover:before {
        transform: scale(1.2);
    }
}

.Header__search-toggle:before {
    -webkit-mask-image: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/search.svg");
    mask-image: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/search.svg");
}

@media (min-width:80em) {
    .Header__search-toggle {
        background: var(--carnegie-red);
        order: 3;
        position: relative;
    }

    .Header__search-toggle[aria-expanded="true"]:after {
        opacity: 1;
        top: 3.75rem;
    }
}

.Header__menu-toggle {
    order: 1;
}

.Header__menu-toggle:before {
    -webkit-mask-image: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/menu.svg");
    mask-image: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/menu.svg");
}

@media (min-width:80em) {
    .Header__menu-toggle {
        visibility: hidden;
        display: none;
    }
}

.Header__search {
    --color: var(--black);
    padding: var(--gap);
    height: calc(100dvh - var(--height));
    transition: opacity var(--transition), visibility var(--transition);
    background: var(--white);
    color: var(--black);
    z-index: -1;
    opacity: 0;
    visibility: hidden;
    width: 100%;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    overflow: hidden;
    transform: translateY(100%);
}

[aria-expanded="true"]+.Header__search {
    visibility: visible;
    opacity: 1;
    transition: opacity var(--transition), visibility var(--transition);
}

@media (min-width:80em) {
    .Header__search {
        left: unset;
        box-shadow: var(--shadow);
        width: 37.5rem;
        height: auto;
    }

    .Header--college .Header__search {
        margin-right: 3rem;
    }
}

.Header__form-wrapper {
    margin-bottom: var(--gap-sm);
    flex-direction: column;
    gap: 1rem;
    display: flex;
}

.Header__form {
    flex: 1;
    max-width: 520px;
    position: relative;
}

.Header__input {
    border: .0625rem solid var(--black);
    background: none;
    width: 100%;
    height: 2.5rem;
    padding-inline-start: 1.5rem;
    padding-inline-end: 4rem;
    display: block;
    position: relative;
}

.Header__submit {
    background: var(--carnegie-red);
    border: 0;
    padding: 0;
    position: absolute;
    top: 0;
    right: 0;
}

.Header__submit:before {
    content: "";
    background: var(--white);
    width: 2.5rem;
    height: 2.5rem;
    display: block;
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/search.svg") center / 1.5rem no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/search.svg") center / 1.5rem no-repeat;
}

.Header__heading {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    display: block;
}

@media (max-width:calc(79.999em - .001px)) {
    .Header__heading {
        visibility: hidden;
        display: none;
    }
}

.Header__subheading {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
}

.Header__frequent-wrapper {
    gap: var(--gap-sm);
    flex-direction: column;
    display: flex;
}

.Header__frequent {
    gap: var(--gap-sm);
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
}

.Header__frequent a.link-underline {
    align-items: center;
    gap: 1rem;
    display: flex;
}

.Header__frequent a.link-underline:before {
    content: " ";
    background: var(--carnegie-red);
    width: 10px;
    height: 10px;
}

@media (min-width:80em) {
    .Header__frequent {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

.Header__menu {
    top: calc(var(--height) - 1px);
    height: calc(100dvh - calc(var(--height) - 1px));
    place-content: space-between;
    gap: var(--gap);
    padding: 0 1.5rem var(--panel);
    background: var(--black);
    color: var(--white);
    overscroll-behavior: contain;
    display: grid;
    position: absolute;
    left: 0;
    right: 0;
    overflow: auto;
}

@media (max-width:calc(79.999em - .001px)) {
    .Header__menu {
        opacity: 0;
        visibility: hidden;
    }
}

@media (min-width:80em) {
    .Header__menu {
        display: contents;
        position: fixed;
        top: 7.5rem;
    }
}

@media (max-width:calc(79.999em - .001px)) {
    [aria-expanded="true"]+.Header__menu {
        transition: transform var(--transition), opacity var(--transition), visibility var(--transition);
        opacity: 1;
        visibility: visible;
        transform: none;
    }
}

.Header__nav {
    margin: 0;
    padding: 0;
    list-style: none;
}

@media (max-width:79.999em) {
    .Header__nav {
        margin-block-start: 1rem;
        margin-block-end: 1rem;
    }
}

@media (min-width:80em) {
    .Header__nav {
        gap: 1.5rem;
        display: flex;
    }
}

.Header__nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.Header__nav ul li {
    place-items: flex-end;
    display: grid;
}

.Header__mega-toggle {
    letter-spacing: -.25px;
    border: 0;
    border-bottom: 1px solid var(--white-20);
    background: none;
    justify-content: space-between;
    align-items: center;
    gap: .5rem;
    width: 100%;
    padding: 1rem 0;
    font-size: 1.125rem;
    font-weight: 600;
    display: flex;
    position: relative;
}

.Header__mega-toggle:after {
    content: "";
    transition: transform var(--transition), background var(--transition);
    background: var(--white);
    flex-shrink: 0;
    width: .8125rem;
    height: .5625rem;
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg") center / contain no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg") center / contain no-repeat;
}

.Header__mega-toggle[aria-expanded="true"]:after {
    transform: rotate(180deg);
}

@media (min-width:80em) {
    .Header__mega-toggle {
        color: inherit;
        border: none;
        padding: 0;
        font-size: .875rem;
        text-decoration: none;
    }

    .Header__mega-toggle span {
        position: relative;
    }

    .Header__mega-toggle span:after {
        content: " ";
        transition: background var(--transition), color var(--transition);
        background: linear-gradient(var(--white), var(--white)) 0 75% / 0 .0625rem no-repeat;
        width: 100%;
        height: .0625rem;
        position: absolute;
        bottom: 0;
        left: 0;
    }

    .Header__mega-toggle[aria-expanded="true"] span:after {
        background-size: 100% .0625rem;
    }

    .Header__mega-toggle:hover span:after {
        background-size: 100% .0625rem;
    }

    .Header__mega-toggle:after {
        background: var(--white);
    }
}

@media (max-width:calc(79.999em - .001px)) {
    .Header__mega {
        transition: grid-template-rows var(--transition), visibility var(--transition);
        overflow-clip-margin: .5rem;
        visibility: hidden;
        grid-template-rows: minmax(0, 0fr);
        grid-template-columns: 100%;
        display: grid;
        overflow: clip;
    }

    [aria-expanded="true"]+.Header__mega {
        visibility: visible;
        grid-template-rows: minmax(0, 1fr);
    }

    .Header__menu-toggle[aria-expanded="false"]+.Header__menu .Header__mega {
        visibility: hidden;
    }
}

@media (min-width:80em) {
    .Header__mega {
        padding: var(--gap);
        transition: background var(--transition) .4s, visibility var(--transition) .4s;
        visibility: hidden;
        z-index: -1;
        background: none;
        margin-inline-start: -3rem;
        margin-inline-end: -3rem;
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        transform: translateY(100%);
    }

    [aria-expanded="true"]+.Header__mega {
        background: var(--black);
        visibility: visible;
        transition: background var(--transition) .4s, visibility var(--transition) .4s;
    }

    [aria-expanded="true"]+.Header__mega .Header__group {
        opacity: 1;
        transition: opacity .4s .8s, transform .4s .8s;
        transform: none;
    }

    @media (prefers-reduced-motion) {
        [aria-expanded="true"]+.Header__mega .Header__group {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    [aria-expanded="true"]+.Header__mega .Header__cta {
        opacity: 1;
        transition: opacity .4s .8s, transform .4s .8s;
        transform: none;
    }

    @media (prefers-reduced-motion) {
        [aria-expanded="true"]+.Header__mega .Header__cta {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    @media (prefers-reduced-motion) {
        .Header__mega {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }
}

.Header__mega .Buttons {
    justify-content: center;
    margin-block-start: 2rem;
    margin-block-end: 2rem;
}

@media (min-width:80em) {
    .Header__mega .Buttons {
        margin-block-start: 3rem;
        margin-block-end: 0;
    }
}

@media (min-width:80em) {
    .menu-open .Header__mega .Header__group {
        transition: opacity .4s .4s, transform .4s .4s;
        transform: none;
    }

    @media (prefers-reduced-motion) {
        .menu-open .Header__mega .Header__group {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }

    .menu-open .Header__mega .Header__cta {
        transition: opacity .4s .4s, transform .4s .4s;
        transform: none;
    }

    @media (prefers-reduced-motion) {
        .menu-open .Header__mega .Header__cta {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }
}

@media (max-width:79.999em) {
    .Header__collapse a:after {
        opacity: 1;
        transform: none;
    }
}

.Header__title {
    color: var(--black);
    font: var(--h5);
    margin-block-start: 2rem;
    margin-block-end: 2rem;
    transition: background var(--transition), color var(--transition) !important;
    font-weight: bold !important;
}

@media (min-width:80em) {
    .Header__title {
        margin-block: 0 var(--gap);
        align-items: center;
        font: var(--h2) !important;
        padding-bottom: .125rem !important;
        display: inline-flex !important;
    }

    .Header__title:after {
        margin-block-start: -1rem;
        margin-block-end: -1rem;
    }
}

.Header__grid {
    grid-template-columns: 100%;
    gap: 1rem;
    display: grid;
}

.Header__grid ul {
    column-count: 2;
    grid-template-columns: 100%;
    margin-block-start: 1rem;
    margin-block-end: 1rem;
    display: grid;
}

.Header__grid ul li a {
    color: inherit;
    border-bottom: 1px solid var(--white-20);
    width: 100%;
    padding-block-start: .875rem;
    padding-block-end: .875rem;
    text-decoration: none;
    display: block;
    position: relative;
}

.Header__grid ul li a:before {
    content: " ";
    background: var(--white);
    transition: width var(--transition);
    width: 0%;
    height: 1px;
    position: absolute;
    bottom: 0;
    left: 0;
}

.Header__grid ul li a:hover:before {
    width: 100%;
}

@media (min-width:80em) {
    .Header__grid {
        gap: var(--gap);
    }

    .Header__grid ul {
        margin-top: 2rem;
    }

    .Header__grid:has(.Header__cta) {
        grid-template-columns: 2fr 3fr;
    }
}

@media (max-width:79.999em) {
    .Header__group ul {
        padding-inline-start: 1rem;
        padding-inline-end: 0;
    }
}

@media (min-width:80em) {
    .Header__group {
        opacity: 0;
        transition: opacity .4s ease-in-out, transform .4s ease-in-out;
        transform: translateX(-10%);
    }

    .Header__group ul {
        gap: 0 var(--gap);
        grid-template-columns: 1fr 1fr;
        display: grid;
    }

    @media (prefers-reduced-motion) {
        .Header__group {
            transition-duration: 0s;
            transition-delay: 0s;
        }
    }
}

.Header__cta {
    background: var(--white);
    color: var(--black);
    opacity: 0;
    transition: opacity .4s ease-in-out, transform .4s ease-in-out;
    display: flex;
    position: relative;
    transform: translateX(10%);
}

.Header__cta:has(.link-cover:hover) .Header__cta-image img {
    transform: scale(1.1);
}

.Header__cta:has(.link-cover:hover) .link-underline-swipe {
    background-size: 100% 1px;
}

.Header__cta:has(.link-cover:focus-visible) {
    outline-offset: .25rem;
    outline: .25rem dashed;
    outline-color: var(--color, var(--black));
}

.Header__cta:has(.link-cover:focus-visible) .link-cover {
    outline: none;
}

@media (max-width:79.999em) {
    .Header__cta {
        opacity: 1;
        margin-inline-start: 1rem;
        margin-inline-end: 0;
        margin-bottom: 1rem;
        transform: none;
    }
}

@media (prefers-reduced-motion) {
    .Header__cta {
        transition-duration: 0s;
        transition-delay: 0s;
    }
}

.Header__cta-image {
    max-width: 344px;
    display: block;
    overflow: hidden;
}

.Header__cta-image img {
    object-fit: cover;
    height: 100%;
    transition: transform 3s;
}

@media (prefers-reduced-motion) {
    .Header__cta-image img {
        transition-duration: 0s;
        transition-delay: 0s;
    }
}

@media (max-width:47.999em) {
    .Header__cta-image {
        visibility: hidden;
        display: none;
    }
}

.Header__cta-main {
    --accent: var(--black);
    padding: var(--gap);
    flex-direction: column;
    justify-content: center;
    display: flex;
}

.Header__cta-title {
    align-items: center;
    gap: 1rem;
    display: flex;
}

.Header__cta-title .link-cover {
    align-items: center;
    gap: 1rem;
    display: flex;
}

.Header__cta-title .link-underline-swipe {
    padding-bottom: 0;
}

.Header__utility {
    --accent: var(--white);
    --background: var(--black);
    display: none;
}

@media (min-width:80em) {
    .Header__utility {
        visibility: visible;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        height: 4rem;
        padding-inline-start: 3rem;
        padding-inline-end: 3rem;
        display: flex;
    }
}

.Header__utility--mobile {
    flex-direction: column;
    gap: 2rem;
    display: flex;
}

@media (min-width:80em) {
    .Header__utility--mobile {
        visibility: hidden;
        display: none;
    }
}

.Header__actions {
    grid-template-columns: auto auto;
    gap: .75rem;
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
}

@media (max-width:calc(79.999em - .001px)) {
    .Header__actions a {
        color: var(--white);
    }
}

@media (min-width:80em) {
    .Header__actions {
        gap: 1.5rem;
        padding-left: 1.5rem;
    }
}

.Header__audience {
    align-items: center;
    gap: .75rem;
    margin: 0 auto;
    padding: 0;
    font-size: .75rem;
    font-weight: 600;
    list-style: none;
    display: flex;
    position: relative;
    top: .25em;
}

.Header__audience a {
    line-height: 1;
    display: block;
}

.Header__audience li {
    text-align: center;
}

.Header__audience>*+* {
    align-items: center;
    height: 100%;
    display: flex;
    position: relative;
}

.Header__audience>*+*:before {
    content: " ";
    border-left: 1px solid var(--white-20);
    width: 1px;
    position: absolute;
    top: 0;
    bottom: 0;
    left: -.375rem;
}

@media (min-width:80em) {
    .Header__audience>*+*:before {
        height: 100%;
    }
}

@media (min-width:80em) {
    .Header__audience {
        gap: 1.5rem;
        margin: 0;
        font-size: 1rem;
        font-weight: 400;
    }

    .Header__audience>*+*:before {
        left: -.75rem;
    }
}

.Footer {
    width: 100%;
}

.Footer__main {
    gap: var(--gap);
    padding-inline: var(--wrap);
    padding-bottom: calc(var(--panel) * 2);
    background: var(--gray-light);
    flex-direction: column;
    display: flex;
    position: relative;
}

@media (min-width:64em) {
    .Footer__main {
        gap: calc(var(--gap) * 2);
        padding-inline-start: 3rem;
        padding-inline-end: 3rem;
        flex-direction: row;
        padding-bottom: 0;
    }
}

.Footer__brand {
    gap: var(--gap-sm);
    flex-direction: column;
    order: 1;
    display: flex;
}

.Footer__brand a {
    font-weight: 400;
}

@media (min-width:64em) {
    .Footer__brand {
        order: unset;
        max-width: 12.5rem;
    }
}

.Footer__brand-main {
    gap: var(--gap-sm);
    font-size: .875rem;
    display: flex;
}

.Footer__brand-main a {
    border-bottom: none;
}

@media (min-width:64em) {
    .Footer__brand-main {
        flex-direction: column;
    }
}

.Footer__logo {
    background: var(--carnegie-red);
    color: var(--white);
    outline-color: var(--white);
    outline-offset: -.35rem;
    place-items: center;
    width: 180px;
    height: 180px;
    padding-inline-start: 1.25rem;
    padding-inline-end: 1.25rem;
    display: grid;
}

@media (min-width:64em) {
    .Footer__logo {
        width: 200px;
        height: 200px;
    }
}

.Footer__social {
    margin: 0 auto var(--gap-sm);
    flex-wrap: wrap;
    gap: 1.5rem;
    padding: 0;
    list-style-type: none;
    display: flex;
}

.Footer__social li a {
    transition: var(--transition);
    border-bottom: none;
    place-items: center;
    width: 1.5rem;
    height: 1.5rem;
    display: grid;
}

.Footer__social li a svg {
    width: 1.5rem;
}

.Footer__social li a:hover {
    background: none;
    transform: scale(1.2);
}

@media (min-width:64em) {
    .Footer__social {
        margin: 0 0 var(--gap-sm);
        grid-template-columns: repeat(4, 1fr);
        place-items: center;
        display: grid;
    }
}

.Footer__nav {
    gap: var(--gap);
    padding-block: var(--gap-sm);
    flex: 1;
    display: grid;
}

.Footer__nav>div {
    flex-direction: column;
    flex: 1;
    gap: 1rem;
    display: flex;
}

.Footer__nav>div>p {
    border-bottom: 3px solid var(--carnegie-red);
    margin: 0;
    padding-block-start: 1.375rem;
    padding-block-end: .875rem;
    font-weight: 700;
}

.Footer__nav ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
}

.Footer__nav ul li a {
    color: inherit;
    transition: background-position var(--transition);
    background: linear-gradient(-90deg, #0000 50%, currentColor 50%) 100% calc(100% + 1px) / 200% .0625rem no-repeat;
    width: 100%;
    font-size: .875rem;
    font-weight: 400;
    text-decoration: none;
    display: block;
    position: relative;
    border-bottom: 1px solid #6d6e7166 !important;
    padding-block-start: .875rem !important;
    padding-block-end: .875rem !important;
}

.Footer__nav ul li a:hover {
    background-position-x: 0;
}

@media (min-width:64em) {
    .Footer__nav {
        grid-template-columns: 1fr 1fr;
    }
}

@media (min-width:80em) {
    .Footer__nav {
        grid-template-columns: 1fr 1fr 1fr 1fr;
    }
}

.Footer__back-to-top {
    bottom: 0;
    right: 0;
    width: -moz-fit-content !important;
    width: fit-content !important;
    position: absolute !important;
}

.Footer__back-to-top:after {
    transform: rotate(-90deg) !important;
}

@media (min-width:64em) {
    .Footer__back-to-top {
        margin-top: 1rem;
        margin-left: auto;
        position: relative !important;
    }
}

.Footer__legal {
    padding: 1.5rem var(--wrap);
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    font-size: .875rem;
    display: flex;
}

.Footer__legal p {
    margin: 0;
}

.Footer__legal ul {
    gap: var(--gap-sm);
    flex-wrap: wrap;
    margin: 0;
    padding: 0;
    list-style-type: none;
    display: flex;
}

.Footer__legal ul a {
    font-weight: 400;
}

@media (min-width:64em) {
    .Footer__legal {
        justify-content: flex-start;
        gap: var(--gap-sm);
        padding-inline-start: 3rem;
        padding-inline-end: 3rem;
        font-weight: 600;
    }

    .Footer__legal a {
        font-weight: 600;
    }
}

.Accordion {
    --background: var(--white);
    --color: var(--black);
    color: var(--black);
    box-shadow: 0px 10px 10px 0px var(--black-10);
    grid-template-columns: 100%;
    display: grid;
}

.Accordion__item {
    background: var(--white);
}

.Accordion__heading {
    font: var(--h5);
    margin: 0;
}

.Accordion__toggle {
    border: 0;
    border-bottom: 2px var(--black-10) solid;
    outline-offset: -.5rem;
    transition: background var(--transition);
    background: none;
    gap: 1rem;
    width: 100%;
    padding: 1rem 1.5rem;
    display: flex;
}

.Accordion__toggle:before {
    content: "";
    background: var(--black);
    transition: transform var(--transition);
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    display: block;
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg") center / 1rem no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg") center / 1rem no-repeat;
}

.Accordion__toggle:hover {
    background: var(--gray-light);
}

.Accordion__toggle[aria-expanded="true"]:before {
    transform: rotate(180deg);
}

.Accordion__collapse {
    transition: grid-template-rows var(--transition), visibility var(--transition);
    overflow-clip-margin: .5rem;
    visibility: hidden;
    grid-template-rows: minmax(0, 0fr);
    grid-template-columns: 100%;
    display: grid;
    overflow: clip;
}

.Accordion__heading:has(> .Accordion__toggle[aria-expanded="true"])+.Accordion__collapse {
    visibility: visible;
    grid-template-rows: minmax(0, 1fr);
}

.Accordion__content {
    border-bottom: 2px var(--black-10) solid;
    padding: 2rem 1.5rem;
}

.Accordion__content .Buttons {
    margin-top: var(--gap-sm);
}

.Accordion--minimal {
    box-shadow: none;
}

.Accordion--minimal .Accordion__heading {
    font: inherit;
}

.Accordion--minimal .Accordion__toggle {
    transition: text-shadow var(--transition);
    border-bottom: 0;
    align-items: center;
    gap: .35em;
    padding: 0;
}

.Accordion--minimal .Accordion__toggle:before {
    content: "";
    background: var(--black);
    transition: transform var(--transition);
    flex-shrink: 0;
    width: 10px;
    height: 8px;
    display: block;
    transform: rotate(-90deg);
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg") center / .8125rem no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg") center / .8125rem no-repeat;
}

.Accordion--minimal .Accordion__toggle:hover {
    text-shadow: .5px 0;
    background: none;
}

.Accordion--minimal .Accordion__toggle[aria-expanded="true"]:before {
    transform: rotate(0);
}

.Accordion--minimal .Accordion__content {
    border-bottom: 0;
    padding: 1rem 0;
}

.Alert {
    z-index: 3;
    padding-block-start: 1rem;
    padding-block-end: 1rem;
    padding-inline-start: 1rem;
    padding-inline-end: 1rem;
    position: relative;
}

.Alert .Buttons {
    flex-shrink: 0;
    margin: 0;
    padding: 0;
}

@media (min-width:48em) {
    .Alert .Buttons {
        margin-left: auto;
    }
}

@media (min-width:48em) {
    .Alert {
        padding: 1.5rem var(--gap-sm);
        justify-content: flex-start;
        align-items: center;
        display: flex;
    }
}

.Alert--primary {
    background: var(--carnegie-red) !important;
}

.Alert--alt {
    background: var(--gray-light);
    color: var(--black);
}

.Alert--alt .Alert__close:before {
    background-color: var(--black);
}

.Alert--alt .Alert__close:after {
    background-color: var(--black);
}

@media (min-width:48em) {
    .Alert--alt {
        padding-right: calc(var(--gap-sm) * 2);
    }

    .Alert--alt:has(.Alert__close) {
        padding-right: calc((var(--gap-sm) * 2) + 22px);
    }
}

.Alert__heading {
    margin: 0;
    padding-inline-start: 0;
    padding-inline-end: 5rem;
    font-weight: 700;
}

@media (min-width:48em) {
    .Alert__heading {
        padding-inline-start: 0;
        padding-inline-end: 0;
    }
}

.Alert--primary .Alert__heading {
    font: var(--h6);
}

.Alert__warning {
    align-items: center;
    gap: .5rem;
    display: flex;
}

.Alert__warning:before {
    content: "";
    background: currentColor;
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    -webkit-mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/warning.svg);
    mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/warning.svg);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

.Alert__close {
    transition: transform var(--transition);
    background: none;
    border: 0;
    justify-content: center;
    align-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    display: flex;
    position: absolute;
    top: .75rem;
    right: 1rem;
}

.Alert__close:hover {
    transform: scale(1.2);
}

.Alert__close:before {
    content: "";
    background: currentColor;
    width: 20px;
    height: 20px;
    display: block;
}

@media (min-width:64em) {
    .Alert__close {
        top: unset;
        right: calc(var(--gap-sm) - .5rem);
    }
}

.Alert__close:before {
    color: var(--white);
    -webkit-mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg);
    mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg);
}

.Alert__content {
    height: var(--height, auto);
    transition: height var(--transition), visibility var(--transition);
    flex-direction: column;
    gap: 1rem;
    width: 100%;
    display: flex;
}

@media (min-width:64em) {
    .Alert__content {
        justify-content: flex-start;
        align-items: center;
        gap: var(--gap-sm);
        flex-direction: row;
    }
}

.Alert__text {
    margin: 0;
}

:root:has(.Automodal) {
    overflow: hidden;
}

.Automodal {
    transition: opacity var(--transition);
    opacity: 0;
    background: none;
    border: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.Automodal::backdrop {
    transition: opacity var(--transition);
    background: var(--black-90);
    opacity: 0;
}

.Automodal--active {
    opacity: 1;
}

.Automodal--active::backdrop {
    opacity: 1;
}

.Automodal__close {
    color: var(--white);
    z-index: 1;
    outline-color: var(--white);
    transition: var(--transition);
    background: none;
    border: 0;
    padding: 0;
    position: absolute;
    top: 1rem;
    right: 1rem;
}

.Automodal__close:before {
    content: "";
    background: var(--white);
    width: 2rem;
    height: 2rem;
    display: block;
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg") center / 1rem no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg") center / 1rem no-repeat;
}

.Automodal__close:hover {
    transform: scale(1.2);
}

.Automodal__viewport {
    pointer-events: none;
    width: 100%;
    height: 100%;
    display: grid;
}

.Automodal__item {
    padding: var(--panel) var(--wrap);
    grid-area: 1 / 1;
    place-items: center;
    display: grid;
    overflow: auto;
}

.Automodal__content {
    pointer-events: auto;
    width: 100%;
}

.Breadcrumbs {
    padding: 1rem var(--wrap);
    background: var(--gray-light);
}

.Breadcrumbs a {
    transition: box-shadow var(--transition);
    background: none;
    border-color: #0000;
    padding: 0;
    box-shadow: 0 .0625rem;
}

.Breadcrumbs a:hover {
    box-shadow: 0 .125rem;
}

.Breadcrumbs a[aria-current] {
    box-shadow: none;
    font-weight: 600;
}

.Breadcrumbs a[aria-current]:hover {
    color: inherit;
    background-color: #0000;
}

.ContentSidebar__header .Breadcrumbs {
    background: none;
    padding: .5rem 0;
}

.ContentSidebar__header .Breadcrumbs a {
    color: var(--black) !important;
}

.Hero .Breadcrumbs {
    background: none;
    padding: .5rem 0;
}

.Hero .Breadcrumbs a {
    color: var(--black) !important;
}

.Button,
.FormConnector-form-button,
.form_button_submit {
    --theme: var(--color, var(--black));
    border: 1px solid var(--theme);
    transition: background var(--transition), color var(--transition);
    color: inherit;
    font: var(--text-button);
    letter-spacing: -.14px;
    text-align: center;
    z-index: 1;
    background: none;
    width: -moz-fit-content;
    width: fit-content;
    padding: .75rem 1.25rem;
    display: inline-block;
    position: relative;
    overflow: clip;
}

:is(.Button, .FormConnector-form-button, .form_button_submit):before {
    content: "";
    border-radius: inherit;
    background: var(--theme);
    transition: transform var(--transition);
    z-index: -1;
    position: absolute;
    top: -.125rem;
    bottom: -.125rem;
    left: -.125rem;
    right: -.125rem;
    transform: translateY(100%);
}

@media (max-width:calc(63.999em - .001px)) {
    :is(.Button, .FormConnector-form-button, .form_button_submit) {
        width: 100%;
    }
}

:is(.Button, .FormConnector-form-button, .form_button_submit):hover {
    color: var(--background, var(--white));
}

:is(.Button, .FormConnector-form-button, .form_button_submit):hover:before {
    transform: none;
}

.Buttons--alt .Button,
.Button--alt {
    --theme: var(--accent, var(--black));
    padding: .75rem 1.25rem;
    border: 1px solid var(--carnegie-red);
    transition: background var(--transition), color var(--transition);
    color: inherit;
    font: var(--text-button);
    letter-spacing: -.14px;
    text-align: center;
    background: none;
    align-items: center;
    width: -moz-fit-content;
    width: fit-content;
    min-height: 45px;
    padding-left: calc(43px + 1.25rem);
    display: inline-flex;
    position: relative;
    overflow: clip;
}

:is(.Buttons--alt .Button, .Button--alt):hover {
    color: var(--background, var(--white));
    background: none;
}

:is(.Buttons--alt .Button, .Button--alt):before {
    content: "";
    top: 0;
    left: 0;
    bottom: unset;
    right: unset;
    transform: unset;
    background: var(--carnegie-red);
    transition: width var(--transition);
    z-index: -1;
    width: 43px;
    height: 100%;
    position: absolute;
}

:is(.Buttons--alt .Button, .Button--alt):after {
    content: "";
    background-color: var(--white);
    width: 43px;
    height: 100%;
    display: inline-flex;
    position: absolute;
    top: 0;
    left: 0;
    transform: rotate(-45deg);
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg") center / 80% no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg") center / 80% no-repeat;
}

:is(.Buttons--alt .Button, .Button--alt):hover {
    color: var(--white);
}

:is(.Buttons--alt .Button, .Button--alt):hover:before {
    width: 100%;
}

@media (max-width:calc(63.999em - .001px)) {
    :is(.Buttons--alt .Button, .Button--alt) {
        width: 100%;
    }
}

.Buttons {
    align-items: center;
    gap: var(--gap-sm);
    margin-block: var(--gap);
    flex-wrap: wrap;
    display: flex;
}

@media (max-width:calc(63.999em - .001px)) {
    .Buttons {
        width: 100%;
    }
}

.Buttons--stack {
    flex-direction: column;
    margin-inline-start: auto;
    margin-inline-end: auto;
}

.CheckList {
    gap: var(--gap);
    grid-template-columns: 100%;
    display: grid;
}

@media (min-width:64em) {
    .CheckList {
        gap: var(--gutter);
    }
}

.CheckList__header {
    grid-template-columns: 100%;
    gap: 1rem;
    display: grid;
}

@media (min-width:64em) {
    .CheckList__header {
        gap: var(--gutter);
        grid-template-columns: auto calc(60% - var(--gutter));
    }
}

.CheckList__grid {
    position: relative;
}

@media (min-width:64em) {
    .CheckList__grid {
        flex-direction: column;
        justify-content: center;
        display: flex;
    }
}

.CheckList__heading {
    margin: 0;
    position: relative;
}

@media (min-width:64em) {
    .CheckList__heading {
        width: calc(40% - var(--gutter));
        border-bottom: 0;
        margin-right: auto;
        padding-bottom: 1.5rem;
    }

    .CheckList__heading:before {
        content: " ";
        border-left: 1px dashed var(--white-40);
        height: 100%;
        position: absolute;
        bottom: -30%;
        left: .62rem;
    }

    .CheckList__heading:last-of-type:before {
        display: none;
    }

    .CheckList__heading .close-toggle {
        display: none;
    }
}

.CheckList__toggle {
    --text: var(--white);
    border: 0;
    border-bottom: 1px solid var(--white-40);
    text-align: left;
    transition: var(--transition);
    background: none;
    justify-content: flex-start;
    align-items: center;
    gap: 1rem;
    width: 100%;
    padding-block-start: 1rem;
    padding-block-end: 1rem;
    font-size: 1rem;
    font-weight: 600;
    display: flex;
    position: relative;
}

.CheckList__toggle:before {
    content: "";
    background: var(--white);
    width: 10px;
    height: 10px;
}

.CheckList__toggle[aria-expanded="true"] {
    border-color: var(--carnegie-red);
}

.CheckList__toggle[aria-expanded="true"]:before {
    background: var(--carnegie-red);
}

.CheckList__toggle:hover {
    border-color: var(--carnegie-red);
}

.CheckList__toggle:hover:before {
    background: var(--carnegie-red);
}

@media (min-width:64em) {
    .CheckList__toggle {
        border-bottom: none;
        gap: 2rem;
    }

    .CheckList__toggle span {
        border-bottom: 1px solid #0000;
    }

    .CheckList__toggle[aria-expanded="true"] {
        border-color: #0000;
    }

    .CheckList__toggle[aria-expanded="true"] span {
        border-color: var(--carnegie-red);
    }

    .CheckList__toggle:hover span {
        border-color: var(--carnegie-red);
    }
}

.CheckList__content {
    transition: height var(--transition), visibility var(--transition);
    visibility: hidden;
    height: 0;
    position: relative;
}

.CheckList__heading:has(> .CheckList__toggle[aria-expanded="true"])+.CheckList__content {
    margin-block: var(--gap-sm);
    visibility: visible;
    height: 400px;
}

.CheckList__heading:has(> .CheckList__toggle[aria-expanded="true"])+.CheckList__content .CheckList__wrapper {
    opacity: 1;
    visibility: visible;
}

@media (min-width:64em) {
    .CheckList__heading:has(> .CheckList__toggle[aria-expanded="true"])+.CheckList__content {
        margin-block-start: 1rem;
        margin-block-end: 0;
    }
}

@media (min-width:64em) {
    .CheckList__content {
        width: calc(60% - var(--gutter));
        height: 400px;
        margin-top: 1rem;
        position: absolute;
        top: 0;
        right: 0;
    }
}

.CheckList__wrapper {
    --background: var(--white);
    --color: var(--black);
    background: var(--white);
    color: var(--black);
    padding: var(--gap-sm);
    visibility: hidden;
    opacity: 0;
    transition: opacity var(--transition), visibility var(--transition);
    height: 100%;
    overflow-y: scroll;
}

.CheckList__interior {
    padding-bottom: var(--gap-sm);
    position: relative;
}

@media (min-width:64em) {
    .CheckList__interior {
        padding-bottom: var(--gap);
    }
}

.CTAPanel {
    align-items: center;
    gap: var(--gap);
    padding: var(--gap) var(--wrap);
    grid-template-columns: 100%;
    display: grid;
    position: relative;
}

@media (min-width:64em) {
    .CTAPanel {
        grid-template-columns: 42rem auto;
    }

    .CTAPanel.CTAPanel--alt {
        grid-template-columns: 100%;
    }
}

.CTAPanel>* {
    margin: 0;
}

.CTAPanel .Common {
    background-color: var(--black-80);
    padding: var(--gap);
    position: relative;
}

.CTAPanel--alt :is(.CTAPanel .Common) {
    text-align: center;
    place-items: center;
    display: grid;
}

.CTAPanel--alt :is(.CTAPanel .Common)>p {
    max-width: 780px;
}

@media (min-width:64em) {
    .CTAPanel .Common {
        padding: 5.75rem;
    }
}

.CTAPanel .Image {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

.CTAPanel .Image img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.Events {
    gap: var(--gutter);
    display: grid;
}

.Section--black .Events {
    background-color: var(--white);
    padding: var(--gutter);
}

.Section--gray .Events {
    background-color: var(--white);
    padding: var(--gutter);
}

@media (min-width:64em) {
    .Events {
        gap: var(--gutter) calc(var(--gutter) * 2);
        grid-template-columns: 1fr 1fr;
        overflow: visible;
    }
}

.Events__item {
    border-bottom: 1px solid var(--black-10);
    padding-bottom: var(--gap-sm);
    gap: var(--gap);
    grid-template-columns: 100%;
    display: grid;
    position: relative;
}

.Events__item * {
    margin: 0;
}

.Events__item h3 {
    margin-top: 1.5rem;
}

.Events__item h3 a {
    color: inherit;
    font-weight: 400;
}

@media (min-width:64em) {
    .Events__item:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }

    .Events__item:nth-last-child(2) {
        border-bottom: none;
        padding-bottom: 0;
    }
}

.FacultyCard {
    align-items: center;
    gap: var(--gap);
    padding-block: var(--gap-sm);
    border-bottom: 1px solid var(--black-10);
    grid-template-columns: 100%;
    display: grid;
    position: relative;
}

.FacultyCard:has(.Image) {
    grid-template-columns: auto 1fr;
}

@media (min-width:32em) {
    .FacultyCard:has(.Image) .FacultyCard__details {
        height: calc(100% - var(--gap));
    }
}

.FacultyCard .Image {
    order: 1;
    min-width: 60px;
    max-width: 238px;
}

@media (min-width:32em) {
    .FacultyCard .Image {
        order: unset;
    }
}

.FacultyCard__details {
    padding-left: var(--gap);
    place-content: center;
    width: 100%;
    position: relative;
}

.FacultyCard__details:before {
    content: "";
    background-color: var(--carnegie-red);
    width: 8px;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
}

.FacultyCard__details.Common a {
    color: var(--color);
}

@media (min-width:32em) {
    .FacultyCard__details {
        min-height: 200px;
    }
}

.FacultyCard__name {
    font: var(--h4);
    margin-bottom: 0;
}

.FacultyCard__title {
    margin-block-start: .5rem;
    margin-block-end: 0;
    font-weight: 700;
}

.FacultyCard__contact {
    flex-direction: column;
    gap: .5rem;
    margin-top: 1rem;
    display: flex;
}

.FacultyCard__contact p {
    margin: 0;
}

.FeaturedPosts {
    grid-template-columns: 100%;
    display: grid;
}

@media (min-width:64em) {
    .FeaturedPosts {
        grid-template-columns: 1fr 1fr;
        place-items: stretch stretch;
    }
}

.FeaturedPosts h3 {
    margin: 0;
}

.FeaturedPosts a {
    font-weight: 400;
}

.FeaturedPosts__card {
    aspect-ratio: 1;
    position: relative;
    overflow: hidden;
}

.FeaturedPosts__card:has(.link-cover:hover) .Image {
    transform: scale(1.1);
}

.FeaturedPosts__card .Image {
    width: 100%;
    height: 100%;
    transition: transform 3s;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

.FeaturedPosts__card .Image:before {
    content: " ";
    background: linear-gradient(246deg, #0000 -4.12%, #000000b3 77.91%) no-repeat;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

.FeaturedPosts__card .Image img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

@media (min-width:64em) {
    .FeaturedPosts__card .Image:before {
        background: linear-gradient(198deg, #0000 32.69%, #000000b3 65.04%) no-repeat;
    }
}

.FeaturedPosts__card .Posts__title {
    font-size: 1.75rem;
}

.FeaturedPosts__card .Posts__title a {
    z-index: 1;
    position: relative;
}

.FeaturedPosts__card .Posts__title a span {
    transition: box-shadow var(--transition);
    z-index: -1;
    position: relative;
}

.FeaturedPosts__card .Posts__title a:hover span {
    box-shadow: 0 .0625rem;
}

.FeaturedPosts__card .FeaturedPosts__content {
    padding: var(--gap);
    place-content: flex-end flex-start;
    width: 100%;
    height: 100%;
    display: grid;
    position: absolute;
}

@media (min-width:64em) {
    .FeaturedPosts__card .FeaturedPosts__content {
        padding: var(--gap);
    }
}

.FeaturedPosts__card .Posts__title {
    width: -moz-fit-content;
    width: fit-content;
}

.FeaturedPosts__card .meta {
    width: -moz-fit-content;
    width: fit-content;
}

@media (min-width:64em) {
    .FeaturedPosts--flip .FeaturedPosts__card {
        order: 1;
    }
}

.FeaturedPosts__list {
    place-content: flex-start;
    align-self: center;
    gap: var(--gap-sm);
    grid-template-columns: 100%;
    display: grid;
}

.FeaturedPosts__list>* {
    margin: 0;
}

.FeaturedPosts__list>* .h4 {
    margin: 0;
}

.FeaturedPosts__list .Buttons {
    margin: 0 0 0 auto;
}

.FeaturedPosts--flip :is(.FeaturedPosts__list .Buttons) {
    margin: 0;
}

.Section--gray .FeaturedPosts__list {
    background-color: var(--white);
    padding: var(--gap-sm);
}

.Seciton--black .FeaturedPosts__list {
    background-color: var(--white);
    padding: var(--gap-sm);
}

@media (min-width:64em) {
    .FeaturedPosts__list {
        height: 100%;
    }
}

.FeaturePanel {
    margin-block: var(--panel);
    padding: var(--panel) var(--wrap);
    grid-template-columns: 100%;
    align-items: center;
    display: grid;
    position: relative;
}

.FeaturePanel+.FeaturePanel {
    margin-top: calc(-1 * var(--panel));
}

.FeaturePanel+.Section--black {
    margin-top: calc(-1 * var(--panel));
}

.FeaturePanel+.Section--bg-image {
    margin-top: calc(-1 * var(--panel));
}

.ContentSidebar .FeaturePanel {
    margin-inline: calc(-1 * var(--wrap));
}

@media (min-width:64em) {
    .ContentSidebar .FeaturePanel {
        margin-inline-start: 0;
        margin-inline-end: 0;
        padding: 0;
    }
}

.FeaturePanel .Image {
    height: 100%;
}

.FeaturePanel .Image img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.FeaturePanel .FeaturePanel__content {
    background-color: var(--gray-light);
    padding: var(--gap);
    order: -1;
    grid-template-columns: 100%;
    align-items: center;
    height: 100%;
    display: grid;
}

.FeaturePanel .FeaturePanel__content .Buttons {
    margin-top: var(--gap-sm);
}

.FeaturePanel--alt :is(.FeaturePanel .FeaturePanel__content) {
    background-color: var(--white);
}

@media (min-width:64em) {
    .FeaturePanel .FeaturePanel__content {
        order: 0;
    }

    .FeaturePanel .FeaturePanel__content .Buttons {
        margin-top: var(--gap);
    }
}

.FeaturePanel:before {
    content: " ";
    background-color: var(--black);
    z-index: -2;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

@media (min-width:64em) {
    .FeaturePanel {
        grid-template-columns: 1fr 1fr;
    }

    .FeaturePanel+.FeaturePanel {
        margin-top: var(--panel);
    }

    .FeaturePanel+.Section--black {
        margin-top: var(--panel);
    }

    .FeaturePanel+.Section--bg-image {
        margin-top: var(--panel);
    }

    .FeaturePanel:before {
        left: unset;
        width: 65%;
    }
}

@media (min-width:64em) {
    .FeaturePanel .FeaturePanel__content {
        order: -1;
    }

    .FeaturePanel--flip :is(.FeaturePanel .FeaturePanel__content) {
        order: 0;
    }
}

.ContentSidebar .FeaturePanel {
    grid-template-columns: 100%;
}

@media (min-width:64em) {
    .ContentSidebar .FeaturePanel {
        grid-template-columns: 100%;
    }

    .ContentSidebar .FeaturePanel:before {
        display: none;
    }

    .ContentSidebar .FeaturePanel .FeaturePanel__content {
        padding: 0 0 var(--gap-sm);
        background: none;
        order: -1;
    }

    .ContentSidebar .FeaturePanel .FeaturePanel__content .Buttons {
        margin-top: var(--gap-sm);
    }
}

.FeaturePanel--alt:before {
    background-color: var(--gray-light);
}

@media (min-width:64em) {
    .FeaturePanel--alt:before {
        left: 0;
        right: unset;
    }
}

.Finder__hero {
    flex-direction: column;
    padding-block-start: 4.875rem;
    padding-block-end: 4.875rem;
    display: flex;
    position: relative;
}

@media (min-width:80em) {
    .Finder__hero {
        padding-top: 12rem;
    }
}

.Finder__background {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    overflow: hidden;
}

.Finder__background img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.Finder__intro {
    color: var(--white);
}

.Finder__intro .h2 {
    margin-bottom: -1.5rem;
}

.Finder__hero-container {
    z-index: 1;
    padding-inline: var(--wrap);
    flex-direction: column;
    flex: 1;
    height: 100%;
    display: flex;
    position: relative;
}

.Finder__hero-container form {
    flex-direction: column;
    flex: 1;
    justify-content: flex-start;
    height: 100%;
    display: flex;
}

.Finder__input-label {
    margin-top: var(--gap);
    display: block;
}

.Finder__input {
    font: var(--body);
    background-color: var(--white);
    color: var(--black);
    background-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/search.svg);
    background-position: right 2rem center;
    background-repeat: no-repeat;
    background-size: 23px;
    border: 0;
    width: 100%;
    margin-block-start: 1rem;
    margin-block-end: 0;
    padding: 1.5rem 4rem 1.5rem 1.5rem;
}

.Finder__input::placeholder {
    opacity: 1;
}

.Finder__input:focus {
    outline-offset: -.5rem;
    outline-color: var(--black);
}

.Finder__filter-toggle {
    background-color: var(--black);
    color: var(--white);
    border: 0;
    border-top: 6px solid var(--carnegie-red);
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    width: 100%;
    padding: 1rem;
    font-weight: 700;
    display: flex;
    position: relative;
}

.Finder__filter-toggle:after {
    content: "";
    background: var(--white);
    transition: transform var(--transition);
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    display: block;
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg") center / 1rem no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg") center / 1rem no-repeat;
}

.Finder__filter-toggle[aria-expanded="true"]:after {
    transform: rotate(180deg);
}

.Finder__filter-toggle[aria-expanded="false"] {
    transition: var(--transition);
}

.Finder__filter-toggle:focus {
    outline-offset: -.5rem;
}

.Finder__filter-content {
    height: calc(var(--height, auto) + 2rem);
    background-color: var(--black);
    color: var(--white);
    transition: height var(--transition), padding var(--transition), visibility var(--transition);
    width: 100%;
    padding: 1rem 2rem;
    position: relative;
    overflow: hidden;
}

[aria-expanded="false"]+.Finder__filter-content {
    visibility: hidden;
    height: 0;
    padding: 0 2rem;
}

@media (min-width:48em) {
    .Finder__filter-content {
        z-index: 1;
        position: absolute;
    }
}

.Finder__filters-wrapper {
    padding-inline: var(--wrap);
    margin-top: var(--gap);
}

.Finder__filters {
    margin-bottom: var(--gap);
    flex-direction: column;
    gap: 2.5rem;
    display: flex;
}

@media (min-width:48em) {
    .Finder__filters {
        flex-direction: row;
    }
}

.Finder__checkbox-group {
    --color: var(--white);
    flex: 1;
    position: relative;
}

.Finder__checkbox-label {
    text-transform: capitalize;
    cursor: pointer;
    width: 100%;
    margin: 0 0 .75rem;
    display: flex;
}

.Finder__checkbox {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: 1px solid var(--white);
    background: none;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin-top: 3px;
    margin-right: 15px;
}

.Finder__checkbox:checked {
    background-color: var(--white);
    border: 1px solid var(--black);
    background-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/check.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 10px;
}

.Finder__programs {
    --outline: var(--black);
    padding-block: 0 var(--panel);
    padding-inline: var(--wrap);
}

.Finder__program-list {
    --grid-min: var(--grid-min-item-size-custom, max(16rem, min(50vw, 20rem)));
    grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr));
    gap: 2rem;
    display: grid;
}

.Finder__load {
    text-align: center;
    flex-direction: column;
    justify-content: center;
    margin: 0 auto;
    display: flex;
}

.Finder__active-filters {
    margin-bottom: 2rem;
    margin-inline: var(--wrap);
    border-top: 1px dashed var(--black);
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    padding-top: 1rem;
    display: flex;
}

.Finder__current {
    flex-wrap: wrap;
    gap: 1.5rem;
    display: flex;
}

.Finder__remove {
    text-transform: capitalize;
    text-align: center;
    color: var(--black);
    transition: var(--transition);
    border: none;
    border-radius: 20px;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 8px 18px;
    font-size: 14px;
    line-height: 18px;
    display: flex;
}

.Finder__remove:after {
    content: "";
    -webkit-mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg);
    mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg);
    -webkit-mask-repeat: none;
    mask-repeat: none;
    background: currentColor;
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    margin-left: 8px;
    -webkit-mask-repeat: no-repeat;
}

.Finder__remove:hover {
    background-color: var(--carnegie-red);
    color: var(--white);
}

.Finder__current:empty+.Finder__reset {
    display: none;
}

.Program__card {
    z-index: 0;
    background-color: var(--gray-light);
    transition: box-shadow var(--transition);
    padding: 3rem;
    position: relative;
}

.Program__card[data-finder-item="hide"] {
    display: none;
}

[data-finder-limit]~.Program__card {
    display: none;
}

.Program__card:has(.link-cover:hover) {
    box-shadow: var(--shadow);
}

.Program__title a {
    color: var(--color);
}

.Program__keys {
    padding: 0;
    list-style-type: none;
}

.Program__keys li {
    gap: .5rem;
    margin: 0 0 .25rem;
    font-size: .875rem;
    font-weight: 600;
    display: flex;
}

.Program__keys li svg {
    width: .875rem;
}

.bottom-buttons {
    margin-top: 32px;
}

@media (min-width:64em) {
    .bottom-buttons {
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: flex-start;
        margin-top: 45px;
        display: flex;
    }
}

.bottom-buttons p {
    margin-bottom: 20px;
}

.bottom-buttons .link-secondary {
    --strokeHeight: 1px;
    margin: 0;
    padding: 0;
    font-size: 15px;
    font-weight: 500;
    line-height: 17px;
}

.bottom-buttons .button {
    min-width: 290px;
}

@media (min-width:64em) {
    .bottom-buttons .button {
        min-width: 225px;
    }
}

[data-finder-done] [data-finder-load] {
    display: none;
}

[data-flexscroll] {
    --flexscroll-loop: true;
    --flexscroll-move: all;
    --show: 1;
    --size: calc((100% / var(--show)) - ((var(--gap) * (var(--show) - 1)) / var(--show)));
    align-items: center;
    gap: var(--gap);
    grid-template-columns: 1fr 1fr;
    display: grid;
    position: relative;
    overflow: hidden;
}

@media (min-width:64em) {
    [data-flexscroll] {
        grid-template-columns: 3rem 1fr 3rem;
        overflow: visible;
    }
}

[data-flexscroll]:not(:has([inert])) {
    display: block;
}

[data-flexscroll]:not(:has([inert])) [data-flexscroll-dots] {
    display: none;
}

[data-flexscroll]:not(:has([inert])) [data-flexscroll-nav] {
    display: none;
}

[data-flexscroll]:not(:has([inert])) [data-flexscroll-counter] {
    display: none;
}

[data-flexscroll-viewport] {
    gap: var(--gap);
    scroll-behavior: smooth;
    scroll-snap-type: both mandatory;
    scrollbar-width: none;
    grid-column: span 3;
    display: flex;
    position: relative;
    overflow: auto;
}

@media (min-width:64em) {
    [data-flexscroll-viewport] {
        grid-column: 1;
        grid-template-columns: 2.75rem 1fr 2.75rem;
    }
}

[data-flexscroll-viewport]::-webkit-scrollbar {
    display: none;
}

[data-flexscroll-item] {
    flex: none;
    flex-basis: var(--size);
    scroll-snap-align: start;
    scroll-snap-stop: always;
    grid-template-columns: 100%;
    display: grid;
}

[data-flexscroll-dots] {
    gap: .25rem;
    display: flex;
}

@media (min-width:64em) {
    [data-flexscroll-dots] {
        order: 1;
        grid-column: 2;
        justify-content: center;
    }
}

[data-flexscroll-goto] {
    border: .0625rem solid var(--accent);
    transition: background-color var(--transition);
    background: var(--accent);
    color: var(--background);
    outline-color: var(--accent);
    border-radius: 50%;
    width: 1.5rem;
    height: 1.5rem;
    padding: 0;
}

[data-flexscroll-goto][data-flexscroll-goto="inert"] {
    color: currentColor;
    background: none;
}

@media (max-width:calc(63.999em - .001px)) {
    [data-flexscroll-nav] {
        justify-content: space-between;
        justify-self: unset;
        display: flex;
        position: absolute;
        top: 25%;
        left: 0;
        right: 0;
    }
}

@media (min-width:64em) {
    [data-flexscroll-nav] {
        display: contents;
    }
}

[data-flexscroll-prev],
[data-flexscroll-next] {
    border: .125rem solid var(--carnegie-red);
    transition: color var(--transition), opacity var(--transition);
    background: var(--carnegie-red);
    color: inherit;
    outline-color: var(--white);
    outline-offset: -.25em;
    z-index: 1;
    width: 2rem;
    height: 2rem;
    padding: 0;
    position: relative;
}

:is([data-flexscroll-prev], [data-flexscroll-next]):after {
    content: "";
    background: var(--white);
    transition: var(--transition);
    position: absolute;
    top: -.125rem;
    bottom: -.125rem;
    left: -.125rem;
    right: -.125rem;
    -webkit-mask: none center / 60% no-repeat;
    mask: none center / 60% no-repeat;
}

:is([data-flexscroll-prev], [data-flexscroll-next]):hover:after {
    transform: scale(1.2);
}

:is([data-flexscroll-prev], [data-flexscroll-next])[disabled] {
    opacity: .25;
    pointer-events: none;
}

@media (min-width:64em) {
    :is([data-flexscroll-prev], [data-flexscroll-next]) {
        width: 2.75rem;
        height: 2.75rem;
    }
}

[data-flexscroll-prev]:after {
    transform: rotate(180deg);
    -webkit-mask-image: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg");
    mask-image: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg");
}

[data-flexscroll-prev]:hover:after {
    transform: rotate(180deg)scale(1.2);
}

@media (min-width:64em) {
    [data-flexscroll-prev] {
        order: -1;
    }
}

[data-flexscroll-next]:after {
    -webkit-mask-image: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg");
    mask-image: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg");
}

[data-flexscroll-counter] {
    color: var(--color, var(--black));
    order: 1;
    grid-column: 2;
    justify-content: center;
    place-items: center;
    margin: 0 auto;
    font-weight: 700;
    display: grid;
}

@media (max-width:calc(63.999em - .001px)) {
    [data-flexscroll-counter] {
        grid-column: 1;
    }
}

.Hero {
    z-index: 1;
    grid-template-columns: 100%;
    align-items: end;
    min-height: 30rem;
    display: grid;
    position: relative;
}

.Hero .Common {
    margin: var(--gap-sm) var(--wrap);
}

.Hero--home :is(.Hero .Common) {
    flex-direction: column;
    justify-content: flex-end;
    display: flex;
}

@media not (prefers-reduced-motion) {
    .Hero--home :is(.Hero .Common) {
        animation-delay: 1.5s;
    }
}

@media (min-width:64em) {
    .Hero--home :is(.Hero .Common) {
        min-height: unset;
        justify-content: center;
    }
}

@media (min-width:80em) {
    .Hero .Common {
        margin: 12rem var(--wrap) var(--gap);
        max-width: 37.5rem;
    }
}

.Hero:has(.Hero__control) .Common {
    padding-block: 10rem var(--panel);
}

@media (min-width:80em) {
    .Hero:has(.Hero__control) .Common {
        padding-block-start: 0;
        padding-block-end: 0;
    }
}

@media (min-width:64em) {
    .Hero:has(.Hero__control):has(.Hero__posts) .Common {
        padding-block-start: 0;
        padding-block-end: 0;
    }

    .Hero:has(.Hero__control):has(.Hero__posts) .Hero__control {
        right: unset;
        left: 4rem;
    }
}

@media (min-width:80em) {
    .Hero:has(.Hero__control):has(.Hero__posts) {
        padding-bottom: 6rem;
    }
}

.Hero:has(.columns) .Common {
    max-width: unset;
}

.Hero--home+.Update {
    border-top: 1px solid var(--carnegie-red);
}

.Hero--form .columns .Hero__main-content {
    margin-inline: var(--gap-sm);
}

@media (min-width:48em) {
    .Hero--form .columns {
        grid-template-columns: 100%;
    }
}

@media (min-width:64em) {
    .Hero--form .columns {
        grid-template-columns: 1fr 1fr;
    }

    .Hero--form .columns .Hero__main-content {
        margin-inline-start: 0;
        margin-inline-end: 0;
    }
}

@media (min-width:80em) {
    .Hero--form .columns {
        gap: calc(var(--gutter) * 2);
    }
}

.Hero--form .Hero__form {
    box-shadow: var(--shadow);
    margin-bottom: calc(-150px - 4.875rem);
}

.Hero--form .Hero__form form {
    padding: var(--gap);
    background-color: var(--white);
    color: var(--black);
    flex-direction: column;
    width: 100%;
}

.Hero--form .Hero__form form blockquote.hidden {
    display: none !important;
}

.Hero--form .Hero__form form button.hidden {
    display: none !important;
}

.Hero--form .Hero__form form div.hidden {
    display: none !important;
}

.Hero--form .Hero__form form fieldset.hidden {
    display: none !important;
}

.Hero--form .Hero__form form form.hidden {
    display: none !important;
}

.Hero--form .Hero__form form iframe.hidden {
    display: none !important;
}

.Hero--form .Hero__form form li.hidden {
    display: none !important;
}

.Hero--form .Hero__form form img.hidden {
    display: none !important;
}

.Hero--form .Hero__form form input.hidden {
    display: none !important;
}

.Hero--form .Hero__form form option.hidden {
    display: none !important;
}

.Hero--form .Hero__form form p.hidden {
    display: none !important;
}

.Hero--form .Hero__form form select.hidden {
    display: none !important;
}

.Hero--form .Hero__form form span.hidden {
    display: none !important;
}

.Hero--form .Hero__form form table.hidden {
    display: none !important;
}

.Hero--form .Hero__form form thead.hidden>tr {
    display: none !important;
}

.Hero--form .Hero__form form tbody.hidden>tr {
    display: none !important;
}

.Hero--form .Hero__form form textarea.hidden {
    display: none !important;
}

.Hero--form .Hero__form form tr.hidden {
    display: none !important;
}

.Hero--form .Hero__form form ul.hidden {
    display: none !important;
}

.Hero--form .Hero__form form div.form_question fieldset>legend {
    display: none !important;
}

.Hero--form .Hero__form form div.form_question {
    box-sizing: border-box;
    margin: 0 0 1em;
    padding: 0;
    position: relative;
}

.Hero--form+section {
    margin-top: calc(150px + 4.875rem) !important;
}

.Hero--form+div {
    margin-top: calc(150px + 4.875rem) !important;
}

.Hero--faculty {
    min-height: unset;
    border-bottom: 1px solid var(--black-10);
}

.Hero--faculty .Common {
    gap: 0 var(--gutter);
    max-width: unset;
    margin: var(--gap-sm) var(--wrap);
    grid-template-columns: 100%;
    display: grid;
}

.Hero--faculty .Common .h2 {
    order: 1;
    margin: 0;
}

.Hero--faculty .Common .h5 {
    border-bottom: 1px solid var(--black-10);
    order: 2;
    grid-column: 1;
    margin-top: 0;
    font-weight: 600;
}

.Hero--faculty .Common a {
    color: var(--color);
    font-weight: normal;
}

.Hero--faculty .Common ul {
    flex-direction: column;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style-type: none;
    display: flex;
}

.Hero--faculty .Common .columns {
    order: 4;
    grid-column: 1;
}

.Hero--faculty .Common .columns:not(:has(ul)) {
    display: none;
}

.Hero--faculty .Common img {
    margin-bottom: var(--gap-sm);
    order: 2;
    grid-column: 1;
    width: 100%;
    max-width: 414px;
}

@media (min-width:48em) {
    .Hero--faculty .Common {
        margin: var(--gap) var(--wrap) var(--gap-sm);
        grid-template-columns: auto 2fr;
    }

    .Hero--faculty .Common .Hero__faculty-main {
        grid-row: 2;
    }

    .Hero--faculty .Common:not(:has(.columns ul)) .Hero__faculty-main {
        grid-row: 3;
    }

    .Hero--faculty .Common:not(:has(.columns ul)) .h5 {
        border: none;
    }

    .Hero--faculty .Common .h2 {
        grid-column: 1;
    }

    .Hero--faculty .Common .h5 {
        grid-column: 1;
    }

    .Hero--faculty .Common .columns {
        grid-column: 1;
    }

    .Hero--faculty .Common img {
        order: 4;
        grid-area: 4 / 3 / 1;
        width: auto;
        max-width: 174px;
        margin-bottom: 0;
    }
}

@media (min-width:64em) {
    .Hero--faculty .Common {
        margin: 0 var(--wrap) 0 var(--gap);
        padding-block: var(--gap-sm);
        grid-template-columns: 2fr auto;
    }

    .Hero--faculty .Common .h2 {
        grid-column: 1;
    }

    .Hero--faculty .Common .h5 {
        grid-column: 1;
    }

    .Hero--faculty .Common .columns {
        grid-column: 1;
    }

    .Hero--faculty .Common .columns {
        margin-bottom: var(--gap-sm);
    }

    .Hero--faculty .Common img {
        order: 4;
        grid-area: 5 / 2 / 1;
        align-self: flex-end;
        max-width: 416px;
    }
}

@media (min-width:80em) {
    .Hero--faculty .Common {
        margin-left: calc(var(--gap) + 200px + 1rem);
    }

    .Hero--faculty .Common .Hero__faculty-main {
        grid-row: 3;
    }

    .Hero--faculty .Common .columns {
        grid-row: 4;
    }

    .Hero--faculty .Common img {
        max-width: 450px;
        height: 100%;
    }
}

@media (min-width:112.5em) {
    .Hero--faculty .Common {
        margin-left: var(--wrap);
    }
}

@media (min-width:80em) {
    .Hero--tall {
        min-height: 40rem;
    }
}

@media (min-width:80em) {
    .Hero--news {
        aspect-ratio: 2;
        width: 100%;
        max-height: 70vh;
    }
}

.Hero__wrapper {
    grid-template-columns: 100%;
    place-content: flex-end flex-start;
    height: 100%;
    display: grid;
    position: relative;
}

.Hero--home .Hero__wrapper {
    min-height: 80vh;
}

@media (min-width:64em) {
    .Hero--home .Hero__wrapper {
        position: unset;
        place-content: unset;
        min-height: unset;
    }
}

.Hero__background {
    border-radius: var(--radius);
    z-index: -1;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    overflow: hidden;
}

@media not (prefers-reduced-motion) {
    .Hero--home .Hero__background {
        animation: 1s ease-in fade-in;
    }
}

.Hero__background:after {
    content: "";
    background: linear-gradient(0deg, #000c 0%, #0006 100%);
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

.Hero__background img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.Hero__background video {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.Hero--hidden .Hero__background:after {
    display: none;
}

@media (min-width:64em) {
    .Hero__background:after {
        background: linear-gradient(90deg, #000c 0%, #0006 100%);
    }
}

.Hero__control {
    bottom: var(--gap);
    right: var(--wrap);
    border: 1px solid var(--white);
    transition: transform var(--transition);
    background: var(--black);
    z-index: 1;
    place-items: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    display: grid;
    position: absolute;
}

.Hero__control:before {
    content: "";
    background: var(--white);
    width: 50%;
    height: 50%;
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/pause.svg") center / contain no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/pause.svg") center / contain no-repeat;
}

.Hero__control:hover {
    transform: scale(1.1);
}

.Hero__control--paused:before {
    -webkit-mask-image: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg");
    mask-image: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg");
}

.Hero__posts {
    background-color: var(--black-80);
    padding: 1.5rem var(--wrap);
    gap: var(--gap-sm);
    margin: 0;
    list-style-type: none;
    display: grid;
}

.Hero__posts li {
    align-items: center;
    gap: 1.5rem;
    display: flex;
    position: relative;
}

.Hero__posts li:before {
    content: " ";
    background-color: var(--carnegie-red);
    width: 3px;
    height: 20px;
    position: relative;
}

.Hero__posts li a {
    font-weight: 700;
}

@media (min-width:64em) {
    .Hero__posts {
        grid-template-columns: 1fr 1fr 1fr;
        width: 60%;
        padding: 1.5rem;
        position: absolute;
        bottom: 0;
        right: 0;
    }
}

.Hero--program,
.Hero--form {
    min-height: unset;
}

@media (max-width:calc(79.999em - .001px)) {
    :is(.Hero--program, .Hero--form) .Common {
        margin-block: var(--gap);
    }
}

:is(.Hero--program, .Hero--form) .Hero__background:after {
    display: none;
}

@media (max-width:calc(47.999em - .001px)) {
    .Hero--program.theme-dark .columns>div:last-child {
        margin-inline: calc(-1 * var(--wrap));
        padding-inline: var(--wrap);
        padding-block: var(--gap-sm);
        margin-bottom: calc(-1 * var(--gap-sm));
        background: #000;
    }
}

.Hero__program-list>* {
    margin-top: 0;
}

.Hero__program-list .h5 {
    border-top: 3px solid var(--carnegie-red);
    padding-top: .5rem;
}

.Hero__program-list ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
}

.Common :is(.Hero__program-list ul li a) {
    color: var(--color);
    -webkit-text-decoration-color: var(--color);
    text-decoration-color: var(--color);
}

@keyframes scaleUp {
    0% {
        transform: scale(.25);
    }

    100% {
        transform: scale(1);
    }
}

.Image {
    margin: 0;
}

.Image:where(.Common) .Image {
    margin-block: var(--gap);
}

.Image img {
    border-radius: var(--radius);
}

.Image figcaption {
    font: var(--text-small);
    background: var(--white);
    padding-block-start: 1rem;
    padding-block-end: 0;
    position: relative;
}

.Section--black :is(.Image figcaption) {
    background: var(--black);
}

.Section--gray :is(.Image figcaption) {
    background: var(--gray-light);
}

.Section--bg-split :is(.Image figcaption) {
    background: var(--white);
}

.Image:has(a[rel="modal"]) {
    position: relative;
}

.Image:has(a[rel="modal"]):before {
    content: " ";
    background-color: var(--black-20);
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

.Image:has(a[rel="modal"]) img {
    position: relative;
}

.Image a {
    z-index: 1;
    outline-color: var(--carnegie-red);
}

.Image [href^="https://www.youtube.com"] {
    border-radius: var(--radius);
    display: block;
    position: relative;
}

.Image [href^="https://www.youtube.com"]:before {
    content: "";
    transition: transform var(--transition);
    z-index: 1;
    width: 5rem;
    height: 5rem;
    position: absolute;
    top: calc(50% - 2.5rem);
    left: calc(50% - 2.5rem);
}

.Image [href^="https://www.youtube.com"]:after {
    content: "";
    transition: transform var(--transition);
    z-index: 1;
    width: 5rem;
    height: 5rem;
    position: absolute;
    top: calc(50% - 2.5rem);
    left: calc(50% - 2.5rem);
}

.Image [href^="https://www.youtube.com"]:before {
    background: var(--carnegie-red);
    border-radius: 50%;
}

.Image [href^="https://www.youtube.com"]:after {
    background: var(--white);
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
}

.Image [href^="https://www.youtube.com"]:hover:before {
    transform: scale(1.1);
}

.Image [href^="https://www.youtube.com"]:hover:after {
    transform: scale(1.1);
}

.Image [href^="https://youtu.be"] {
    border-radius: var(--radius);
    display: block;
    position: relative;
}

.Image [href^="https://youtu.be"]:before {
    content: "";
    transition: transform var(--transition);
    z-index: 1;
    width: 5rem;
    height: 5rem;
    position: absolute;
    top: calc(50% - 2.5rem);
    left: calc(50% - 2.5rem);
}

.Image [href^="https://youtu.be"]:after {
    content: "";
    transition: transform var(--transition);
    z-index: 1;
    width: 5rem;
    height: 5rem;
    position: absolute;
    top: calc(50% - 2.5rem);
    left: calc(50% - 2.5rem);
}

.Image [href^="https://youtu.be"]:before {
    background: var(--carnegie-red);
    border-radius: 50%;
}

.Image [href^="https://youtu.be"]:after {
    background: var(--white);
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
}

.Image [href^="https://youtu.be"]:hover:before {
    transform: scale(1.1);
}

.Image [href^="https://youtu.be"]:hover:after {
    transform: scale(1.1);
}

.Image [href^="https://vimeo.com"] {
    border-radius: var(--radius);
    display: block;
    position: relative;
}

.Image [href^="https://vimeo.com"]:before {
    content: "";
    transition: transform var(--transition);
    z-index: 1;
    width: 5rem;
    height: 5rem;
    position: absolute;
    top: calc(50% - 2.5rem);
    left: calc(50% - 2.5rem);
}

.Image [href^="https://vimeo.com"]:after {
    content: "";
    transition: transform var(--transition);
    z-index: 1;
    width: 5rem;
    height: 5rem;
    position: absolute;
    top: calc(50% - 2.5rem);
    left: calc(50% - 2.5rem);
}

.Image [href^="https://vimeo.com"]:before {
    background: var(--carnegie-red);
    border-radius: 50%;
}

.Image [href^="https://vimeo.com"]:after {
    background: var(--white);
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
}

.Image [href^="https://vimeo.com"]:hover:before {
    transform: scale(1.1);
}

.Image [href^="https://vimeo.com"]:hover:after {
    transform: scale(1.1);
}

.Image [href*="kaltura"] {
    border-radius: var(--radius);
    display: block;
    position: relative;
}

.Image [href*="kaltura"]:before {
    content: "";
    transition: transform var(--transition);
    z-index: 1;
    width: 5rem;
    height: 5rem;
    position: absolute;
    top: calc(50% - 2.5rem);
    left: calc(50% - 2.5rem);
}

.Image [href*="kaltura"]:after {
    content: "";
    transition: transform var(--transition);
    z-index: 1;
    width: 5rem;
    height: 5rem;
    position: absolute;
    top: calc(50% - 2.5rem);
    left: calc(50% - 2.5rem);
}

.Image [href*="kaltura"]:before {
    background: var(--carnegie-red);
    border-radius: 50%;
}

.Image [href*="kaltura"]:after {
    background: var(--white);
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg") center / 1.75rem 1.75rem no-repeat;
}

.Image [href*="kaltura"]:hover:before {
    transform: scale(1.1);
}

.Image [href*="kaltura"]:hover:after {
    transform: scale(1.1);
}

.ImageCarousel {
    margin-inline: calc(-1 * var(--wrap));
}

@media (min-width:64em) {
    .ImageCarousel {
        padding-inline: var(--space-sm);
        margin-inline-start: 0;
        margin-inline-end: 0;
    }
}

.ImageCarousel__slide {
    margin-right: calc(var(--gap-sm) / 2);
    width: 100%;
    height: auto;
}

@media (min-width:64em) {
    .ImageCarousel__slide:not(.is-selected) figcaption {
        visibility: hidden;
        transform: translateY(100%);
    }
}

.ImageCarousel__slide figcaption {
    padding: var(--gap-sm);
    background-color: var(--gray-light);
    color: var(--black);
    font: var(--body);
    visibility: visible;
    transition: all .6s .3s;
    transform: translateY(0);
}

@media (min-width:64em) {
    .ImageCarousel__slide {
        width: calc(90% - calc(var(--gap-sm) / 2));
    }

    .ImageCarousel__slide:after {
        content: attr(data-index);
        top: var(--gap-sm);
        left: var(--gap-sm);
        background: var(--carnegie-red);
        border: 1px solid var(--carnegie-red);
        color: var(--white);
        font: var(--h5);
        transition: var(--transition);
        padding: .5rem 1rem;
        position: absolute;
    }

    .ImageCarousel__slide:has(+ .is-selected):after {
        left: unset;
        right: var(--gap-sm);
    }

    .ImageCarousel__slide:not(.is-selected):after {
        border-color: var(--white);
        background: none;
    }

    .ImageCarousel__slide .ImageCarousel__content {
        transform-origin: 0 0;
        transition: var(--transition);
        transform: scale(.6);
    }

    .ImageCarousel__slide .Image:before {
        content: " ";
        background: linear-gradient(335deg, #0000 45.79%, #0000004d 80.81%), linear-gradient(0deg, #0000 0% 100%);
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
    }

    .ImageCarousel__slide .Image figcaption {
        max-width: 538px;
        position: absolute;
        bottom: 0;
        left: 0;
    }
}

.ImageCarousel__slider {
    flex: 1;
    width: 100%;
    position: relative;
}

.ImageCarousel__slider .slider {
    margin-bottom: var(--gap-sm);
    flex-direction: column-reverse;
    align-items: center;
    width: 100%;
    display: flex;
    position: relative;
}

.ImageCarousel__slider .flickity-viewport {
    width: 100%;
    overflow: hidden;
}

.ImageCarousel__slider .flickity-button {
    top: calc(var(--nav) / 2);
    outline-color: var(--white);
    outline-offset: -.2rem;
    outline-width: 2px;
    left: 100%;
}

.ImageCarousel__slider .flickity-button.previous {
    left: 0;
}

@media (min-width:64em) {
    .ImageCarousel__slider .flickity-button.previous {
        left: -3.25rem;
        right: 100%;
    }
}

.ImageCarousel__slider .flickity-button.next {
    left: unset;
    right: 0;
}

@media (min-width:64em) {
    .ImageCarousel__slider .flickity-button.next {
        right: -3.25rem;
    }
}

@media (min-width:64em) {
    .ImageCarousel__slider .flickity-button {
        outline-color: var(--black);
        outline-offset: .05rem;
        outline-width: .25rem;
    }
}

@media (min-width:64em) {
    .ImageCarousel__slider .flickity-button {
        left: unset;
    }

    .ImageCarousel__slider .flickity-status {
        left: 1.5rem;
    }
}

.Panel {
    margin-block: var(--space);
    background: var(--background);
    color: var(--text);
    width: 100%;
}

.Panel--inset {
    padding: 0;
}

.Panel__grid {
    gap: 2rem;
    display: grid;
}

@media (min-width:48em) {
    .Panel__grid--2 {
        grid-template-columns: repeat(2, minmax(0, 542px));
        justify-content: space-between;
        gap: 4rem;
    }
}

@media (min-width:48em) {
    .Panel__grid--3 {
        grid-template-columns: repeat(2, minmax(0, 542px));
        justify-content: space-between;
        gap: 4rem;
    }
}

@media (min-width:64em) {
    .Panel__grid--3 {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

@media (min-width:48em) {
    .Panel__item {
        max-width: 542px;
    }
}

@media (min-width:64em) {
    .Panel__header p {
        max-width: 50%;
    }
}

.Panel__heading {
    font: var(--h4);
}

.Pagination {
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
    display: flex;
}

.Pagination a {
    border: .0625rem solid var(--black);
    background: var(--white);
    color: var(--black);
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    display: grid;
}

.Pagination a:hover {
    background: var(--black);
    color: var(--white);
}

.Pagination a[aria-current] {
    background: var(--black);
    color: var(--white);
}

.Pagination span {
    border: .0625rem solid var(--black);
    background: var(--white);
    color: var(--black);
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    display: grid;
}

.Pagination span:hover {
    background: var(--black);
    color: var(--white);
}

.Pagination span[aria-current] {
    background: var(--black);
    color: var(--white);
}

.Posts {
    gap: var(--gap);
    display: grid;
}

@media (min-width:64em) {
    .Posts {
        gap: var(--gap-sm) calc(var(--gutter) * 2);
        grid-template-columns: 1fr 1fr;
        overflow: visible;
    }

    .ContentSidebar__content .Posts {
        grid-template-columns: 100%;
    }
}

.Posts__item {
    grid-template-columns: 100%;
    gap: 1.5rem;
    display: grid;
    position: relative;
}

.Posts__item:has(.Image) {
    grid-template-columns: 1fr;
}

@media (min-width:48em) {
    .Posts__item:has(.Image) {
        grid-template-columns: 1fr 1fr;
    }
}

.Posts__item:has(.Image) .Image {
    aspect-ratio: 3 / 2;
}

.Posts__item:has(.Image) .Image img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.Posts__item:has(.link-cover:hover) .Image img {
    transform: scale(1.1);
}

.Posts__item .Image {
    margin: 0;
    overflow: hidden;
}

.Posts__item .Image img {
    transition: transform 3s;
}

.Posts__item:has(.meta) .meta {
    margin-bottom: .25rem;
}

.Posts__item:has(.meta) .meta--alt {
    margin-bottom: 1rem;
}

.Posts__item:has(.meta) .Posts__title {
    margin-top: 0;
}

@media (min-width:64em) {
    .Posts__item:has(.Image) {
        grid-template-columns: 1fr 2fr;
    }
}

.Posts__title {
    font: var(--h5);
    margin-top: 1rem;
    font-size: 1.125rem;
}

.Posts__title a {
    color: inherit;
    font-weight: 400;
}

.PreFooter {
    gap: var(--gutter);
    background-color: var(--black);
    padding: var(--gap) var(--wrap);
    display: grid;
}

@media (min-width:64em) {
    .PreFooter {
        padding-inline: var(--gap);
        grid-template-columns: 1fr 2fr;
        margin-inline-start: 3rem;
        margin-inline-end: 3rem;
    }

    .PreFooter .Common {
        max-width: 350px;
    }
}

.ResearchGrid {
    margin: 0 auto;
}

.ResearchPanel {
    grid-template-columns: 100%;
    align-items: center;
    max-width: 1600px;
    display: grid;
    position: relative;
}

@media (min-width:64em) {
    .ResearchPanel {
        grid-template-columns: 1fr 1fr;
    }
}

.ResearchPanel__content {
    padding: var(--gap);
    grid-template-columns: 100%;
    align-items: center;
    display: grid;
}

@media (min-width:64em) {
    .ResearchPanel--flip .ResearchPanel__content {
        order: 1;
    }
}

.ResearchPanel__fact {
    position: relative;
}

@media (min-width:64em) {
    .ResearchPanel__fact {
        height: 100%;
    }

    .ResearchPanel__fact .Image {
        height: 100%;
    }

    .ResearchPanel__fact .Image img {
        object-fit: cover;
        aspect-ratio: 3 / 2;
        height: 100%;
    }
}

.ResearchPanel__stat {
    background-color: var(--gray-light);
    color: var(--black);
    padding: var(--gap);
}

.ResearchPanel__stat * {
    margin: 0;
}

.ResearchPanel__stat a {
    transition: box-shadow var(--transition), text-shadow var(--transition);
    box-shadow: 0 .0625rem;
}

.ResearchPanel__stat a:hover {
    text-shadow: .5px 0;
    box-shadow: 0 .125rem;
}

.ResearchPanel__stat .text-stat {
    margin-bottom: 1rem;
}

@media (min-width:64em) {
    .ResearchPanel__stat {
        max-width: 430px;
        position: absolute;
        bottom: 0;
        left: 0;
    }
}

.RFIPanel {
    gap: var(--gap-sm);
    display: grid;
}

@media (min-width:64em) {
    .RFIPanel {
        grid-template-columns: 1fr 1fr;
    }

    .RFIPanel.RFIPanel--alt {
        grid-template-columns: 100%;
    }
}

@media (min-width:64em) {
    .RFIPanel__content {
        place-content: center;
        display: grid;
    }

    .RFIPanel--alt .RFIPanel__content {
        align-items: center;
        gap: var(--gap-sm);
        grid-template-columns: 1fr 1fr;
    }
}

.Router {
    --accent: var(--black);
    font: var(--h5);
    grid-template-columns: 100%;
    gap: 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
}

.Router a {
    color: inherit;
    border-bottom: .0625rem solid var(--black-20);
    transition: background var(--transition), color var(--transition);
    background: linear-gradient(var(--accent), var(--accent)) 0 100% / 0 .0625rem no-repeat;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 1.5rem;
    font-weight: 700;
    text-decoration: none;
    display: flex;
    position: relative;
}

.Router a:after {
    content: "";
    background-color: var(--black);
    transition: transform var(--transition);
    width: 37px;
    height: 37px;
    display: block;
    transform: rotate(-45deg);
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg") center / 80% no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg") center / 80% no-repeat;
}

.RouterPanel--alt :is(.Router a) {
    --accent: var(--white);
    border-color: var(--white-20);
}

.RouterPanel--alt :is(.Router a):after {
    background-color: var(--white);
}

.Router a:hover {
    background-size: 100% .0625rem;
    text-decoration: none;
}

.Router a:hover:after {
    transform: rotate(-45deg)translate(15%, 5%);
}

.PreFooter .Router {
    --accent: var(--black);
    gap: var(--gap-sm);
    font: var(--h5);
    grid-template-columns: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
}

.PreFooter .Router a {
    color: inherit;
    transition: background-position var(--transition);
    background: linear-gradient(-90deg, #0000 50%, currentColor 50%) 100% calc(100% + 1px) / 200% .0625rem no-repeat;
    border-bottom: 1px solid #6d6e7166;
    width: 100%;
    padding-block-start: .875rem;
    padding-block-end: .875rem;
    font-size: .875rem;
    font-weight: 400;
    text-decoration: none;
    display: block;
    position: relative;
}

.PreFooter .Router a:after {
    display: none;
}

.PreFooter .Router a:hover {
    background-position-x: 0;
}

@media (min-width:64em) {
    .PreFooter .Router {
        gap: 0 var(--gap-sm);
        grid-template-columns: 1fr 1fr 1fr;
    }
}

@media (min-width:64em) {
    .RouterList .Router {
        column-gap: var(--gutter);
        grid-template-columns: 1fr 1fr;
    }
}

.RouterPanel {
    background: var(--white);
    color: var(--black);
    --color: var(--black);
    grid-template-columns: 100%;
    align-items: center;
    display: grid;
}

@media (min-width:64em) {
    .RouterPanel {
        grid-template-columns: 1fr 1fr;
    }

    .RouterPanel .Image {
        height: 100%;
    }

    .RouterPanel .Image img {
        object-fit: cover;
        height: 100%;
    }
}

.ContentSidebar .RouterPanel {
    grid-template-columns: 100%;
}

@media (min-width:75em) {
    .ContentSidebar .RouterPanel {
        grid-template-columns: 1fr 1fr;
    }
}

.RouterPanel__group {
    gap: var(--gap);
    padding: var(--gap);
    grid-template-columns: 100%;
    display: grid;
}

@media (min-width:64em) {
    .RouterPanel__group {
        order: -1;
    }

    .RouterPanel--flip .RouterPanel__group {
        order: 0;
    }
}

.RouterPanel--alt {
    background: var(--black);
    color: var(--white);
    --color: var(--white);
}

.Section {
    gap: var(--gap);
    margin-block: var(--panel);
    padding-inline: var(--wrap);
    grid-template-columns: 100%;
    display: grid;
}

.ContentSidebar .Section {
    padding: 0;
}

@media (min-width:64em) {
    .Section:has(.Section__filters) {
        grid-template-columns: 1fr;
    }

    .Section:has(.Section__filters) .Section__header {
        display: block;
    }

    .Section:has(.Section__filters) .Section__filters {
        justify-self: center;
    }

    .Section:has(.Section__filters) .Section__filters .Buttons {
        justify-content: center;
    }

    .Section:has(.Section__filters) .Section__footer {
        justify-self: center;
    }

    .Section:has(.Section__filters) .Section__footer .Buttons {
        justify-content: center;
    }
}

@media (min-width:64em) {
    .Section:has(.Section__footer) {
        grid-template-columns: 1fr;
    }

    .Section:has(.Section__footer) .Section__header {
        display: block;
    }

    .Section:has(.Section__footer) .Section__filters {
        justify-self: center;
    }

    .Section:has(.Section__footer) .Section__filters .Buttons {
        justify-content: center;
    }

    .Section:has(.Section__footer) .Section__footer {
        justify-self: center;
    }

    .Section:has(.Section__footer) .Section__footer .Buttons {
        justify-content: center;
    }
}

.Section:not(.Section--black):not(.Section--gray):not(.Section--bg-split)+.Section:not(.Section--black):not(.Section--gray):not(.Section--bg-split) {
    margin-top: 0;
}

.Section--full {
    padding-inline-start: 0;
    padding-inline-end: 0;
}

.Section--black,
.Section--bg-image {
    --accent: var(--white);
    --background: var(--black);
    --color: var(--white);
    background: var(--black);
    color: var(--white);
    padding-block: var(--panel);
    margin: 0;
}

:is(.Section--black, .Section--bg-image)+.Section--black {
    position: relative;
}

:is(.Section--black, .Section--bg-image)+.Section--black:before {
    content: " ";
    top: 0;
    left: var(--wrap);
    right: var(--wrap);
    background-color: var(--carnegie-red);
    z-index: 1;
    height: 1px;
    margin: 0;
    position: absolute;
}

.Section--gray {
    --background: var(--gray-light);
    background: var(--gray-light);
    padding-block: var(--panel);
    margin: 0;
}

.Section--gray:not(.Section--bg-split-alt)+.Section--gray {
    padding-top: 0;
}

.Section--bg-split {
    --color: var(--black);
    color: var(--black);
    overflow: hidden;
}

.Section--bg-split.Section--black {
    background: unset;
}

.Section--bg-split.Section--black .Section__header {
    background: var(--black);
    --color: var(--white);
    color: var(--white);
    margin-top: calc(-1 * var(--panel));
    padding-block: var(--panel) calc((var(--panel) * 5) / 2);
    position: relative;
}

.Section--bg-split.Section--black .Section__header:before {
    content: "";
    background-color: var(--black);
    z-index: -1;
    width: 100vw;
    height: 100%;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

.Section--bg-split.Section--black .Section__main {
    margin-top: calc(-1 * ((var(--panel) * 5) / 2));
}

.Section--bg-split+.Section:not(.Section--black):not(.Section--gray):not(.Section--bg-split) {
    margin-top: 0;
}

.Section--bg-split+.FeaturePanel {
    margin-top: 0;
}

@media (min-width:64em) {
    .Section--bg-split-alt {
        --color: var(--black);
        background: unset;
        color: var(--black);
        position: relative;
    }

    .Section--bg-split-alt:before {
        content: "";
        background-color: var(--background);
        width: calc(var(--wrap) + 40rem);
        z-index: -1;
        height: 100%;
        position: absolute;
        right: 0;
    }

    .Section--bg-split-alt:has(.FeaturedPosts--flip):before {
        left: 0;
        right: unset;
    }

    .Section--bg-split-alt.Section--black .Section__header {
        background: var(--black);
        color: var(--white);
    }
}

@media (min-width:78em) {
    .Section--bg-split-alt:before {
        width: calc(var(--wrap) + 52rem);
    }
}

.Section--bg-image {
    position: relative;
}

.Section--bg-image>* {
    z-index: 1;
}

.Section__header {
    display: grid;
}

.Section--centered .Section__header {
    text-align: center;
    place-content: center;
    place-items: center;
}

@media (min-width:64em) {
    .Section__header {
        gap: var(--gap-sm);
        display: grid;
    }

    .Section__header * {
        margin: 0;
    }

    .Section__header p {
        max-width: 80ch;
    }

    .Section__header .Buttons:nth-child(2) {
        justify-content: end;
    }
}

.Section__header .Common:has(+ .Buttons) {
    grid-row: span 2;
    grid-template-columns: 2fr 3fr;
}

.Section__main {
    gap: var(--gap-sm);
    grid-template-columns: 100%;
    display: grid;
}

.Section__main .Section--bg-image {
    z-index: 0;
}

.Section__pagination {
    order: 1;
}

@media (min-width:64em) {
    .Section__pagination {
        grid-column: span 2;
    }
}

.Section__background {
    z-index: 0;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

.Section__background:before {
    content: " ";
    background-color: var(--black-75);
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

.Section__background img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.StatPanel {
    --grid-min: 100%;
    gap: var(--gap);
    grid-template-columns: repeat(auto-fit, minmax(var(--grid-min), 1fr));
    display: grid;
}

@media (min-width:48em) {
    .StatPanel {
        --grid-min: 18rem;
    }
}

.StatPanel__item {
    --background: var(--white);
    --color: var(--black);
    background-color: var(--white);
    border-top: 8px var(--carnegie-red) solid;
    color: var(--black);
    gap: var(--gap-sm);
    padding: var(--gap);
    grid-template-columns: 100%;
    display: grid;
}

.Subnav {
    border-top: .625rem solid var(--carnegie-red);
}

.Subnav__heading {
    padding-inline: var(--wrap);
    margin: 1rem 0;
}

@media (min-width:64em) {
    .Subnav__heading {
        padding-inline-start: 1rem;
        padding-inline-end: 1rem;
    }
}

.Subnav__heading {
    font: var(--h4);
}

.Subnav__menu {
    margin-inline: var(--wrap);
    margin-bottom: 1rem;
}

.Subnav__menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.Subnav__menu li {
    padding: .875rem 0;
    border-bottom: .0625rem solid var(--black-20);
    font: var(--link);
    padding-left: calc(44px + 1rem);
}

.Subnav__menu li:has(> .Subnav__subtoggle) {
    padding-block-start: 0;
    padding-block-end: 0;
    padding-left: unset;
    flex-flow: row-reverse wrap;
    justify-content: flex-end;
    gap: 0 1rem;
    display: flex;
}

.Subnav__menu li:has(> .Subnav__subtoggle)>span {
    max-width: calc(100% - 44px - 1rem);
    margin-bottom: .75rem;
    padding-block-start: calc(.5rem + .0625em);
    padding-block-end: 0;
}

.Subnav__menu li:first-of-type {
    border-top: .0625rem solid var(--black-20);
}

.Subnav__menu a {
    color: inherit;
    font-weight: 600;
}

.Subnav__menu a[aria-current] {
    font-weight: bold;
    line-height: 1.5;
}

.Subnav__menu ul ul {
    padding-left: calc(44px + 1rem);
}

.Subnav__menu li li {
    font: var(--body);
    border: 0;
    margin-bottom: 1rem;
    padding: 0;
}

.Subnav__menu li li a {
    font-weight: normal;
}

.Subnav__menu li li a[aria-current] {
    font-weight: 600;
}

.Subnav__menu li li:first-of-type {
    border-top: unset;
}

@media (max-width:calc(63.999em - .001px)) {
    [aria-expanded="true"]+.Subnav__menu {
        visibility: visible;
        grid-template-rows: minmax(0, 1fr);
    }
}

@media (min-width:calc(64em + .001px)) {
    .Subnav__menu {
        margin: 0;
    }
}

.Subnav__subtoggle {
    background: none;
    border: 0;
    place-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    display: grid;
}

.Subnav__subtoggle:before {
    content: "";
    transition: transform var(--transition);
    background: var(--black);
    width: .8125rem;
    height: .5625rem;
    transform: rotate(-90deg);
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) center / contain no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) center / contain no-repeat;
}

.Subnav__subtoggle:hover:before {
    transform: scale(1.2)rotate(-90deg);
}

.Subnav__subtoggle:focus {
    outline-offset: -.35rem;
}

.Subnav__subtoggle[aria-expanded="true"]:before {
    transform: rotate(0);
}

.Subnav__subtoggle[aria-expanded="true"]:hover:before {
    transform: rotate(0)scale(1.2);
}

.Subnav__nested {
    transition: grid-template-rows var(--transition), visibility var(--transition);
    overflow-clip-margin: .5rem;
    visibility: hidden;
    grid-template-rows: minmax(0, 0fr);
    grid-template-columns: 100%;
    width: 100%;
    display: grid;
    overflow: clip;
}

[aria-expanded="true"]+.Subnav__nested {
    visibility: visible;
    grid-template-rows: minmax(0, 1fr);
}

.Subnav__nested a:has(.link) .link {
    font-weight: 400;
}

@media (min-width:64em) {
    .Table__stack {
        background-attachment: local, local, scroll, scroll;
        background-image: linear-gradient(to right, var(--white), var(--white)), linear-gradient(to left, var(--white), var(--white)), linear-gradient(to right, var(--black-10), transparent), linear-gradient(to left, var(--black-10), transparent);
        background-position: 0, 100%, 0, 100%;
        background-size: 1rem 100%;
        border: 0;
        overflow: auto;
    }
}

.Table__stack table {
    width: 100%;
}

@media (max-width:calc(47.999em - .001px)) {
    .Table__stack table {
        min-width: auto !important;
    }
}

.Table__stack thead {
    border-bottom: 1px solid var(--black);
    display: none;
}

@media (min-width:64em) {
    .Table__stack thead {
        display: table-header-group;
    }
}

.Table__stack th {
    vertical-align: unset;
    text-align: left;
    color: var(--black);
    justify-content: space-between;
    padding: .5rem 0;
    font-size: 16px;
    font-style: normal;
    line-height: 25px;
    display: flex;
}

.Table__stack th a {
    color: var(--carnegie-red);
    transition: box-shadow var(--transition), text-shadow var(--transition);
    font-weight: 600;
    box-shadow: 0 .0625rem;
}

.Table__stack th a:hover {
    text-shadow: .5px 0;
    box-shadow: 0 .125rem;
}

@media (max-width:calc(63.999em - .001px)) {
    .Table__stack th {
        margin-inline: calc(-1 * var(--wrap));
        padding-inline: var(--wrap);
    }
}

@media (min-width:64em) {
    .Table__stack th {
        padding: 1.25rem 1.5rem;
        font-style: normal;
        font-weight: 400;
        display: table-cell;
    }
}

.Table__stack th:before {
    content: attr(data-label);
    font-size: 20px;
    font-style: normal;
    font-weight: 800;
    line-height: 24px;
    display: block;
}

@media (min-width:64em) {
    .Table__stack th:before {
        display: none;
    }
}

.Table__stack td {
    vertical-align: unset;
    text-align: left;
    color: var(--black);
    justify-content: space-between;
    padding: .5rem 0;
    font-size: 16px;
    font-style: normal;
    line-height: 25px;
    display: flex;
}

.Table__stack td a {
    color: var(--carnegie-red);
    transition: box-shadow var(--transition), text-shadow var(--transition);
    font-weight: 600;
    box-shadow: 0 .0625rem;
}

.Table__stack td a:hover {
    text-shadow: .5px 0;
    box-shadow: 0 .125rem;
}

@media (max-width:calc(63.999em - .001px)) {
    .Table__stack td {
        margin-inline: calc(-1 * var(--wrap));
        padding-inline: var(--wrap);
    }
}

@media (min-width:64em) {
    .Table__stack td {
        padding: 1.25rem 1.5rem;
        font-style: normal;
        font-weight: 400;
        display: table-cell;
    }
}

.Table__stack td:before {
    content: attr(data-label);
    font-size: 20px;
    font-style: normal;
    font-weight: 800;
    line-height: 24px;
    display: block;
}

@media (min-width:64em) {
    .Table__stack td:before {
        display: none;
    }
}

.Table__stack tr:nth-child(2n) td {
    background: var(--gray-light);
}

.Table__stack th {
    font: var(--h5);
    font-size: 1.25rem;
}

.Testimonial {
    background-color: var(--gray-light);
    margin-top: 7rem;
}

:where(.Common) .Testimonial {
    margin-block: var(--gap-sm);
    padding: 4rem;
}

:where(.ContentSidebar__content) .Testimonial {
    margin-block: var(--gap-sm);
    padding: 4rem;
}

@media (min-width:48em) {
    .Testimonial {
        align-items: flex-start;
        display: grid;
    }

    .Testimonial .Testimonial__content {
        max-width: 700px;
    }

    .Testimonial:has(.Image) {
        grid-template-columns: 1fr 20rem;
    }
}

@media (min-width:64em) {
    .Testimonial:has(.Image) {
        grid-template-columns: 1fr 26rem;
    }
}

@media (min-width:80em) {
    .Testimonial {
        gap: 2rem;
        padding-block-start: 4rem;
        padding-block-end: 4rem;
    }
}

.Testimonial .Image {
    margin: 0 0 var(--gap-sm);
}

@media (max-width:calc(47.999em - .001px)) {
    .Testimonial .Image {
        max-width: 12.5rem;
    }
}

@media (min-width:48em) {
    .Testimonial .Image {
        order: 2;
        max-width: none;
        margin: 0;
        padding-left: 2rem;
    }
}

.Testimonial__content h2 {
    margin-bottom: var(--gap-sm);
}

.Testimonial__text {
    font: var(--body);
    border: 0;
    margin: 0;
    padding: 0;
}

.Testimonial__text p {
    padding: 0 0 0 var(--gap-sm);
    font: var(--text-quote);
    border-left: 1px solid var(--black-20);
    margin-block-start: 1em;
    margin-block-end: 1em;
    position: relative;
}

.theme-dark :is(.Testimonial__text p) {
    border-left: 1px solid var(--white-20);
}

.Testimonial__text cite {
    font: var(--h6);
    margin-top: 2rem;
    padding-top: 1rem;
    display: block;
}

.Testimonial__text cite strong {
    color: var(--accent);
    font: var(--h5);
}

.Testimonial__text .Buttons {
    margin-block: var(--gap-sm) 0;
}

@media (min-width:48em) {
    .Testimonial__text:before {
        content: "";
        margin-bottom: var(--gap-sm);
        background-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/quote.svg);
        background-repeat: no-repeat;
        width: 72px;
        height: 72px;
        display: block;
        position: relative;
    }
}

.Testimonial--alt {
    gap: 0;
    margin: 0;
    padding: 0;
}

.Testimonial--alt .Image {
    margin: 0;
    padding: 0;
}

@media (max-width:calc(47.999em - .001px)) {
    .Testimonial--alt .Image {
        max-width: 12.5rem;
        margin-inline-start: auto;
        margin-inline-end: auto;
    }
}

@media (min-width:48em) {
    .Testimonial--alt .Image {
        order: unset;
        max-width: 340px;
        height: 100%;
    }

    .Testimonial--alt .Image img {
        object-fit: cover;
        height: 100%;
    }
}

.Testimonial--alt .Testimonial__content {
    padding: var(--gap);
}

.Testimonial--alt .Testimonial__text {
    gap: var(--gap-sm);
    padding: 0;
    display: flex;
}

.Testimonial--alt .Testimonial__text:before {
    margin-bottom: unset;
    width: 44px;
    height: 44px;
}

.Testimonial--alt .Testimonial__text>div {
    flex: 1;
}

.Testimonial--alt .Testimonial__text p {
    border: none;
    margin: 0;
    padding: 0;
    font-size: 1.375rem;
    font-weight: 400;
}

@media (min-width:48em) {
    .Testimonial--alt .Testimonial__text {
        padding-inline-start: 0;
        padding-inline-end: 0;
    }

    .Testimonial--alt .Testimonial__text:before {
        position: unset;
        left: unset;
        margin-block-start: 0;
        margin-block-end: 1.5rem;
    }
}

@media (min-width:64em) {
    .Testimonial--alt .Testimonial__text {
        gap: var(--gap-sm);
        padding: 0 0 0 calc(var(--gap-sm) + 44px);
        display: flex;
    }

    .Testimonial--alt .Testimonial__text:before {
        margin-block-start: .5rem;
        margin-block-end: 0;
        position: absolute;
        left: 0;
    }
}

@media (min-width:48em) {
    .Testimonial--alt:has(.Image) {
        grid-template-columns: 340px 1fr;
    }
}

.TestimonialStats {
    gap: var(--gap);
    grid-template-columns: 100%;
    display: grid;
}

.Section--gray .TestimonialStats {
    gap: unset;
}

.Seciton--black .TestimonialStats {
    gap: unset;
}

.TestimonialStats .Image {
    margin: 0;
    padding: 0;
}

@media (max-width:calc(47.999em - .001px)) {
    .TestimonialStats .Image {
        max-width: 12.5rem;
        margin-inline-start: auto;
        margin-inline-end: auto;
    }
}

@media (min-width:48em) {
    .TestimonialStats .Image {
        order: unset;
        max-width: 340px;
        height: 100%;
    }

    .TestimonialStats .Image img {
        object-fit: cover;
        height: 100%;
    }
}

.TestimonialStats blockquote {
    margin-top: var(--gap-sm);
    padding-inline-start: 0;
    padding-inline-end: 0;
}

@media (min-width:48em) {
    .TestimonialStats blockquote {
        padding: 0 0 0 calc(var(--gap-sm) + 44px);
    }

    .TestimonialStats blockquote:before {
        margin-block-start: .5rem;
        margin-block-end: 0;
        position: absolute;
    }
}

.TestimonialStats .Posts__item {
    border-top: 1px solid var(--black-20);
    padding-top: calc(var(--gap) / 2);
}

.TestimonialStats .Posts__item:first-child {
    border: none;
    padding-top: 0;
}

@media (min-width:80em) {
    .TestimonialStats {
        grid-template-columns: 6fr 2fr;
    }

    .TestimonialStats .text-stat {
        font-size: 53px;
    }
}

.TestimonialStats .h3 {
    align-items: center;
    gap: 1rem;
    margin: 0;
    display: flex;
}

.TestimonialStats__card {
    gap: var(--gap-sm);
    flex-direction: column;
    display: flex;
}

@media (min-width:48em) {
    .TestimonialStats__card {
        background-color: var(--gray-light);
        flex-direction: row;
    }
}

@media (min-width:64em) {
    .TestimonialStats__card-content {
        padding: var(--gap-sm);
        flex: 1;
    }
}

.TestimonialStats__list {
    align-self: center;
    gap: calc(var(--gap) / 2);
    grid-template-columns: 100%;
    display: grid;
}

.TestimonialStats__list .Buttons {
    margin: 0 0 0 auto;
}

.Section--gray .TestimonialStats__list {
    background-color: var(--white);
    padding: var(--gap);
}

.Seciton--black .TestimonialStats__list {
    background-color: var(--white);
    padding: var(--gap);
}

.TimelineCarousel {
    --background: var(--black);
    --accent: var(--white);
}

.TimelineCarousel [data-flexscroll] {
    gap: var(--gap) 0;
    grid-template-columns: 100%;
}

.TimelineCarousel [data-flexscroll] .flexscroll-area {
    order: 0;
    grid-area: 1 / 1;
    position: relative;
    overflow-x: scroll;
}

.TimelineCarousel [data-flexscroll] .flexscroll-area:after {
    z-index: 1;
}

@media (max-width:calc(63.999em - .001px)) {
    .TimelineCarousel [data-flexscroll] .flexscroll-area {
        padding-bottom: 1rem;
        overflow: scroll visible;
    }

    .TimelineCarousel [data-flexscroll] .flexscroll-area::-webkit-scrollbar {
        width: unset;
        height: .5rem;
    }

    .TimelineCarousel [data-flexscroll] .flexscroll-area::-webkit-scrollbar-track {
        background: var(--gray-dark);
    }

    .TimelineCarousel [data-flexscroll] .flexscroll-area::-webkit-scrollbar-thumb {
        background: var(--gray-light);
    }

    .TimelineCarousel [data-flexscroll] .flexscroll-area::-webkit-scrollbar-thumb:hover {
        background: var(--carnegie-red);
    }

    .TimelineCarousel [data-flexscroll] .flexscroll-area:after {
        content: "";
        bottom: 0;
        right: 0;
        left: unset;
        transition: all var(--transition);
        background: linear-gradient(to right, #0000 0%, #000 80%);
        width: 35%;
        height: 100%;
        position: absolute;
    }

    .TimelineCarousel [data-flexscroll] .flexscroll-area:before {
        content: "";
        bottom: calc(50% - 8px);
        right: .5%;
        left: unset;
        width: unset;
        text-align: center;
        padding-bottom: unset;
        background-color: var(--white);
        color: var(--white);
        z-index: 2;
        transition: all var(--transition);
        height: 12px;
        padding-right: 30px;
        font-size: 16px;
        font-weight: 700;
        line-height: 24px;
        position: absolute;
        right: 0;
        transform: rotate(-90deg);
        -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) bottom / 1.25rem no-repeat;
        mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) bottom / 1.25rem no-repeat;
    }
}

@media (min-width:64em) {
    .TimelineCarousel [data-flexscroll] {
        gap: var(--gap);
        grid-template-columns: 16.75rem 1fr;
    }

    .TimelineCarousel [data-flexscroll] .flexscroll-area {
        height: 550px;
        overflow: visible scroll;
    }
}

.TimelineCarousel [data-flexscroll-viewport] {
    scroll-behavior: unset;
    grid-column: 1;
}

@media (min-width:64em) {
    .TimelineCarousel [data-flexscroll-viewport] {
        grid-column: 2;
        overflow: hidden;
    }
}

.TimelineCarousel [data-flexscroll-item] {
    position: relative;
}

.TimelineCarousel [data-flexscroll-item] figcaption {
    padding: var(--gap-sm);
    background-color: var(--gray-dark);
    color: var(--white);
    font: var(--body);
    visibility: visible;
    transform: translateY(0);
}

.TimelineCarousel [data-flexscroll-item] figcaption a {
    color: var(--white);
}

@media not (prefers-reduced-motion) {
    .TimelineCarousel [data-flexscroll-item] figcaption {
        transition: all .3s .8s;
    }
}

.TimelineCarousel [data-flexscroll-item] .Image img {
    opacity: 1;
    visibility: visible;
}

@media not (prefers-reduced-motion) {
    .TimelineCarousel [data-flexscroll-item] .Image img {
        transition: opacity .2s, transform .9s;
        transform: scale(1);
    }
}

.TimelineCarousel [data-flexscroll-item][inert] .Image img {
    opacity: 0;
    visibility: hidden;
    transform: scale(1.3);
}

@media not (prefers-reduced-motion) {
    .TimelineCarousel [data-flexscroll-item][inert] .Image img {
        transition: opacity .2s, transform .9s;
    }
}

@media (min-width:64em) {
    .TimelineCarousel [data-flexscroll-item][inert] figcaption {
        visibility: hidden;
        transform: translateY(100%);
    }
}

@media (min-width:64em) {
    .TimelineCarousel [data-flexscroll-item] figcaption {
        max-width: 538px;
        position: absolute;
        bottom: 0;
        right: 0;
    }
}

.TimelineCarousel [data-flexscroll-dots] {
    justify-content: space-between;
    width: 100%;
    margin: .75rem;
    display: flex;
    position: relative;
}

@media (min-width:64em) {
    .TimelineCarousel [data-flexscroll-dots] {
        flex-direction: column;
        width: auto;
    }
}

.TimelineCarousel [data-flexscroll-goto] {
    z-index: 1;
    color: var(--white);
    align-items: flex-start;
    gap: var(--gap-sm);
    background-color: #0000;
    border-color: #0000;
    border-radius: 0;
    flex-direction: column;
    width: 50vh;
    height: auto;
    display: flex;
    position: relative;
}

.TimelineCarousel [data-flexscroll-goto]:before {
    content: " ";
    background-color: var(--carnegie-red);
    transition: var(--transition);
    width: 10px;
    height: 10px;
}

.TimelineCarousel [data-flexscroll-goto]:after {
    content: " ";
    border-top: 1px dashed var(--white-40);
    z-index: -1;
    width: 100%;
    height: 1px;
    position: absolute;
    top: 5px;
    left: 5px;
}

.TimelineCarousel [data-flexscroll-goto] span {
    pointer-events: none;
}

.TimelineCarousel [data-flexscroll-goto] img {
    pointer-events: none;
}

.TimelineCarousel [data-flexscroll-goto] span {
    transition: var(--transition);
    font-size: .875rem;
    font-weight: 700;
}

.TimelineCarousel [data-flexscroll-goto] span:last-child {
    border-bottom: 3px solid var(--white);
    margin-right: var(--gap-sm);
}

.TimelineCarousel [data-flexscroll-goto] span:first-child {
    visibility: hidden;
    display: none;
}

@media (min-width:64em) {
    .TimelineCarousel [data-flexscroll-goto] {
        flex-direction: row;
        padding-bottom: 1rem;
    }

    .TimelineCarousel [data-flexscroll-goto]:after {
        content: " ";
        border-top: none;
        border-left: 1px dashed var(--white-40);
        width: 1px;
        height: 100%;
        position: absolute;
        top: 1px;
        left: 4px;
    }

    .TimelineCarousel [data-flexscroll-goto] span:first-child {
        visibility: visible;
        border: 4px solid var(--white);
        display: block;
    }

    .TimelineCarousel [data-flexscroll-goto] span:last-child {
        margin-right: 0;
    }
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] {
    z-index: 1;
    color: var(--white);
    align-items: flex-start;
    gap: var(--gap-sm);
    background-color: #0000;
    border-color: #0000;
    border-radius: 0;
    flex-direction: column;
    width: 50vh;
    height: auto;
    display: flex;
    position: relative;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"]:before {
    content: " ";
    background-color: var(--carnegie-red);
    transition: var(--transition);
    width: 10px;
    height: 10px;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"]:after {
    content: " ";
    border-top: 1px dashed var(--white-40);
    z-index: -1;
    width: 100%;
    height: 1px;
    position: absolute;
    top: 5px;
    left: 5px;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span {
    pointer-events: none;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] img {
    pointer-events: none;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span {
    transition: var(--transition);
    font-size: .875rem;
    font-weight: 700;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span:last-child {
    border-bottom: 3px solid var(--white);
    margin-right: var(--gap-sm);
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span:first-child {
    visibility: hidden;
    display: none;
}

@media (min-width:64em) {
    .TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] {
        flex-direction: row;
        padding-bottom: 1rem;
    }

    .TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"]:after {
        content: " ";
        border-top: none;
        border-left: 1px dashed var(--white-40);
        width: 1px;
        height: 100%;
        position: absolute;
        top: 1px;
        left: 4px;
    }

    .TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span:first-child {
        visibility: visible;
        border: 4px solid var(--white);
        display: block;
    }

    .TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span:last-child {
        margin-right: 0;
    }
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"]:before {
    background-color: var(--white);
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span:last-child {
    border-color: #0000;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"] span:first-child {
    border-color: #0000;
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"]:hover:before {
    background-color: var(--white);
}

.TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"]:hover span:last-child {
    border-color: var(--white);
}

@media (min-width:64em) {
    .TimelineCarousel [data-flexscroll-goto][data-flexscroll-goto="inert"]:hover span:first-child {
        border-color: var(--white);
    }
}

.TimelineCarousel [data-flexscroll-nav] {
    top: calc((var(--nav) / 2) + 70px + var(--gap));
}

@media (min-width:64em) {
    .TimelineCarousel [data-flexscroll-nav] {
        visibility: hidden;
        grid-column: 2;
        display: none;
    }
}

@media (min-width:64em) {
    .TimelineCarousel [data-flexscroll-prev] {
        order: unset;
    }
}

.TimelineCarousel [data-flexscroll-counter] {
    grid-column: span 2;
}

.Update {
    gap: var(--gap-sm);
    padding-block: var(--gap-sm);
    padding-inline: var(--wrap);
    grid-template-columns: 100%;
    display: grid;
    position: relative;
}

.Update .Common {
    width: calc(100% - (var(--gap-sm) + 44px));
}

@media (min-width:64em) {
    .Update {
        grid-template-columns: 3fr 2fr;
        align-items: center;
    }

    .Update .Common {
        width: 100%;
    }
}

.Update h2 {
    font: var(--h4);
    margin: 0;
}

.Update p {
    margin: 0;
}

.Update .Buttons {
    margin: 0;
}

@media (min-width:64em) {
    .Update .Buttons {
        padding-inline: var(--wrap) calc(var(--wrap) + (var(--gap-sm) + 2rem));
        justify-content: end;
        justify-self: end;
    }
}

.ContentSidebar .Update {
    margin-inline-start: 0;
    margin-inline-end: 0;
}

.Update__close {
    background: none;
    border: 0;
    justify-content: center;
    align-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    display: flex;
    position: absolute;
    top: 1rem;
    right: 1rem;
}

.Update__close:before {
    content: "";
    background: var(--white);
    transition: transform var(--transition);
    width: 20px;
    height: 20px;
    display: block;
    -webkit-mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg") center no-repeat;
    mask: url("https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg") center no-repeat;
}

.Update__close:hover:before {
    transform: scale(1.2);
}

@media (min-width:64em) {
    .Update__close {
        right: var(--wrap);
        top: unset;
    }
}

.VisualRouter {
    --grid-min: 100%;
    gap: var(--gap);
    grid-template-columns: repeat(auto-fit, minmax(var(--grid-min), 1fr));
    display: grid;
}

@media (min-width:48em) {
    .VisualRouter {
        --grid-min: 20rem;
    }
}

.VisualRouter__item {
    gap: var(--gap-sm);
    grid-template-rows: auto 1fr;
    grid-template-columns: 100%;
    display: grid;
}

.VisualRouter__item .Image {
    margin: 0;
}

.VisualRouter__item h3 {
    margin-top: 1.5rem;
}

.VisualRouter__item h3 a {
    color: inherit;
}

.VisualRouter__item a:has(.VisualRouter__title):hover .VisualRouter__title {
    color: var(--white);
}

.VisualRouter__item a:has(.VisualRouter__title):hover .VisualRouter__title:before {
    transform: none;
}

.VisualRouter__item a .VisualRouter__title {
    padding: .5rem var(--gap-sm);
    background-color: var(--white);
    color: var(--black);
    border-bottom: 4px solid var(--carnegie-red);
    line-height: 1;
    text-decoration: none;
    transition: all .3s cubic-bezier(.4, 0, .2, 1);
    display: inline-block;
    position: relative;
}

.VisualRouter__item a .VisualRouter__title:before {
    content: "";
    border-radius: inherit;
    background: var(--carnegie-red);
    transition: transform var(--transition);
    position: absolute;
    top: -.125rem;
    bottom: -.125rem;
    left: -.125rem;
    right: -.125rem;
    transform: translateY(100%);
}

.VisualRouter__item a .VisualRouter__title span {
    position: relative;
}

.VisualRouter__image {
    grid-template-areas: "stack";
    place-items: flex-end flex-start;
    height: -moz-fit-content;
    height: fit-content;
    display: grid;
    position: relative;
    overflow: hidden;
}

.VisualRouter__image .Image {
    grid-area: stack;
}

.VisualRouter__image .Image img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.VisualRouter__image .VisualRouter__title {
    grid-area: stack;
    place-content: flex-end;
    margin: 0;
}

.VisualRouter__title {
    font: var(--h4);
}

.VisualRouter__title.h5 {
    font: var(--h5);
}

.Widget {
    margin-block: var(--gap);
}

.Widget :where(h2) {
    font: var(--h4);
}

.Widget :where(h2) span {
    font-family: var(--source-serif);
    font-size: 1rem;
    font-weight: 300;
}

.Widget--bg {
    border-radius: var(--radius);
    background: var(--gray-light);
    padding: 2rem;
}

.Widget__list {
    grid-template-columns: 100%;
    gap: 1rem;
    padding: 0;
    list-style: none;
    display: grid;
}

.Widget__list li {
    align-items: center;
    gap: 1rem;
    display: flex;
}

.Widget__list a {
    color: inherit;
    font-weight: normal;
}

.Widget__icon {
    border: none;
    flex-shrink: 0;
    width: 1.125rem;
    display: inline-block;
}

a.Widget__icon svg {
    transition: transform var(--transition);
}

a.Widget__icon:hover svg {
    transform: scale(1.1);
}

.Widget__links ul {
    grid-template-columns: 100%;
    gap: 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
}

.Widget__links a {
    color: inherit;
}

.Header__search-toggle:before,
.Header__submit:before {
    -webkit-mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/search.svg);
    mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/search.svg);
}

:is(.Header__search-toggle, .Header__menu-toggle)[aria-expanded="true"]:before {
    -webkit-mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg);
    mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg);
}

.Header__menu-toggle:before {
    -webkit-mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/menu.svg);
    mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/menu.svg);
}

:is(.Buttons--alt .Button, .Button--alt):after {
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg) center / 80% no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg) center / 80% no-repeat;
}

.Header__mega-toggle:after,
.Subnav__subtoggle:before {
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) center / contain no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) center / contain no-repeat;
}

.Hero__control:before {
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/pause.svg) center / contain no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/pause.svg) center / contain no-repeat;
}

.Hero__control--paused:before {
    -webkit-mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg);
    mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg);
}

.Update__close:before {
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg) center no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg) center no-repeat;
}

[data-flexscroll-prev]:after {
    -webkit-mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg);
    mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg);
}

[data-flexscroll-next]:after {
    -webkit-mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg);
    mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg);
}

.Image [href^="https://youtu.be"]:after,
.Image [href^="https://www.youtube.com"]:after,
.Image [href^="https://vimeo.com"]:after,
.Image [href*="kaltura"]:after {
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg) center / 1.75rem 1.75rem no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg) center / 1.75rem 1.75rem no-repeat;
}

.Router a:after {
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg) center / 80% no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg) center / 80% no-repeat;
    min-width: 37px;
}

.Update__close:before {
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg) center no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg) center no-repeat;
}

.Accordion__toggle:before {
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) center / 1rem no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) center / 1rem no-repeat;
}

:is(.flickity-prev-next-button, .flickity-control).previous:after {
    -webkit-mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg);
    mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg);
}

:is(.flickity-prev-next-button, .flickity-control).next:after {
    -webkit-mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg);
    mask-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/arrow.svg);
}

.Form select {
    background: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) calc(100% - .75rem) / .75rem no-repeat;
}

.Form input[type="checkbox"]:checked:before {
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/check.svg) center / contain no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/check.svg) center / contain no-repeat;
}

.Finder__filter-toggle:after {
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) center / 1rem no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) center / 1rem no-repeat;
}

.Finder__checkbox:checked {
    background-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/check.svg);
}

.Accordion--minimal .Accordion__toggle:before {
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) center / .8125rem no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) center / .8125rem no-repeat;
}

.Automodal__close:before {
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg) center / 1rem no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/close.svg) center / 1rem no-repeat;
}

.paragraph--type--video-embed {
    overflow: visible;
}

.h2,
.h3 {
    margin-block-end: 1rem;
}

.Widget :where(.h2) {
    font: var(--h4);
}

.Update .h4 {
    margin: 0;
}

.text-eyebrow+.h2 {
    margin-top: 0;
}

.Accordion__toggle span {
    text-align: left;
}

.see-more a {
    --theme: var(--color, var(--black));
    border: 1px solid var(--theme) !important;
    transition: background var(--transition), color var(--transition);
    color: inherit !important;
    font: var(--text-button);
    letter-spacing: -.14px;
    text-align: center;
    z-index: 1;
    background: none;
    width: -moz-fit-content;
    width: fit-content;
    padding: .75rem 1.25rem;
    display: inline-block;
    position: relative;
    overflow: clip;
}

.see-more a:before {
    content: "";
    border-radius: inherit;
    background: var(--theme);
    transition: transform var(--transition);
    z-index: -1;
    position: absolute;
    top: -.125rem;
    bottom: -.125rem;
    left: -.125rem;
    right: -.125rem;
    transform: translateY(100%);
}

.see-more a:hover {
    color: var(--background, var(--white)) !important;
}

.see-more a:hover:before {
    transform: none;
}

.Events {
    display: block;
    padding-bottom: 0 !important;
    overflow: hidden;
}

.Events .featured_events_list {
    display: grid;
    gap: var(--gutter) calc(var(--gutter)* 2);
    grid-template-columns: 1fr 1fr;
    overflow: visible;
}

.Events .featured_events_list .see-more {
    text-align: center;
    padding-top: 50px;
    padding-bottom: 50px;
    background: var(--gray-light);
    grid-column: 1 / span 2;
    width: calc(100% + 130px);
    margin-left: -65px;
}

.Events .featured_events_list>div[class*="clean_markup"] {
    grid-column: 1 / span 2;
    display: grid;
    gap: var(--gutter) calc(var(--gutter)* 2);
    grid-template-columns: 1fr 1fr;
    overflow: visible;
}

.Events .featured_events_list .row {
    border-bottom: 1px solid var(--black-10);
    padding-bottom: var(--gap-sm);
    gap: 0;
    grid-template-columns: 100%;
    display: grid;
    align-content: flex-start;
    position: relative;
}

.Events .featured_events_list>.row>.cal_date {
    border: none;
    outline: none;
}

.Events .featured_events_list .cal_date .cal_date,
.Events .featured_events_list .cal_date .formatted_event_date {
    background-color: var(--gray-light);
    padding: .5rem .25rem;
    flex-direction: row;
}

.Events .featured_events_list .cal_date .cal_date .cal_date_month,
.Events .featured_events_list .cal_date .cal_date .cal_date_day {
    background-color: transparent;
    color: var(--carnegie-red);
    font: var(--meta);
    word-wrap: normal;
    text-transform: capitalize;
    padding: 0 !important;
    font-weight: 700;
}

.Events .featured_events_list .cal_date .formatted_event_date {
    color: var(--carnegie-red);
    font: var(--meta);
    word-wrap: normal;
    font-weight: 700;
}

.Events .featured_events_list .row+.row {
    margin-top: 0 !important;
}

.Events .featured_events_list .info {
    margin-top: 24px;
}

.Events .featured_events_list .info .lw_events_title a {
    transition: box-shadow var(--transition);
    box-shadow: 0 .0625rem #0000;
    text-decoration: none;
    font: var(--h4);
    font-weight: 400;
}

.Events .featured_events_list .info .lw_events_title a:after {
    content: "";
    z-index: 1;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

.Events .featured_events_list .info .lw_events_until {
    display: none;
}

.Events .featured_events_list .info .lw_events_title a:hover {
    box-shadow: 0 .0625rem;
}

.Finder__filters .views-element-container {
    flex: 1;
}

.Table__stack table {
    min-width: 35rem;
}

.flush>.Table__stack> :first-child {
    margin-top: 0;
}

.FeaturedPosts__card figure.Image:before {
    z-index: 1;
}

.FeaturedPosts__card figure.Image>.views-field-field-media>.field-content {
    height: 100%;
    position: absolute;
}

.FeaturedPosts__card .FeaturedPosts__content {
    z-index: 2;
}

.align-right {
    float: right;
    margin-left: 2rem;
}

.align-left {
    float: left;
    margin-right: 2rem;
}

figure figcaption {
    padding-block-start: 1rem;
}

.CTAPanel .Common a:not(.Button) {
    color: var(--white);
}

.field--name-field-intro-text .field__item {
    clear: both;
}

.paragraph--type--wysiwyg> :first-child {
    margin-top: 0;
}

.block-core .tabs.primary {
    margin: 20px 50px;
}

.block-core .tabs.primary li {
    display: inline-block;
    padding: 0 5px;
    margin: 0 5px;
}

.block-core .tabs.primary li a {
    text-decoration: underline;
}

.node__submitted {
    margin: 5px 30px;
}

.Header__form-wrapper #edit-actions {
    pointer-events: none;
    display: none;
}

.Header__logo-wrapper {
    min-height: 3.75rem;
}

.contextual-links[hidden] {
    display: none;
}

.region-highlighted,
footer.node__meta {
    padding-inline: var(--wrap);
}

.platforms span.fab.fa-2x {
    font-size: 24px;
}

.Footer__brand-main a {
    border: 1px solid var(--theme);
}

.paragraph--type--video-embed img,
.paragraph--type--full-width-image img {
    width: 100%;
}

picture img {
    width: 100%;
}

#load-items .Page__item {
    display: none;
}

#load-items .Page__item.show {
    display: grid;
}

#load-items .Page__item.FacultyCard.show {
    display: flex;
}

.CheckList__content .Button {
    margin-top: 48px;
    margin-bottom: 48px;
}

button.hide {
    display: none;
}

.flush .view-content> :last-child {
    margin-bottom: 0;
}

.flush .view-content> :first-child {
    margin-top: 0;
}

.FeaturedPosts .Posts__item .Image * {
    height: 100%;
}

.Header__form-wrapper input[type=text] {
    border: 1px solid var(--black) !important;
    background: none !important;
    width: 100% !important;
    height: 40px !important;
    padding: 1px 4rem 1px 1.5rem !important;
    display: block;
    position: relative;
    margin: 0 !important;
}

.Header__form-wrapper .gsc-input-box {
    border: none;
    margin: 0;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 40px;
    padding: 0;
}

.Header__form-wrapper .gsc-input-box td {
    padding: 0;
}

.Header__form-wrapper .gsc-search-button>button {
    background: var(--carnegie-red);
    border: 0;
    padding: 0;
    position: absolute;
    top: 0;
    right: 0;
    cursor: pointer;
    height: 40px;
    left: auto;
    border-radius: 0;
}

.Header__form-wrapper .gsc-search-button>button svg {
    display: none;
}

.Header__form-wrapper .gsc-search-button>button:before {
    content: "";
    background: var(--white);
    width: 42px;
    height: 40px;
    display: block;
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/search.svg) center / 1.5rem no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/search.svg) center / 1.5rem no-repeat;
    border: 1px solid var(--carnegie-red);
}

.Header__utility--mobile .menu--utility {
    order: 2;
}

.Header__utility--mobile .menu--actions-menu {
    order: 1;
}

.Header__utility--mobile .Header__audience {
    justify-content: center;
}

.Header__form-wrapper form.gsc-search-box {
    position: relative;
    max-width: 520px;
    height: 40px;
    z-index: inherit;
}

.Header__form-wrapper td.gsib_b {
    position: absolute;
    right: 40px;
    top: 8px;
}

body>table.gstl_50.gssb_c {
    margin-top: 90px;
}

body.user-logged-in .Header__logo>*:first-child,
body.path-user .Header__logo>*:first-child {
    visibility: visible;
    opacity: 1;
    width: 100%;
    height: 3rem;
    padding: .5rem 0;
}

body.user-logged-in .Header__logo>*:last-child,
body.path-user .Header__logo>*:last-child {
    visibility: hidden;
    opacity: 0;
    height: 0;
}

body.user-logged-in .Header__logo,
body.path-user .Header__logo {
    width: 240px;
    height: 100%;
}

body.user-logged-in :is(.Header--college .Header__logo)>*:nth-child(2),
body.path-user :is(.Header--college .Header__logo)>*:nth-child(2) {
    visibility: visible;
    opacity: 1;
    width: 100%;
    height: 3rem;
    transition: opacity .4s 1.2s, visibility 0s 1.2s;
    transform: none;
}

form.user-register-form,
form.user-pass,
form.user-login-form {
    gap: 25px;
    margin-block: var(--panel);
    padding-inline: var(--wrap);
    grid-template-columns: 100%;
    display: grid;
    max-width: fit-content;
}

button.form-submit {
    --theme: var(--color, var(--black));
    border: 1px solid var(--theme);
    transition: background var(--transition), color var(--transition);
    color: inherit;
    font: var(--text-button);
    letter-spacing: -.14px;
    text-align: center;
    z-index: 1;
    background: none;
    width: -moz-fit-content;
    width: fit-content;
    padding: .75rem 1.25rem;
    display: inline-block;
    position: relative;
    overflow: clip;
}

button.form-submit::before {
    content: "";
    border-radius: inherit;
    background: var(--theme);
    transition: transform var(--transition);
    z-index: -1;
    position: absolute;
    top: -.125rem;
    bottom: -.125rem;
    left: -.125rem;
    right: -.125rem;
    transform: translateY(100%);
}

button.form-submit:hover {
    color: var(--background, var(--white));
}

button.form-submit:hover:before {
    transform: none;
}

form.user-register-form .form-item>label,
form.user-pass .form-item>label,
form.user-login-form .form-item>label {
    font-size: 100%;
    display: block;
    font-weight: 600 !important;
}

input[type="password"],
input[type="text"],
input[type="email"] {
    border: 1px solid var(--black);
    padding: .5rem 1rem;
    font-weight: 600 !important;
}

form.user-register-form .form-item input+.description,
form.user-pass .form-item input+.description,
form.user-login-form .form-item input+.description {
    font-size: 12px;
    margin-left: 10px;
    margin-right: 10px;
    margin-top: 15px;
}

.VisualRouter__item {
    align-content: flex-start;
}

.ContentSidebar__content p :is(a:not([class])),
.CheckList__grid .CheckList__content :is(a:not([class])),
.paragraph--type--wysiwyg :is(a:not([class])),
.paragraph--type--p-wysiwyg :is(a:not([class])),
.columns :is(a:not([class])),
.theme-dark .ResearchPanel__stat :is(a:not([class])),
.ResearchPanel__stat :is(a:not([class])) {
    color: var(--carnegie-red);
    transition: box-shadow var(--transition), text-shadow var(--transition);
    font-weight: 600;
    box-shadow: 0 .0625rem;
}

.RFIPanel p :is(a:not([class])),
.CheckList__header :is(a:not([class])),
.Section--black :is(a:not([class])),
.theme-dark :is(a:not([class])) {
    color: var(--color);
    -webkit-text-decoration-color: var(--color);
    text-decoration-color: var(--color);
    font-weight: 600;
    box-shadow: 0 .0625rem;
}

.RFIPanel p :is(a:not([class])):hover,
.CheckList__grid .CheckList__content :is(a:not([class])):hover,
.ContentSidebar__content p :is(a:not([class])):hover,
.CheckList__header a:is(a:not([class])):hover,
.paragraph--type--wysiwyg :is(a:not([class])):hover,
.paragraph--type--p-wysiwyg :is(a:not([class])):hover,
.columns :is(a:not([class])):hover,
.theme-dark :is(a:not([class])):hover,
.Section--black :is(a:not([class])):hover,
.ResearchPanel__stat :is(a:not([class])):hover {
    text-shadow: .5px 0;
    box-shadow: 0 .125rem;
}

.paragraph--type--styled-intro-text>.Section.Section--white,
.paragraph--type--p-wysiwyg.Section.Section--white {
    padding: 0;
}

.Events {
    display: block;
    padding-bottom: 0 !important;
    overflow: hidden;
}

.FeaturedPosts .h2 {
    margin-bottom: 0;
}

.FeaturedPosts__card .featured_events_list .row+.row,
.FeaturedPosts .see-more {
    display: none !important;
}

.FeaturedPosts .featured_events_list {
    align-self: center;
    grid-template-columns: 100%;
    display: grid;
    background-color: var(--white);
    gap: 2rem;
}

.FeaturedPosts .featured_events_list .row {
    gap: 0;
    grid-template-columns: 100%;
    display: grid;
    position: relative;
}

.FeaturedPosts .featured_events_list>.row>.cal_date {
    border: none;
    outline: none;
    margin-bottom: 1rem;
    margin-top: 0;
}

.FeaturedPosts .featured_events_list .cal_date .cal_date,
.FeaturedPosts .featured_events_list .cal_date .formatted_event_date {
    background-color: var(--gray-light);
    padding: .5rem .25rem;
    flex-direction: row;
    font: var(--meta);
    display: flex;
}

.FeaturedPosts .featured_events_list .cal_date .cal_date .cal_date_month,
.FeaturedPosts .featured_events_list .cal_date .cal_date .cal_date_day {
    background-color: transparent;
    color: var(--carnegie-red);
    font: var(--meta);
    word-wrap: normal;
    text-transform: capitalize;
    padding: 0 !important;
    font-weight: 700;
}

.FeaturedPosts .featured_events_list .cal_date .formatted_event_date {
    color: var(--carnegie-red);
    font: var(--meta);
    word-wrap: normal;
    font-weight: 700;
}

.FeaturedPosts .featured_events_list .row+.row {
    margin-top: 0 !important;
}

.FeaturedPosts .featured_events_list .info .lw_events_title a {
    text-decoration: none;
    color: var(--black);
    font: var(--h5);
    font-size: 1.125rem;
    font-weight: 400;
    transition: box-shadow var(--transition), text-shadow var(--transition);
    background: none;
    border-color: #0000;
    padding: 0;
    box-shadow: 0 .0625rem;
}

.FeaturedPosts .featured_events_list .info .lw_events_title a:hover {
    text-shadow: .5px 0;
    box-shadow: 0 .125rem;
}

.FeaturedPosts .featured_events_list .info .lw_events_title a:after {
    content: "";
    z-index: 1;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
}

.FeaturedPosts .featured_events_list .info .lw_events_until {
    display: none;
}

.FeaturedPosts .featured_events_list .info .lw_events_title a:hover {
    box-shadow: 0 .0625rem;
}

.FeaturedPosts>.views-element-container {
    align-self: center;
    display: grid;
}

button.Automodal__close:focus {
    outline-color: var(--white, var(--white));
}

.active-filter {
    cursor: pointer;
}

.active-filter:after {
    content: 'x';
}

.flexscroll-area.with-scroll.fix-scroll {
    overflow: auto;
}

.paragraph--type--styled-intro-text .paragraph--type--wysiwyg .basic-html strong,
.paragraph--type--styled-intro-text .paragraph--type--wysiwyg .basic-html b {
    font: var(--h2);
}

.paragraph--type--styled-intro-text .paragraph--type--wysiwyg .basic-html p {
    font: var(--text-intro);
}

.mb-5 {
    margin-bottom: 1rem;
}

.Accordion__content .mb-5:last-of-type(1) {
    margin-bottom: 0;
}

.ContentSidebar.wysiwyg {
    margin-top: 72px;
    margin-bottom: 27px;
}

.paragraph--type--router-panel.Section--black .Router li {
    background: linear-gradient(var(--black-20), var(--black-20)) 0 100% / 0 .0625rem no-repeat;
    background-size: 100% .0625rem;
}

.paragraph--type--router-panel.Section--black .Router a {
    box-shadow: none;
    border-bottom: none;
}

.paragraph--type--sidebar-wysiwyg a:not(.Button) {
    transition: box-shadow var(--transition), text-shadow var(--transition);
    background: none;
    border-color: #0000;
    padding: 0;
    box-shadow: 0 .0625rem;
}

.paragraph--type--sidebar-wysiwyg a:not(.Button):hover {
    text-shadow: .5px 0;
    box-shadow: 0 .125rem;
}

.paragraph--type--visual-router-card>a {
    box-shadow: none !important;
}

.Footer__nav>div>p>a {
    margin: 0;
    padding-block-start: 0;
    padding-block-end: .875rem;
    font-weight: 700;
    transition: background-position var(--transition);
    background: linear-gradient(-90deg, #fff 50%, #c41230 50%) 100% calc(100% + 2px) / 200% 3px no-repeat;
    margin-bottom: -14px;
    display: block;
    padding-top: 0;
}

.Footer__nav>div>p>a:hover {
    background-position-x: 0;
}

.Subnav__menu a.link-underline-swipe.is-active {
    font-weight: bold;
}

.ContentSidebar__subnav .Subnav .Subnav__heading a {
    background: linear-gradient(currentColor, currentColor) 0 100% / 0 .0625rem no-repeat;
}

.ContentSidebar__subnav .Subnav .Subnav__heading a:hover {
    background-size: 100% .0625rem;
    text-decoration: none;
}

.FeaturedPosts__list .Posts__item>.flush {
    width: 100%;
}

.VisualRouter__item a .VisualRouter__title:before {
    right: 0;
}

.cdn_video {
    width: 100%;
    transform: translateY(-50%);
    top: 50%;
    position: relative;
}

.Image [href^="https://cmu.widen.net"] {
    border-radius: var(--radius);
    display: block;
    position: relative;
}

.Image [href^="https://cmu.widen.net"]:before {
    background: var(--carnegie-red);
    border-radius: 50%;
    content: "";
    transition: transform var(--transition);
    z-index: 1;
    width: 5rem;
    height: 5rem;
    position: absolute;
    top: calc(50% - 2.5rem);
    left: calc(50% - 2.5rem);
}

.Image [href^="https://cmu.widen.net"]:after {
    content: "";
    transition: transform var(--transition);
    z-index: 1;
    width: 5rem;
    height: 5rem;
    position: absolute;
    top: calc(50% - 2.5rem);
    left: calc(50% - 2.5rem);
    -webkit-mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg) center / 1.75rem 1.75rem no-repeat;
    mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/play.svg) center / 1.75rem 1.75rem no-repeat;
    background: var(--white);
}

.Image [href^="https://cmu.widen.net"]:hover:after,
.Image [href^="https://cmu.widen.net"]:hover:before {
    transform: scale(1.1);
}

figure figcaption {
    font: var(--text-small);
    padding-block-start: 1rem;
    padding-block-end: 0;
}

.text-stat span.small_text {
    font: var(--text-stat);
    font-size: 2rem;
}

.FacultyCard__name a {
    font-weight: inherit;
    font-size: inherit;
}

.FeaturedPosts .FeaturedPosts__list .FeaturedPosts__list {
    padding: 0;
}

.FeaturedPosts__list .views-element-container,
.FeaturedPosts__list .view-content,
.FeaturedPosts__list .view-rss-news-latest-news {
    height: 100%;
}

.FeaturedPosts .FeaturedPosts__list.stretch-news {
    place-content: stretch;
}

.FacultyCard__details.Common a {
    color: var(--color) !important;
}

.FacultyCard__name a {
    font-weight: inherit !important;
}

.paragraph--type--p-wysiwyg,
.paragraph--type--wysiwyg {
    word-wrap: normal;
    overflow-wrap: normal;
    white-space: normal;
}

.FacultyCard .FacultyCard__contact a,
.Hero--faculty .columns a {
    word-wrap: break-word;
    word-break: break-word;
}

.Header__grid ul li a {
    background: linear-gradient(-90deg, #0000 50%, currentColor 50%) 100% calc(100% + 1px) / 300% .0625rem no-repeat;
}

@media (min-width:85em) {

    body.user-logged-in .Header__logo,
    body.path-user .Header__logo {
        width: 472px;
        height: 3rem;
    }

    body.user-logged-in .Header.Header--college .Header__logo,
    body.path-user .Header.Header--college .Header__logo {
        width: 132px;
        height: 3rem;
    }
}

@media (min-width:48em) {
    .Testimonial__text:before {
        background-image: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/quote.svg);
    }

    .Hero--faculty .Common picture {
        order: 4;
        grid-area: 4 / 2 / 1;
        width: auto;
        max-width: 174px;
        margin-bottom: 0;
    }
}

@media (min-width:64em) {
    .Hero--faculty .Common picture {
        order: 4;
        grid-area: 5 / 2 / 1;
        align-self: flex-end;
        max-width: 416px;
    }

    .Hero--home :is(.Hero .Common).without-cta {
        justify-content: space-between;
    }

    .Section__header p.text-intro {
        max-width: 732px;
    }

    .paragraph--type--vertical-tabs .Section__header p {
        margin: 16px 0;
    }

    .paragraph--type--vertical-tabs .Section__header p:first-child {
        margin-top: 0;
    }
}

@media (min-width:80em) {
    .Hero--faculty .Common picture {
        max-width: 450px;
        height: 100%;
    }

    .Header__frequent {
        display: flex;
        flex-wrap: wrap;
    }

    body.user-logged-in .Header--college .Header__college-title,
    body.path-user .Header--college .Header__college-title {
        padding-left: calc(132px + 1rem) !important;
    }

    body.user-logged-in .Header.Header--college .Header__logo,
    body.path-user .Header.Header--college .Header__logo {
        width: 132px;
    }
}

@media (max-width:511px) {

    .FacultyCard .Image img,
    .FacultyCard .Image {
        width: 107px;
    }

    .FacultyCard:has(.Image) {
        grid-template-columns: 1fr auto;
    }
}

@media (max-width:calc(63.999em - 0.001px)) {
    .TimelineCarousel [data-flexscroll] .flexscroll-area:before {
        mask: url(https://www.cmu.edu/themes/custom/cmu_base/dist/assets/caret-down.svg) bottom / 1.25rem no-repeat
    }
}