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

:before, :after {
  text-decoration: inherit;
  vertical-align: inherit;
}

html {
  cursor: default;
  tab-size: 4;
  -webkit-tap-highlight-color: transparent;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  word-break: break-word;
  line-height: 1.5;
}

body {
  margin: 0;
}

h1 {
  margin: .67em 0;
  font-size: 2em;
}

dl dl, dl ol, dl ul, ol dl, ul dl, ol ol, ol ul, ul ol, ul ul {
  margin: 0;
}

hr {
  color: inherit;
  height: 0;
  overflow: visible;
}

main {
  display: block;
}

nav ol, nav ul {
  padding: 0;
  list-style: none;
}

nav li:before {
  content: "​";
}

pre {
  -ms-overflow-style: scrollbar;
  font-family: monospace;
  font-size: 1em;
  overflow: auto;
}

a {
  background-color: #0000;
}

abbr[title] {
  text-decoration: underline dotted;
}

b, strong {
  font-weight: bolder;
}

code, kbd, samp {
  font-family: monospace;
  font-size: 1em;
}

audio, canvas, iframe, img, svg, video {
  vertical-align: middle;
}

audio, video {
  display: inline-block;
}

audio:not([controls]) {
  height: 0;
  display: none;
}

iframe, img {
  border-style: none;
}

svg:not([fill]) {
  fill: currentColor;
}

svg:not(:root) {
  overflow: hidden;
}

table {
  border-collapse: collapse;
  border-color: inherit;
  text-indent: 0;
}

button, input, select {
  margin: 0;
}

button {
  text-transform: none;
  overflow: visible;
}

button, [type="button"], [type="reset"], [type="submit"] {
  -webkit-appearance: button;
}

fieldset {
  border: 1px solid #a0a0a0;
  padding: .35em .75em .625em;
}

input {
  overflow: visible;
}

legend {
  color: inherit;
  white-space: normal;
  max-width: 100%;
  display: table;
}

progress {
  vertical-align: baseline;
  display: inline-block;
}

select {
  text-transform: none;
}

textarea {
  resize: vertical;
  resize: block;
  margin: 0;
  overflow: auto;
}

[type="checkbox"], [type="radio"] {
  padding: 0;
}

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

::-webkit-inner-spin-button {
  height: auto;
}

::-webkit-outer-spin-button {
  height: auto;
}

::-webkit-input-placeholder {
  color: inherit;
  opacity: .54;
}

::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

:-moz-focusring {
  outline: 1px dotted buttontext;
}

:-moz-ui-invalid {
  box-shadow: none;
}

details {
  display: block;
}

dialog {
  color: #000;
  background-color: #fff;
  border: solid;
  width: fit-content;
  height: fit-content;
  margin: auto;
  padding: 1em;
  display: block;
  position: absolute;
  left: 0;
  right: 0;
}

dialog:not([open]) {
  display: none;
}

summary {
  display: list-item;
}

canvas {
  display: inline-block;
}

template {
  display: none;
}

a, area, button, input, label, select, summary, textarea, [tabindex] {
  -ms-touch-action: manipulation;
}

[hidden] {
  display: none;
}

[aria-busy="true"] {
  cursor: progress;
}

[aria-controls] {
  cursor: pointer;
}

[aria-disabled="true"], [disabled] {
  cursor: not-allowed;
}

[aria-hidden="false"][hidden] {
  display: initial;
}

[aria-hidden="false"][hidden]:not(:focus) {
  clip: rect(0, 0, 0, 0);
  position: absolute;
}

:root {
  --gridColumns: 6;
  --gridGap: 15px;
  --marginLeft: 20px;
  --marginRight: 58px;
  --slot: 68px;
}

@media (width >= 800px) {
  :root {
    --gridColumns: 12;
    --gridGap: 30px;
    --marginLeft: 40px;
    --marginRight: 86px;
  }
}

::selection {
  color: #000;
  text-shadow: none;
  background-color: #e82e21fc;
}

:root {
  scroll-padding-top: calc(56.25vw + var(--gridGap));
}

@media (width >= 800px) {
  :root {
    scroll-padding-top: var(--gridGap);
  }
}

html {
  color: #000;
  background-color: #fff;
}

html, body {
  width: 100%;
}

button {
  color: inherit;
  background-color: #0000;
  border: none;
  margin: 0;
  padding: 0;
}

ul, ol {
  margin: 0;
  padding: 0;
}

a, a:link, a:visited, a:hover, a:active {
  color: inherit;
  text-decoration: none;
}

html.js .noscript {
  display: none;
}

html.noscroll {
  position: fixed;
  left: 0;
  right: 0;
  overflow-y: scroll;
}

[data-sizing-element] {
  z-index: 1;
  position: relative;
}

@media (width >= 320px) {
  [data-sizing-element] {
    z-index: 2;
  }
}

@media (width >= 500px) {
  [data-sizing-element] {
    z-index: 3;
  }
}

@media (width >= 800px) {
  [data-sizing-element] {
    z-index: 4;
  }
}

@media (width >= 1000px) {
  [data-sizing-element] {
    z-index: 5;
  }
}

@media (width >= 1400px) {
  [data-sizing-element] {
    z-index: 6;
  }
}

@media print {
  *, :before, :after {
    color: #000 !important;
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    background: none !important;
  }

  a, a:visited {
    text-decoration: underline;
  }

  a[href]:after {
    content: " (" attr(href) ")";
  }

  a[href^="#"]:after {
    content: "";
  }

  img {
    page-break-inside: avoid;
  }
}

@font-face {
  font-family: gt-america;
  src: url("../GT-America-Standard-Regular.1f28c3c5.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: gt-america;
  src: url("../GT-America-Standard-Regular-Italic.6b212293.woff2") format("woff2");
  font-weight: normal;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: gt-america-mono;
  src: url("../GT-America-Mono-Light.89d7ae67.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: topol-bold;
  src: url("../topol_bold-webfont.a25b5826.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

html {
  letter-spacing: 0;
  text-rendering: optimizelegibility;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-kerning: normal;
  font-feature-settings: "kern", "liga", "clig", "calt";
  tab-size: 2;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  word-wrap: break-word;
  word-break: break-word;
  overflow-wrap: break-word;
  font-family: gt-america, Helvetica Neue, HelveticaNeue, Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: normal;
  line-height: 1.4;
}

h1, h2, h3, h4, h5, h6 {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  margin-top: 0;
  margin-bottom: 0;
}

i, em {
  font-style: italic;
}

b, strong {
  font-family: topol-bold, Helvetica, Arial, sans-serif;
  font-weight: 700;
}

p {
  margin-top: 0;
  margin-bottom: .5em;
}

sup {
  font-size: 75%;
  line-height: 0;
}

small {
  font-size: 75%;
}

input {
  word-break: normal;
}

.lazyload, .lazyloading {
  opacity: 0;
}

.lazyloaded {
  opacity: 1;
  transition: all .5s ease-out;
}

[data-page-new] {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
}

[data-page-out] {
  opacity: 0;
  transition: transform .8s cubic-bezier(.55, .085, .68, .53), opacity .3s ease-out .4s;
  transform: translateY(-60px);
}

[data-page-in] {
  opacity: 1;
  transition: opacity .25s ease-in;
}

@keyframes loading-entry {
  to {
    opacity: .5;
  }
}

@keyframes loading-pulse {
  0% {
    opacity: .5;
  }

  50% {
    opacity: .75;
  }

  100% {
    opacity: .5;
  }
}

html[data-loading] {
  cursor: progress;
}

html[data-loading] * {
  pointer-events: none;
}

html[data-loading] [data-page-container] main {
  animation: .5s ease-out .5s forwards loading-entry, 3s ease-in-out 1s infinite loading-pulse;
}

.Cable {
  z-index: 10;
  pointer-events: none;
  border: 1px solid red;
  width: 100%;
  height: 100%;
  display: none;
  position: fixed;
  top: 0;
  left: 0;
}

.Cable svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 2px;
  stroke-linecap: round;
  width: 100%;
  height: 100%;
}

.Carousel {
  --carousel-chunk-size: 3;
  margin-top: var(--gridGap);
  grid-template-columns: 1fr;
  display: grid;
  position: relative;
}

@media (width >= 800px) {
  .Carousel {
    --carousel-chunk-size: 2;
  }

  .Home[data-desktop-layout] .Carousel {
    --carousel-chunk-size: 3;
  }
}

.Carousel-slide {
  grid-area: 1 / 1;
  grid-template-columns: repeat(var(--carousel-chunk-size), 1fr);
  gap: var(--gridGap);
  display: grid;
}

@media (width >= 800px) {
  .Carousel-slide {
    gap: calc(var(--gridGap) / 2);
  }
}

.Carousel-slide {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .25s cubic-bezier(.25, .46, .45, .94), visibility 0s linear .25s;
}

.Carousel-slide[aria-hidden="false"] {
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
  transition: opacity .25s cubic-bezier(.25, .46, .45, .94);
}

.Carousel a {
  transition: opacity .25s cubic-bezier(.25, .46, .45, .94);
}

.Carousel a:hover, .Carousel a:focus-visible {
  opacity: .5;
}

.Carousel img {
  width: 100%;
}

@keyframes carousel-ring-fill {
  from {
    stroke-dashoffset: 100.53px;
  }

  to {
    stroke-dashoffset: 0;
  }
}

.Carousel-playpause {
  cursor: pointer;
  z-index: 1;
  width: 28px;
  height: 28px;
  transform: translateX(calc(100% + var(--gridGap)));
  transition: opacity .15s cubic-bezier(.25, .46, .45, .94);
  position: absolute;
  top: 0;
  right: 0;
}

.Home[data-desktop-layout] .Carousel-playpause {
  right: unset;
  transform: translateY(calc(-100% - var(--gridGap) / 2));
  left: 0;
}

pfg-carousel[single-slide] .Carousel-playpause {
  display: none;
}

.Carousel-playpause:hover, .Carousel-playpause:focus-visible {
  opacity: .5;
}

.Carousel-playpause-label {
  clip: rect(0 0 0 0);
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.Carousel-indicator-svg {
  width: 100%;
  height: 100%;
  display: block;
}

.Carousel-indicator-track {
  fill: none;
  stroke: #eaeaea;
  stroke-width: 2px;
}

.Carousel-indicator-progress {
  fill: none;
  stroke: currentColor;
  stroke-width: 2px;
  stroke-dasharray: 100.53;
  stroke-dashoffset: 100.53px;
  transform-origin: 50%;
  animation: none;
  transform: rotate(-90deg);
}

@media (prefers-reduced-motion: reduce) {
  .Carousel-indicator-progress {
    animation: none !important;
  }
}

pfg-carousel[data-indicator-running] .Carousel-indicator-progress {
  animation: carousel-ring-fill var(--carousel-interval, 6s) cubic-bezier(.455, .03, .515, .955) 1 forwards;
}

pfg-carousel[is-paused] .Carousel-indicator-progress {
  animation-play-state: paused;
}

.Carousel-playpause .svg-pause, .Carousel-playpause .svg-play {
  fill: currentColor;
  position: absolute;
  top: 50%;
  left: 50%;
}

.Carousel-playpause .svg-pause {
  width: 8px;
  height: 10px;
  transform: translate(-50%, -50%);
}

.Carousel-playpause .svg-play {
  width: 9px;
  height: 10px;
  display: none;
  transform: translate(-40%, -50%);
}

pfg-carousel[user-paused] .Carousel-playpause .svg-pause {
  display: none;
}

pfg-carousel[user-paused] .Carousel-playpause .svg-play {
  display: block;
}

.Curve {
  z-index: 30;
  pointer-events: none;
  width: 100%;
  height: 100%;
  display: block;
  position: fixed;
  top: 0;
  left: 0;
}

.Curve svg {
  width: 100%;
  height: 100%;
  color: var(--highlight);
  transition: color .25s cubic-bezier(.25, .46, .45, .94);
}

.Home {
  width: 100%;
  max-width: 1400px;
  padding-right: var(--marginRight);
  padding-left: var(--marginLeft);
  margin-left: auto;
  margin-right: auto;
  transition: opacity 1s cubic-bezier(.25, .46, .45, .94);
}

@media (width >= 800px) {
  .Home {
    grid-template-columns: repeat(var(--gridColumns), 1fr);
    gap: var(--gridGap);
    row-gap: 0;
    display: grid;
  }
}

html[data-has-modal] .Home > :not(.Video--home) {
  opacity: .33;
}

.Home-media {
  z-index: 10;
  position: sticky;
  top: 0;
}

@media (width >= 800px) {
  .Home-media {
    grid-column: 1 / 9;
    align-self: start;
  }
}

.Home-top {
  margin-top: 24px;
}

@media (width >= 800px) {
  .Home-top {
    grid-area: 1 / 9 / auto / 13;
    width: calc(100% + 20px);
    margin-top: 27px;
    padding-top: 3px;
    padding-left: 20px;
    position: relative;
    left: -20px;
  }
}

.Home-index {
  text-transform: uppercase;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
}

@media (width >= 1000px) {
  .Home-index {
    font-size: 35px;
  }
}

.Home-title, .Home-subtitle {
  margin-bottom: 20px;
  font-family: topol-bold, Helvetica, Arial, sans-serif;
  font-size: 18px;
  font-weight: 400;
}

.Home-title .red {
  color: #e82e21;
}

.Home-index li {
  -webkit-user-select: none;
  user-select: none;
  font-family: topol-bold, Helvetica, Arial, sans-serif;
  font-weight: 400;
}

.Home-index li:not(:last-child) {
  margin-bottom: .5em;
}

.Home-index a:hover, .Home-index a:focus {
  text-decoration: underline;
}

.Home-intro {
  margin-top: 60px;
  margin-bottom: 70px;
  font-size: 21px;
  line-height: 1.4;
}

.Home-intro a {
  text-decoration: underline;
  transition: all .15s cubic-bezier(.25, .46, .45, .94);
}

.Home-intro a:hover, .Home-intro a:focus-visible {
  color: var(--highlight);
}

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

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

.Home-intro hr {
  background-color: currentColor;
  border: none;
  width: 100%;
  height: 1px;
  margin-top: 2em;
  margin-bottom: 2em;
  display: block;
}

.Home-intro ol, .Home-intro ul {
  margin-bottom: 1em;
  margin-left: 1em;
}

.Home-intro li:not(:last-of-type) {
  margin-bottom: .25em;
}

.Home-intro h1, .Home-intro h2, .Home-intro h3, .Home-intro h4, .Home-intro h5, .Home-intro h6 {
  margin-top: 1em;
  margin-bottom: .25em;
  font-size: 2em;
}

.Home-intro blockquote {
  margin: 0;
  padding: 0;
}

.Home-intro p {
  margin-bottom: 1em;
}

.Home-intro p:empty {
  display: none;
}

@media (width >= 800px) {
  .Home-intro {
    margin-top: 20px;
  }
}

.Home-intro p:last-of-type {
  margin-bottom: 0;
}

.Home-intro h2 {
  text-transform: uppercase;
  margin-top: 70px;
  font-family: topol-bold, Helvetica, Arial, sans-serif;
  font-size: 21px;
  font-weight: 400;
  line-height: 1.4;
}

a.Home-intro-link {
  color: #00000080;
  text-decoration: none;
}

.Home-archive {
  margin-bottom: 50px;
  font-size: 21px;
  line-height: 1.4;
}

.Home-archive ul {
  flex-wrap: wrap;
  list-style: none;
  display: flex;
}

.Home-archive li:not(:last-of-type):after {
  content: "/";
  padding-left: .33ch;
  padding-right: .33ch;
}

.Home-archive a {
  text-decoration: underline;
}

@media (width >= 800px) {
  .Home-outro {
    grid-column: 9 / 13;
  }
}

.Course {
  grid-column: 9 / 13;
  margin-bottom: 112px;
}

@media (width >= 800px) {
  .Home[data-desktop-layout] .Course {
    grid-column: 1 / 13;
    grid-template-columns: repeat(var(--gridColumns), 1fr);
    gap: var(--gridGap);
    row-gap: 0;
    display: grid;
  }

  .Home[data-desktop-layout] .Course-title, .Home[data-desktop-layout] .Course-description, .Home[data-desktop-layout] a.Course-link, .Home[data-desktop-layout] .Course-list {
    grid-column: 9 / 13;
  }

  .Home[data-desktop-layout] .Course .Carousel {
    grid-area: 1 / 1 / span 99 / 9;
    align-self: start;
    margin-top: 0;
  }
}

.Course:last-of-type {
  margin-bottom: max(112px, 100vh - var(--videoHeight) - var(--footerHeight));
}

.Course-title {
  text-transform: uppercase;
  margin-bottom: .5em;
  font-family: topol-bold, Helvetica, Arial, sans-serif;
  font-size: 21px;
  font-weight: 400;
  line-height: 1.4;
}

.Course-description a {
  text-decoration: underline;
  transition: all .15s cubic-bezier(.25, .46, .45, .94);
}

.Course-description a:hover, .Course-description a:focus-visible {
  color: var(--highlight);
}

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

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

.Course-description hr {
  background-color: currentColor;
  border: none;
  width: 100%;
  height: 1px;
  margin-top: 2em;
  margin-bottom: 2em;
  display: block;
}

.Course-description ol, .Course-description ul {
  margin-bottom: 1em;
  margin-left: 1em;
}

.Course-description li:not(:last-of-type) {
  margin-bottom: .25em;
}

.Course-description h1, .Course-description h2, .Course-description h3, .Course-description h4, .Course-description h5, .Course-description h6 {
  margin-top: 1em;
  margin-bottom: .25em;
  font-size: 2em;
}

.Course-description blockquote {
  margin: 0;
  padding: 0;
}

.Course-description p {
  margin-bottom: 1em;
}

.Course-description p:empty {
  display: none;
}

.Course-description {
  font-size: 18px;
  line-height: 1.4;
}

a.Course-link {
  opacity: .5;
  font-size: 18px;
  line-height: 1.4;
  transition: opacity .15s cubic-bezier(.25, .46, .45, .94);
}

a.Course-link:hover, a.Course-link:focus {
  opacity: 1;
  text-decoration: underline;
}

.Course-list {
  margin-top: 2em;
  font-size: 21px;
  line-height: 1.4;
}

.Course-student {
  transition: opacity .15s cubic-bezier(.25, .46, .45, .94);
  display: block;
}

.Course-student:has( > pfg-keyword-item[inert]) {
  opacity: .1;
}

.Course-student:not(:last-child) {
  margin-bottom: .5em;
}

.Course-studentLink {
  align-items: baseline;
  max-width: max-content;
  transition: opacity .15s cubic-bezier(.25, .46, .45, .94), transform .15s cubic-bezier(.25, .46, .45, .94);
  display: flex;
}

@media (width >= 800px) {
  .Course-studentLink {
    transform: translateX(calc(-16px - .5em));
  }
}

a.Course-studentLink:hover, a.Course-studentLink:focus {
  text-decoration: underline;
}

@media (width >= 800px) {
  .Course-studentLink[data-prev]:not(:last-of-type) {
    transform: translateX(-16px);
  }

  .Course-studentLink[data-current] {
    transform: translateX(0);
  }

  .Course-studentLink[data-next]:not(:first-of-type) {
    transform: translateX(-16px);
  }
}

.Course-studentLink:after {
  content: "";
  background-color: var(--highlight);
  opacity: 0;
  border-radius: 50%;
  flex-shrink: 0;
  width: 13px;
  height: 13px;
  margin-left: .5em;
  transition: opacity .15s cubic-bezier(.25, .46, .45, .94);
}

@media (width >= 800px) {
  .Course-studentLink:after {
    order: -1;
    width: 16px;
    height: 16px;
    margin-left: 0;
    margin-right: .5em;
  }
}

.Course-studentLink--white:after {
  border: 1px solid #00000080;
}

.Course-studentLink[data-current]:after {
  opacity: 1;
}

.Keywords {
  margin-top: var(--gridGap);
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

@media (width >= 800px) {
  .Home[data-desktop-layout] .Course .Keywords {
    grid-column: 9 / 13;
  }
}

.Keywords--video {
  margin-top: unset;
  padding-top: var(--gridGap);
  padding-bottom: var(--gridGap);
  margin-left: calc(var(--marginLeft) * -1 + var(--gridGap));
  grid-template-rows: 1fr;
  grid-template-columns: 1fr;
  display: grid;
}

@media (width >= 800px) {
  .Keywords--video {
    padding-top: calc(var(--gridGap) / 2);
    margin-left: calc(var(--marginLeft) * -1 + var(--gridGap) / 2);
  }
}

.Keywords li {
  display: flex;
}

.Keywords--video .Keyword {
  grid-area: 1 / 1;
  width: max-content;
}

@media (width >= 800px) {
  .Keywords--video .Keyword {
    margin-left: auto;
  }
}

.Keywords--video .Keyword button {
  box-shadow: 0px 0px var(--gridGap) .5em #fff;
}

.Keywords--video .Keyword {
  transition: opacity .15s cubic-bezier(.55, .085, .68, .53), display .15s ease allow-discrete;
}

@starting-style {
  .Keywords--video .Keyword {
    opacity: 0;
  }
}

.Keywords--video .Keyword:has(button[aria-pressed="false"]) {
  opacity: 0;
  z-index: -1;
  display: none;
}

.Keyword button {
  color: #000;
  letter-spacing: -3%;
  cursor: pointer;
  background: #eaeaea;
  border-radius: 999px;
  align-items: center;
  padding: .5em 1em;
  font-family: gt-america-mono, monospace;
  font-size: 11px;
  line-height: 1;
  transition: background-color .15s cubic-bezier(.25, .46, .45, .94), color .15s cubic-bezier(.25, .46, .45, .94);
  display: inline-flex;
}

@media (width >= 800px) {
  .Keyword button {
    font-size: 14px;
  }
}

.Keyword button:hover, .Keyword button:focus-visible {
  background: #b4b4b4;
}

.Keyword button[aria-pressed="true"] {
  color: #fff;
  background: #000;
}

.Keyword-icon {
  text-align: right;
  opacity: 0;
  width: 0;
  transition: width .15s cubic-bezier(.55, .085, .68, .53) .15s, opacity .15s cubic-bezier(.55, .085, .68, .53);
}

.Keyword button[aria-pressed="true"] .Keyword-icon {
  opacity: 1;
  width: calc(1ch + .33em);
  transition: width .2s cubic-bezier(.25, .46, .45, .94), margin .2s cubic-bezier(.25, .46, .45, .94), opacity .2s cubic-bezier(.25, .46, .45, .94) .2s;
}

.Student {
  --background: #e9fdf1;
  --highlight: #21e871;
  position: relative;
}

.Student-bg {
  --position: calc(var(--videoHeight, 0px) + var(--slot));
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(transparent, transparent var(--position), var(--background) var(--position), var(--background));
  width: 100%;
  height: 100%;
  min-height: 100vh;
  position: absolute;
  top: 0;
  left: 0;
}

@media (width >= 800px) {
  .Student-bg {
    --position: var(--videoHeight, 0px);
  }
}

.Student-inner {
  width: 100%;
  max-width: 1400px;
  padding-right: var(--marginRight);
  padding-left: var(--marginLeft);
  grid-template-columns: repeat(var(--gridColumns), 1fr);
  gap: var(--gridGap);
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 200px;
  display: grid;
}

.Student-inner > a {
  width: 100%;
  height: 100%;
  height: calc(var(--videoHeight, 100%) + var(--slot));
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}

@media (width >= 800px) {
  .Student-inner > a {
    height: var(--videoHeight, 100%);
  }
}

.Student-close {
  z-index: 1;
  grid-area: 2 / 1 / auto / -1;
  height: 0;
  margin-left: auto;
  margin-right: 0;
  position: sticky;
  top: 12px;
  overflow: visible;
}

@media (width >= 800px) {
  .Student-close {
    top: 24px;
  }
}

.Student-closeOuter {
  right: calc(var(--marginRight) * -1 + var(--gridGap) - 8px);
  flex-direction: column;
  align-items: center;
  display: flex;
  position: relative;
}

.Student-closeCircle {
  border: 1px solid;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: 32px;
  height: 32px;
  transition: opacity .25s cubic-bezier(.25, .46, .45, .94);
  display: flex;
}

@media (width >= 800px) {
  .Student-closeCircle {
    width: 40px;
    height: 40px;
  }
}

.Student-closeOuter:hover, .Student-closeOuter:focus {
  opacity: .5;
}

.Student-close .svg-close {
  width: 16px;
  height: 16px;
}

@media (width >= 800px) {
  .Student-close .svg-close {
    width: 18px;
    height: 18px;
  }
}

@keyframes dangle {
  from {
    transform: rotate(2.62deg);
  }

  to {
    transform: rotate(-2.62deg);
  }
}

.Student-closeTitle {
  transform-origin: top;
  writing-mode: vertical-lr;
  height: max-content;
  margin-top: .5em;
  font-family: topol-bold, Helvetica, Arial, sans-serif;
  font-size: 28px;
  line-height: 1.25;
  animation: 2s cubic-bezier(.455, .03, .515, .955) infinite alternate dangle;
  display: none;
  position: relative;
  transform: rotate(2.62deg);
}

@media (width >= 800px) {
  .Student-closeTitle {
    display: block;
  }
}

.Student-title {
  hyphens: auto;
  grid-area: 3 / 1 / auto / -1;
  font-family: topol-bold, Helvetica, Arial, sans-serif;
  font-size: 64px;
  font-weight: 400;
  line-height: 1;
}

@media (width >= 800px) {
  .Student-title {
    font-size: 96px;
  }
}

.Student-course {
  grid-area: 2 / 1 / auto / -1;
  font-size: 14px;
  line-height: 1.4;
}

@media (width >= 800px) {
  .Student-course {
    font-size: 21px;
  }
}

.Student .Video--student {
  grid-row: 1;
}

.Student .Text--bio {
  grid-row: 4;
}

.Student-blocks {
  grid-area: 5 / 1 / auto / -1;
}

.Modal--student .Student-bg, .Modal--student .Student-close, .Modal--student .Student-title, .Modal--student .Student-course, .Modal--student .Student-blocks, .Modal--student .Text--bio {
  transform: translateY(calc(100vh - var(--videoHeight, 0)));
  transition: transform .75s cubic-bezier(.165, .84, .44, 1);
}

.Modal--student[data-active] .Student-bg, .Modal--student[data-active] .Student-close, .Modal--student[data-active] .Student-title, .Modal--student[data-active] .Student-course, .Modal--student[data-active] .Student-blocks, .Modal--student[data-active] .Text--bio {
  transform: translateY(0);
}

.Modal--student[data-exiting] .Student-bg, .Modal--student[data-exiting] .Student-close, .Modal--student[data-exiting] .Student-title, .Modal--student[data-exiting] .Student-course, .Modal--student[data-exiting] .Student-blocks, .Modal--student[data-exiting] .Text--bio {
  opacity: 0;
  transition: opacity .25s cubic-bezier(.165, .84, .44, 1);
  transform: translateY(0);
}

.Text {
  grid-column: 1 / -1;
  margin-bottom: 32px;
}

@media (width >= 800px) {
  .Text {
    grid-template-columns: repeat(var(--gridColumns), 1fr);
    gap: var(--gridGap);
    row-gap: 0;
    margin-bottom: 86px;
    display: grid;
  }
}

@media (width <= 799px) {
  .Text--bio {
    margin-top: calc(var(--gridGap) * 2);
    flex-direction: column;
    display: flex;
  }
}

@media (width >= 800px) {
  .Text--bio {
    margin-bottom: var(--gridGap);
  }
}

.Text .Column--heading {
  margin-bottom: .5em;
  font-family: topol-bold, Helvetica, Arial, sans-serif;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.25;
}

@media (width >= 800px) {
  .Text .Column--heading {
    grid-column: 3 / 8;
  }
}

@media (width >= 1000px) {
  .Text .Column--heading {
    grid-column: 5 / 9;
  }
}

.Text--bio .Column--heading {
  text-transform: uppercase;
  letter-spacing: .025em;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.4;
}

@media (width >= 800px) {
  .Text--bio .Column--heading {
    grid-column: 1 / 6;
  }
}

@media (width >= 1000px) {
  .Text--bio .Column--heading {
    grid-column: 1 / 5;
  }
}

.Text .Column--text, .Text .Column--bio {
  font-size: 18px;
  line-height: 1.4;
}

.Text .Column--text a, .Text .Column--bio a {
  text-decoration: underline;
  transition: all .15s cubic-bezier(.25, .46, .45, .94);
}

.Text .Column--text a:hover, .Text .Column--text a:focus-visible, .Text .Column--bio a:hover, .Text .Column--bio a:focus-visible {
  color: var(--highlight);
}

.Text .Column--text > :first-child, .Text .Column--bio > :first-child {
  margin-top: 0;
}

.Text .Column--text > :last-child, .Text .Column--bio > :last-child {
  margin-bottom: 0;
}

.Text .Column--text hr, .Text .Column--bio hr {
  background-color: currentColor;
  border: none;
  width: 100%;
  height: 1px;
  margin-top: 2em;
  margin-bottom: 2em;
  display: block;
}

.Text .Column--text ol, .Text .Column--text ul, .Text .Column--bio ol, .Text .Column--bio ul {
  margin-bottom: 1em;
  margin-left: 1em;
}

.Text .Column--text li:not(:last-of-type), .Text .Column--bio li:not(:last-of-type) {
  margin-bottom: .25em;
}

.Text .Column--text h1, .Text .Column--text h2, .Text .Column--text h3, .Text .Column--text h4, .Text .Column--text h5, .Text .Column--text h6, .Text .Column--bio h1, .Text .Column--bio h2, .Text .Column--bio h3, .Text .Column--bio h4, .Text .Column--bio h5, .Text .Column--bio h6 {
  margin-top: 1em;
  margin-bottom: .25em;
  font-size: 2em;
}

.Text .Column--text blockquote, .Text .Column--bio blockquote {
  margin: 0;
  padding: 0;
}

.Text .Column--text p, .Text .Column--bio p {
  margin-bottom: 1em;
}

.Text .Column--text p:empty, .Text .Column--bio p:empty {
  display: none;
}

@media (width >= 800px) {
  .Text .Column--text:first-of-type {
    grid-column: 3 / 8;
  }
}

@media (width >= 1000px) {
  .Text .Column--text:first-of-type {
    grid-column: 5 / 9;
  }
}

.Text .Column--text:nth-of-type(2) {
  margin-top: 1em;
}

@media (width >= 800px) {
  .Text .Column--text:nth-of-type(2) {
    grid-column: 8 / 13;
    margin-top: 0;
  }
}

@media (width >= 1000px) {
  .Text .Column--text:nth-of-type(2) {
    grid-column: 9 / 13;
  }
}

@media (width <= 799px) {
  .Text .Column--mobileBefore {
    order: -1;
  }

  .Text .Column--mobileBefore:not(:first-child) {
    margin-bottom: calc(var(--gridGap) * 3);
  }
}

@media (width >= 800px) {
  .Text .Column--bio:first-of-type {
    grid-column: 1 / 6;
  }
}

@media (width >= 1000px) {
  .Text .Column--bio:first-of-type {
    grid-column: 1 / 5;
  }
}

@media (width >= 800px) {
  .Text .Column--bio:nth-of-type(2) {
    grid-column: 6 / 11;
  }
}

@media (width >= 1000px) {
  .Text .Column--bio:nth-of-type(2) {
    grid-column: 5 / 9;
  }
}

.Text-links {
  flex-direction: column;
  display: flex;
}

.Text-links a {
  opacity: .5;
  transition: opacity .15s cubic-bezier(.25, .46, .45, .94);
}

.Text-links a:hover, .Text-links a:focus {
  opacity: 1;
}

.Media {
  width: calc(100% + var(--marginRight) - var(--marginLeft));
  margin-bottom: 80px;
}

@media (width >= 800px) {
  .Media {
    width: 100%;
    margin-bottom: 120px;
  }
}

.Media--two {
  grid-template-columns: repeat(var(--gridColumns), 1fr);
  gap: var(--gridGap);
  align-items: end;
  display: grid;
}

.Media--one.Media--left + .Media--one.Media--left, .Media--one.Media--left + .Media--one.Media--right, .Media--one.Media--right + .Media--one.Media--left, .Media--one.Media--right + .Media--one.Media--right {
  margin-top: -16px;
}

.Media--two + .Media--two {
  margin-top: -60px;
}

.Media-item {
  margin: 0;
}

.Media--one.Media--left .Media-item, .Media--one.Media--right .Media-item {
  grid-template-columns: repeat(var(--gridColumns), 1fr);
  gap: var(--gridGap);
  display: grid;
}

.Media--two .Media-item {
  grid-column: span 3;
}

@media (width >= 800px) {
  .Media--two .Media-item {
    grid-column: span 6;
  }
}

.Media-item img {
  width: 100%;
  height: auto;
}

.Media--one.Media--left img, .Media--one.Media--left .Audio, .Media--one.Media--left .Video {
  grid-column: span 5;
}

@media (width >= 800px) {
  .Media--one.Media--left img, .Media--one.Media--left .Audio, .Media--one.Media--left .Video {
    grid-column: span 8;
  }
}

.Media--one.Media--left.Media--portrait img, .Media--one.Media--left.Media--portrait .Audio, .Media--one.Media--left.Media--portrait .Video {
  grid-column: span 4;
}

@media (width >= 800px) {
  .Media--one.Media--left.Media--portrait img, .Media--one.Media--left.Media--portrait .Audio, .Media--one.Media--left.Media--portrait .Video {
    grid-column: span 6;
  }
}

.Media--one.Media--right img, .Media--one.Media--right .Audio, .Media--one.Media--right .Video {
  grid-column: 2 / 7;
}

@media (width >= 800px) {
  .Media--one.Media--right img, .Media--one.Media--right .Audio, .Media--one.Media--right .Video {
    grid-column: 5 / 13;
  }
}

.Media--one.Media--right.Media--portrait img, .Media--one.Media--right.Media--portrait .Audio, .Media--one.Media--right.Media--portrait .Video {
  grid-column: 3 / 7;
}

@media (width >= 800px) {
  .Media--one.Media--right.Media--portrait img, .Media--one.Media--right.Media--portrait .Audio, .Media--one.Media--right.Media--portrait .Video {
    grid-column: 7 / 13;
  }
}

.Media figcaption {
  font-size: 14px;
  line-height: 1.4;
}

.Media--one.Media--left figcaption {
  grid-column: span 5;
}

@media (width >= 800px) {
  .Media--one.Media--left figcaption {
    grid-column: span 4;
  }
}

@media (width >= 1000px) {
  .Media--one.Media--left figcaption {
    grid-column: span 3;
  }
}

.Media--one.Media--right figcaption {
  grid-column: 2 / 7;
}

@media (width >= 800px) {
  .Media--one.Media--right figcaption {
    order: -1;
    grid-column: 1 / 5;
  }
}

@media (width >= 1000px) {
  .Media--one.Media--right figcaption {
    grid-column: 2 / 5;
  }
}

@media (width <= 799px) {
  .Media--one.Media--left.Media--portrait figcaption {
    grid-column: span 4;
  }
}

.Media--one.Media--right.Media--portrait figcaption {
  grid-column: 3 / 7;
}

@media (width >= 800px) {
  .Media--one.Media--right.Media--portrait figcaption {
    grid-column: 3 / 7;
  }
}

@media (width >= 1000px) {
  .Media--one.Media--right.Media--portrait figcaption {
    grid-column: 4 / 7;
  }
}

.Media--two figcaption, .Media--one.Media--center figcaption {
  margin-top: .75em;
}

@media (width <= 799px) {
  .Media--two .Media-item:nth-of-type(2) figcaption, .Media--one.Media--center figcaption, .Media--one.Media--right figcaption {
    padding-right: 16px;
  }
}

.Media-type {
  text-transform: uppercase;
  letter-spacing: .025em;
  color: var(--highlight);
  margin-right: .25em;
  font-family: topol-bold, Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.Audio {
  --progress: 0;
  --seek: 0;
  z-index: 1;
  padding-top: var(--marginLeft);
  padding-right: var(--marginLeft);
  padding-bottom: var(--marginLeft);
  padding-left: var(--marginLeft);
  border: 1px solid var(--highlight);
  position: relative;
  overflow: hidden;
}

@media (width >= 800px) {
  .Audio {
    align-items: center;
    padding: 24px 48px;
    display: flex;
  }
}

.Audio-progress {
  z-index: -1;
  background-color: var(--highlight);
  width: 100%;
  height: 100%;
  transform: translateX(calc(-100% + var(--progress) * 1%));
  transition: transform .25s linear;
  position: absolute;
  top: 0;
  left: 0;
}

.Audio-seek {
  z-index: -1;
  background-color: var(--highlight);
  opacity: 0;
  mix-blend-mode: color-dodge;
  width: 100%;
  height: 100%;
  transform: translateX(calc(-100% + var(--seek) * 1%));
  transition: transform 50ms linear, opacity 1s ease-out;
  position: absolute;
  top: 0;
  left: 0;
}

.Audio[data-seeking] .Audio-seek {
  opacity: .25;
  transition: transform 50ms linear, opacity .2s ease-out;
}

.Audio-playpause {
  z-index: 1;
  cursor: pointer;
  width: 22px;
  height: 25px;
  display: block;
}

@media (width >= 800px) {
  .Audio-playpause {
    flex-shrink: 0;
    width: 30px;
    height: 35px;
  }
}

.Audio-playpause span {
  clip: rect(0 0 0 0);
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.Audio-playpause .svg-play {
  width: 22px;
  height: 25px;
}

@media (width >= 800px) {
  .Audio-playpause .svg-play {
    width: 30px;
    height: 35px;
  }
}

.Audio[data-playing] .svg-play {
  display: none;
}

.Audio-playpause .svg-pause {
  width: 19px;
  height: 22px;
  display: none;
}

@media (width >= 800px) {
  .Audio-playpause .svg-pause {
    width: 26px;
    height: 30px;
  }
}

.Audio[data-playing] .svg-pause {
  display: block;
}

.Audio-title {
  margin-top: .5em;
  margin-bottom: .5em;
  font-size: 14px;
  line-height: 1.4;
}

@media (width >= 800px) {
  .Audio-title {
    flex: 1;
    margin-top: 0;
    margin-bottom: 0;
    padding-left: 48px;
    padding-right: 48px;
    font-size: 18px;
    line-height: 1.4;
  }
}

.Audio-time {
  align-items: baseline;
  font-size: 14px;
  line-height: 1.4;
  display: flex;
}

@media (width >= 800px) {
  .Audio-time {
    flex-shrink: 0;
    font-size: 18px;
    line-height: 1.4;
  }
}

.Audio [data-audio-current-time] {
  transition: opacity .1s ease-out;
}

.Audio[data-seeking] [data-audio-current-time] {
  opacity: .5;
}

.Video-wrapper {
  min-height: var(--videoHeight);
}

.Video-wrapper--home {
  z-index: 1;
  width: 100%;
  position: relative;
}

@media (width >= 800px) {
  .Video-wrapper--home {
    height: max-content;
  }
}

.Video-wrapper--student {
  min-height: calc(var(--videoHeight) + var(--slot));
  padding-bottom: var(--slot);
  order: -2;
  grid-column: 1 / -1;
}

@media (width >= 800px) {
  .Video-wrapper--student {
    min-height: var(--videoHeight);
    grid-column: 1 / 9;
    padding-bottom: 0;
  }
}

.Video {
  position: relative;
}

.js .Video:not([data-video-container]) {
  display: none;
}

.Video-wrapper .Video {
  width: calc(100% + var(--marginLeft) + var(--marginRight));
  left: calc(var(--marginLeft) * -1);
  position: relative;
}

@media (width >= 800px) {
  .Video-wrapper .Video {
    width: calc(100% + var(--marginLeft));
    left: calc(var(--marginLeft) * -1);
  }
}

.Video-inner {
  background-color: #0000001a;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
  position: relative;
}

.Video-play {
  z-index: 1;
  color: #eaeaea;
  cursor: pointer;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.Video-play span {
  clip: rect(0 0 0 0);
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.Video-play .svg-play {
  width: 25px;
  height: 29px;
  transition: opacity .15s cubic-bezier(.25, .46, .45, .94);
}

@media (width >= 800px) {
  .Video-play .svg-play {
    width: 50px;
    height: 57px;
  }
}

.Video[data-playing] .Video-play .svg-play {
  opacity: 0;
}

.Video-mute {
  z-index: 1;
  color: #eaeaea;
  cursor: pointer;
  width: 48px;
  height: 48px;
  position: absolute;
  bottom: 0;
  right: 0;
}

.Video-mute span {
  clip: rect(0 0 0 0);
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.Video-mute svg {
  width: 24px;
  height: 24px;
  transition: opacity .15s cubic-bezier(.25, .46, .45, .94);
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

@media (width >= 800px) {
  .Video-mute svg {
    width: 32px;
    height: 32px;
  }
}

.Video-mute[aria-pressed="true"] .svg-volume-on, .Video-mute[aria-pressed="false"] .svg-volume-off {
  display: none;
}

.Video--block video {
  width: 100%;
  height: auto;
  display: block;
}

.Video-wrapper video {
  object-fit: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.js .Vimeo {
  width: 100%;
  height: 0;
  padding-bottom: calc(100% * var(--ratio));
  background-color: #0000001a;
  position: relative;
  overflow: hidden;
}

.Vimeo iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.no-js .Vimeo iframe {
  display: none;
}

a.Vimeo-fallbackLink {
  font-size: 18px;
  line-height: 1.4;
  text-decoration: underline;
}

.WatchPrompt {
  bottom: var(--gridGap);
  right: var(--gridGap);
  z-index: 20;
  position: fixed;
}

html[data-has-modal] .WatchPrompt {
  opacity: 0;
}

.WatchPrompt button {
  text-transform: uppercase;
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: .5em;
  font-family: topol-bold, Helvetica, Arial, sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1;
  display: flex;
}

.WatchPrompt button:hover, .WatchPrompt button:focus-visible {
  text-decoration: underline;
}

.WatchPrompt span {
  writing-mode: vertical-lr;
  position: relative;
}

.WatchPrompt .svg-arrow-up {
  width: 1em;
  height: 1em;
}

pfg-watch-prompt {
  transition: opacity .25s cubic-bezier(.25, .46, .45, .94) 10ms, visibility linear;
}

pfg-watch-prompt[inert] {
  visibility: hidden;
  opacity: 0;
  transition: opacity .25s cubic-bezier(.25, .46, .45, .94), visibility 0s linear .25s;
}

.Footer {
  width: 100%;
  max-width: 1400px;
  padding-right: var(--marginRight);
  padding-left: var(--marginLeft);
  margin-left: auto;
  margin-right: auto;
  padding-top: 44px;
  padding-bottom: 22px;
}

@media (width >= 800px) {
  .Footer {
    grid-template-columns: repeat(var(--gridColumns), 1fr);
    gap: var(--gridGap);
    display: grid;
  }

  .Footer-inner {
    grid-column: 9 / 13;
  }
}

.Footer-logo {
  display: block;
}

.Footer-logo .svg-parsons-logo {
  width: 219px;
  height: 36px;
  position: relative;
  left: -2px;
}

.Footer-copyright {
  margin-top: .85em;
  font-family: gt-america-mono, monospace;
  font-size: 14px;
  line-height: 1.25;
}

.Modal {
  z-index: 10;
  outline: none;
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  overflow: auto;
}

.Modal--student[data-active] {
  z-index: 25;
}

.Error {
  width: 100%;
  max-width: 1400px;
  padding-right: var(--marginRight);
  padding-left: var(--marginLeft);
  padding-top: var(--marginLeft);
  padding-bottom: var(--marginLeft);
  margin-left: auto;
  margin-right: auto;
}

.Error-title {
  text-transform: uppercase;
  letter-spacing: .025em;
  margin-bottom: .25em;
  font-family: topol-bold, Helvetica, Arial, sans-serif;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.25;
}

.Error-text {
  max-width: 40em;
  font-family: gt-america-mono, monospace;
}

.Error-text a {
  text-decoration: underline;
  transition: all .15s cubic-bezier(.25, .46, .45, .94);
}

.Error-text a:hover, .Error-text a:focus-visible {
  color: var(--highlight);
}

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

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

.Error-text hr {
  background-color: currentColor;
  border: none;
  width: 100%;
  height: 1px;
  margin-top: 2em;
  margin-bottom: 2em;
  display: block;
}

.Error-text ol, .Error-text ul {
  margin-bottom: 1em;
  margin-left: 1em;
}

.Error-text li:not(:last-of-type) {
  margin-bottom: .25em;
}

.Error-text h1, .Error-text h2, .Error-text h3, .Error-text h4, .Error-text h5, .Error-text h6 {
  margin-top: 1em;
  margin-bottom: .25em;
  font-size: 2em;
}

.Error-text blockquote {
  margin: 0;
  padding: 0;
}

.Error-text p {
  margin-bottom: 1em;
}

.Error-text p:empty {
  display: none;
}

.Error-text {
  font-size: 18px;
  line-height: 1.4;
}
/*# sourceMappingURL=main.css.map */
