:root {
  --_design---background-gray: #f9faf7;
  --_text---normal-color: black;
  --_text---paragraph-spacing: 1em;
  --_text---paragraph-size: 1.6em;
  --_text---subheading-gray: #262626;
  --_text---text-light-gray: #757575;
  --_sizing---max-width: 940px;
  --_sizing---stop-height: 3.3rem;
  --_design---line-color: black;
  --_design---resume-blue: #369;
  --_design---portfolio-peach: #fb7;
  --_text---gray-2: #a6a6a6;
  --_text---gray-1: gray;
  --_text---gray-3: #d9d9d9;
  --_design---foreground-gray: #f3f3f3;
  --project-text-background: #f3f3f3eb;
  --_sizing---gap: 12px;
  --background-gray-translucent: #f3f3f3cc;
  --background-dark-gray: #262626f2;
  --foreground-gray-transparent: #f9faf7f2;
  --tile-bevel: 1.5px;
  --_design---tile-red: #991f1f;
  --_text---visited-gray: #b3b3b3;
  --_sizing---tracker-size: 24px;
  --_text---small-header: 2.5em;
  --_text---large-header: 3.8em;
}

.w-layout-hflex {
  flex-direction: row;
  align-items: flex-start;
  display: flex;
}

.w-layout-vflex {
  flex-direction: column;
  align-items: flex-start;
  display: flex;
}

.w-backgroundvideo-backgroundvideoplaypausebutton:focus-visible {
  outline-offset: 2px;
  border-radius: 50%;
  outline: 2px solid #3b79c3;
}

.w-layout-blockcontainer {
  max-width: 940px;
  margin-left: auto;
  margin-right: auto;
  display: block;
}

@media screen and (max-width: 991px) {
  .w-layout-blockcontainer {
    max-width: 728px;
  }
}

@media screen and (max-width: 767px) {
  .w-layout-blockcontainer {
    max-width: none;
  }
}

body {
  background-color: var(--_design---background-gray);
  color: var(--_text---normal-color);
  overflow-wrap: anywhere;
  font-family: "Source Sans 3", sans-serif;
  font-size: 62.5%;
  line-height: 1.2;
}

h1 {
  max-width: 100%;
  margin-top: 1.25rem;
  margin-bottom: .625rem;
  font-family: Tahoma Small Cap, sans-serif;
  font-size: 3.2em;
  font-weight: 700;
  line-height: 1.1;
}

h2 {
  font-family: Tahoma Small Cap, sans-serif;
  font-size: 2.2em;
  font-weight: 700;
  line-height: 1;
}

h3 {
  margin-top: 20px;
  margin-bottom: 10px;
  font-family: Tahoma Small Cap, sans-serif;
  font-size: 1.8em;
  font-weight: 700;
  line-height: 1;
}

h4 {
  margin-top: 10px;
  margin-bottom: 10px;
  font-size: 18px;
  font-weight: 700;
}

p {
  margin-bottom: var(--_text---paragraph-spacing);
  font-size: var(--_text---paragraph-size);
  max-width: 100%;
  line-height: 1.5;
}

a {
  color: #000;
  text-decoration: none;
}

ul {
  margin-top: 0;
  margin-bottom: 16px;
  padding-left: 40px;
  font-size: 1.6em;
  line-height: 1.5;
}

label {
  margin-bottom: 5px;
  font-size: 1.4em;
  font-weight: 500;
  display: block;
}

.content-div {
  z-index: 1;
  flex-direction: column;
  align-items: center;
  max-width: 100%;
  position: relative;
}

.main-content {
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  justify-content: center;
  align-items: flex-start;
  max-width: 100%;
  display: flex;
}

.project-div {
  box-shadow: none;
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  max-width: 100%;
  margin: 15px 15px 45px;
  display: flex;
  position: relative;
  overflow: hidden;
}

.project-image {
  cursor: zoom-in;
  object-fit: cover;
  border: .25px solid #000;
  flex: auto;
  width: 100%;
  height: 100%;
}

.menu-button {
  cursor: pointer;
  width: 44px;
  height: 44px;
  position: fixed;
  inset: 31px auto auto 28px;
}

.project-image-description-div {
  border: .25px solid #000;
  position: absolute;
  inset: 0%;
}

.project-location {
  color: var(--_text---subheading-gray);
  font-size: 1.4em;
  font-style: italic;
}

.heading-video {
  border: .25px solid #000;
  width: 300px;
  min-width: 300px;
  height: 400px;
  transform: rotate(0);
}

.title-heading {
  text-align: center;
  margin-top: 10px;
  font-size: 4.6em;
}

.main-station-div {
  flex-flow: column;
  grid-template-rows: auto auto auto auto auto auto;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-auto-columns: 1fr;
  justify-content: center;
  align-items: center;
  max-width: 100%;
  padding: 20px 20px 5px;
  display: none;
  overflow: hidden;
}

.comparison-heading {
  margin-top: 10px;
  margin-bottom: 0;
  font-family: "Source Sans 3", sans-serif;
  font-size: 22px;
  font-weight: 300;
  line-height: 26px;
  text-decoration: none;
}

.about-paragraph {
  margin-bottom: 0;
}

.about-div {
  grid-column-gap: 8px;
  grid-row-gap: 8px;
  flex-flow: column;
  grid-template-rows: auto;
  grid-template-columns: minmax(80px, 1fr) 4fr;
  grid-auto-columns: 1fr;
  justify-content: flex-start;
  place-items: flex-start stretch;
  width: 630px;
  max-width: 95%;
  margin-top: 3em;
  margin-bottom: 2em;
  display: flex;
}

.utility-page-wrap {
  justify-content: center;
  align-items: center;
  width: 100vw;
  max-width: 100%;
  height: 100vh;
  max-height: 100%;
  display: flex;
}

.utility-page-content {
  text-align: center;
  flex-direction: column;
  width: 260px;
  display: flex;
}

.utility-page-form {
  flex-direction: column;
  align-items: stretch;
  display: flex;
}

.navbar {
  z-index: 99;
  display: block;
  position: sticky;
  top: 11.5em;
  left: 0;
}

.nav-container {
  flex-flow: column;
  justify-content: center;
  align-items: center;
  display: flex;
}

.nav-menu-div {
  border-radius: 12px;
  flex-flow: column;
  width: 21.5em;
  max-width: 300px;
  margin-left: 20px;
  padding: 20px 15px;
  display: flex;
  position: relative;
  overflow: auto;
}

.nav-link {
  flex: none;
  width: 11.5em;
  max-width: 200px;
  margin-left: 10px;
  padding-top: .5em;
  padding-bottom: .5em;
  padding-left: .8em;
}

.nav-link:visited {
  color: var(--_text---text-light-gray);
}

.nav-link.w--current {
  color: #000;
  background-color: #fff;
  border-style: solid;
  border-width: 2px;
  border-radius: 100px;
}

.nav-link.w--current:hover {
  text-decoration: none;
}

.nav-map {
  flex-flow: column;
  justify-content: flex-start;
  align-items: stretch;
  margin-left: 3px;
  padding-bottom: 15px;
  display: flex;
  position: relative;
}

.nav-home {
  flex-flow: column;
  justify-content: flex-start;
  align-items: stretch;
  margin-left: 3px;
  display: flex;
  position: relative;
}

.nav-line-name {
  border-bottom: .25px #000;
  align-self: stretch;
  margin-top: 6px;
  margin-bottom: 16px;
  font-family: "Source Sans 3", sans-serif;
  font-size: 1.6em;
  font-weight: 700;
}

.menu-button-div {
  display: none;
}

.menu-icon {
  width: 28px;
  height: 28px;
  position: absolute;
  top: 8px;
  left: 8px;
}

.embedded-pdf {
  aspect-ratio: 8.3 / 11;
  width: 800px;
  max-width: 100%;
}

.group-lightbox {
  max-width: 100%;
  overflow: hidden;
}

.comparison-grid {
  max-width: var(--_sizing---max-width);
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  text-align: center;
  grid-template-rows: auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  width: 100%;
  display: grid;
}

.comparison-lightbox {
  width: 100%;
}

.image-group {
  grid-column-gap: 20px;
  grid-row-gap: 20px;
  flex-flow: wrap;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 16px;
  margin-bottom: 32px;
  display: inline-flex;
}

.project-main {
  max-width: var(--_sizing---max-width);
  width: 100%;
  margin-top: 10px;
  padding-left: 20px;
  padding-right: 20px;
}

.in-text-lightbox {
  float: right;
  clear: right;
  max-width: 100%;
  margin-bottom: 20px;
  margin-left: 20px;
  overflow: hidden;
}

.project-heading {
  max-width: var(--_sizing---max-width);
  grid-column-gap: 20px;
  grid-row-gap: 20px;
  text-align: center;
  flex-flow: row-reverse;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 20px;
  margin-bottom: 30px;
  padding-left: 20px;
  padding-right: 20px;
  display: inline-flex;
}

.heading-lightbox {
  max-width: var(--_sizing---max-width);
  width: 100%;
  overflow: hidden;
}

.heading-lightbox.width-400 {
  max-width: 100%;
}

.full-image {
  max-width: var(--_sizing---max-width);
  width: 100%;
  margin-top: 16px;
  margin-bottom: 32px;
  overflow: hidden;
}

.height-150 {
  max-height: 150px;
}

.height-200 {
  max-height: 200px;
}

.height-300 {
  max-height: 300px;
}

.image-subgroup {
  grid-column-gap: 10px;
  grid-row-gap: 10px;
  flex-flow: wrap;
  justify-content: center;
  align-items: flex-start;
  display: flex;
}

.width-300 {
  width: 300px;
}

.width-250 {
  width: 250px;
}

.width-400 {
  width: 400px;
}

.width-200 {
  width: 200px;
}

.width-350 {
  width: 350px;
}

.height-250 {
  max-height: 250px;
}

.heading-text {
  max-width: 100%;
}

.image-subgroup-vertical {
  grid-column-gap: 10px;
  grid-row-gap: 10px;
  flex-flow: column;
  display: flex;
}

.height-410 {
  max-height: 410px;
}

.main-station-info {
  grid-column-gap: 2rem;
  grid-row-gap: 2rem;
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  width: 1000px;
  max-width: 98%;
  margin-bottom: 2rem;
  display: flex;
  position: relative;
}

.nav-map-station {
  height: var(--_sizing---stop-height);
  justify-content: flex-start;
  align-items: center;
  display: flex;
  position: relative;
}

.nav-map-station:visited {
  font-style: italic;
}

.nav-map-station.w--current {
  text-transform: uppercase;
  cursor: default;
  padding-left: 32px;
  text-decoration: none;
}

.nav-map-station.w--current:hover, .nav-map-station.w--current:visited {
  color: #000;
}

.nav-map-station.home {
  height: auto;
  min-height: 2rem;
}

.nav-track {
  background-color: var(--_design---line-color);
  width: 6px;
  height: 100%;
  position: absolute;
  inset: 0% auto 0% 9px;
}

.nav-track.el {
  background-color: var(--_design---resume-blue);
}

.nav-track.dl {
  background-color: var(--_design---portfolio-peach);
}

.nav-station-mark {
  background-color: var(--_design---line-color);
  justify-content: flex-start;
  align-items: center;
  width: 11px;
  height: 6px;
  font-size: 1.4em;
  text-decoration: underline;
  display: flex;
  position: relative;
  left: 9px;
}

.nav-station-mark:hover {
  border: 2px solid var(--_text---gray-2);
  color: var(--_text---gray-1);
  background-color: #fff;
  border-radius: 50%;
  width: 18px;
  height: 18px;
  padding-left: 4px;
  left: 3px;
}

.nav-station-mark:active {
  background-color: var(--_text---gray-3);
  color: var(--_text---gray-2);
}

.nav-station-mark.w--current {
  text-transform: uppercase;
  cursor: auto;
  background-color: #fff;
  background-image: url('../images/train.svg');
  background-position: 50% 70%;
  background-size: auto 85%;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  padding-left: 12px;
  text-decoration: none;
  left: 0;
  box-shadow: 0 1px 1.5px .5px #0006;
}

.nav-station-mark.w--current:hover {
  color: #000;
  border-style: none;
}

.nav-station-mark.el {
  background-color: var(--_design---resume-blue);
}

.nav-station-mark.el:hover {
  background-color: #fff;
}

.nav-station-mark.el:active {
  background-color: var(--_text---gray-3);
}

.nav-station-mark.el.w--current {
  background-color: #fff;
}

.nav-station-mark.dl {
  background-color: var(--_design---portfolio-peach);
}

.nav-station-mark.dl:hover {
  background-color: #fff;
}

.nav-station-mark.dl:active {
  background-color: var(--_text---gray-3);
}

.nav-station-mark.dl.w--current {
  background-color: #fff;
}

.nav-tab {
  border-radius: 50%;
  width: 1.25rem;
  height: 1.25rem;
  padding-left: 0;
  padding-right: 0;
}

.nav-tab.w--current {
  background-color: #ddd;
  border-style: none;
  border-color: #000;
}

.nav-tab.el, .nav-tab.el.w--current {
  background-color: var(--_design---resume-blue);
}

.nav-tab.dl {
  background-color: var(--_design---portfolio-peach);
}

.nav-tab-menu {
  grid-column-gap: 6px;
  grid-row-gap: 6px;
  justify-content: flex-start;
  align-items: stretch;
  margin-bottom: 2px;
  padding-left: 4px;
  display: flex;
}

.nav-track-extension {
  background-color: var(--_design---line-color);
  width: 6px;
  height: 6px;
  margin-top: 6px;
  margin-left: 9px;
}

.nav-track-extension.el {
  background-color: var(--_design---resume-blue);
}

.nav-track-extension.dl {
  background-color: var(--_design---portfolio-peach);
}

.main-map-div {
  grid-template-rows: auto auto;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: 1fr;
  justify-content: flex-start;
  max-width: 100%;
  display: flex;
  overflow: auto;
}

.subway-lines-div {
  flex-flow: column;
  display: flex;
}

.engineering-line-div {
  margin-bottom: 30px;
  display: flex;
  position: relative;
}

.junction-div {
  justify-content: center;
  align-items: center;
  display: flex;
  position: relative;
}

.design-line-div {
  display: flex;
  position: relative;
}

.engineering-track {
  background-color: var(--_design---resume-blue);
  height: 24px;
  position: absolute;
  inset: auto 0% 0%;
}

.design-track {
  background-color: var(--_design---portfolio-peach);
  height: 24px;
  margin-top: 52px;
  position: absolute;
  inset: 0% 0% auto;
}

.home-station-mark {
  background-color: #fff;
  border: 2.5px solid #000;
  border-radius: 50%;
  justify-content: flex-start;
  align-items: center;
  width: 24px;
  height: 24px;
  padding-left: 9.5px;
  font-size: 1.4em;
  text-decoration: underline;
  display: flex;
  position: absolute;
  left: 0;
}

.home-station-mark:hover {
  border-color: var(--_text---gray-2);
  color: var(--_text---gray-1);
}

.home-station-mark:active {
  background-color: var(--_text---gray-3);
}

.home-station-mark.el:hover {
  border-color: var(--_design---resume-blue);
}

.e-line-name-div {
  justify-content: flex-start;
  align-items: flex-end;
  width: 10rem;
  margin-left: 4px;
  padding-bottom: 28px;
  display: flex;
}

.line-name {
  font-size: 1.7em;
  font-weight: 700;
}

.d-line-name-div {
  flex-flow: column-reverse;
  justify-content: flex-start;
  align-items: flex-start;
  width: 10rem;
  height: 76px;
  margin-left: 4px;
  padding-bottom: 28px;
  display: flex;
}

.junction-image {
  background-image: url('../images/junction-large.svg');
  background-position: 100% 0;
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: scroll;
  width: 274px;
  height: 130px;
}

.about-tagline {
  margin-bottom: 0;
  font-size: 1.6em;
  font-weight: 700;
}

.train-schedule-div {
  background-color: #fff;
  border: 2px solid #000;
  width: 15.625rem;
  max-width: 100%;
  height: 6.75rem;
  position: relative;
}

.title-div {
  grid-column-gap: 1.75rem;
  grid-row-gap: 1.75rem;
  flex-flow: wrap;
  justify-content: space-between;
  align-items: flex-start;
  width: 1000px;
  max-width: 98%;
  margin-top: 10px;
  margin-bottom: 2.5rem;
  display: flex;
}

.train-update {
  grid-column-gap: .5rem;
  grid-row-gap: .5rem;
  justify-content: flex-start;
  align-items: center;
  margin-top: .375rem;
  margin-left: 8px;
  margin-right: 8px;
  display: flex;
  position: relative;
}

.minutes {
  font-size: 1.8em;
}

.minutes.bold {
  font-weight: 700;
}

.crawl {
  background-color: var(--_design---foreground-gray);
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  height: 1.375rem;
  padding-left: 8px;
  padding-right: 8px;
  font-size: 1.4em;
  display: flex;
  position: absolute;
  inset: auto auto 0% 0%;
}

.crowd-icon {
  height: 2em;
}

.crowd-div {
  grid-column-gap: 2px;
  grid-row-gap: 2px;
  display: flex;
  position: absolute;
  inset: 0% 0% 0% auto;
}

.time {
  width: 4rem;
  font-weight: 600;
}

.ride-free {
  width: 10rem;
}

.future-work {
  color: var(--_text---text-light-gray);
  font-size: 1.6em;
  position: absolute;
  top: 57%;
  right: 0;
}

.copyright {
  margin-top: 15px;
  margin-bottom: 15px;
  font-size: 1.3em;
  font-weight: 300;
}

.contact {
  text-align: center;
  align-self: center;
  width: 600px;
  max-width: 90%;
  margin-bottom: 1.2em;
}

.contact-paragraph {
  color: #000;
  font-size: 1rem;
  line-height: 1.5;
}

.close-contacts {
  cursor: pointer;
  height: 40px;
  position: absolute;
  inset: 10px 10px auto auto;
}

.link-image {
  height: 1em;
}

.link-image:hover {
  opacity: .65;
}

.link-image:active {
  opacity: .55;
}

.station-sign-label {
  justify-content: center;
  align-items: center;
  height: 1.5rem;
  padding-bottom: .125rem;
  font-family: Tahoma Small Cap, sans-serif;
  font-size: 1.5em;
  display: flex;
}

.contact-header {
  margin-top: 0;
  margin-bottom: 5px;
}

.contact-link {
  font-size: 1rem;
  text-decoration: underline;
}

.contact-link:hover {
  color: var(--_text---gray-1);
}

.contact-link:active {
  color: var(--_text---gray-2);
}

.overhead-sign {
  z-index: 100;
  background-image: linear-gradient(180deg, var(--_design---background-gray) 15%, transparent);
  flex-flow: column;
  width: 100%;
  padding-bottom: 15px;
  padding-left: 28px;
  padding-right: 28px;
  display: flex;
  position: sticky;
  inset: 0% 0% auto;
}

.sign-posts {
  justify-content: space-around;
  align-items: stretch;
  height: 15px;
  display: flex;
}

.post {
  background-color: #505050;
  width: 16px;
  box-shadow: inset -6px 0 7px 1px #0000004d;
}

.sign {
  background-color: #7f7f7f;
  flex-flow: column;
  max-width: 100%;
  display: flex;
}

.sign-line {
  height: 16px;
}

.sign-text {
  color: #fff;
  text-align: center;
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.station-name {
  max-width: 70%;
  margin-top: 8px;
  margin-bottom: 8px;
  font-size: 2.5em;
}

.station-name.off-line {
  flex: 1;
  max-width: 100%;
  font-size: 3.8em;
}

.next-station {
  grid-column-gap: 4px;
  grid-row-gap: 4px;
  color: #fff;
  flex-flow: row;
  justify-content: flex-end;
  align-items: center;
  width: 16em;
  margin-top: 4px;
  margin-bottom: 4px;
  font-size: 1.4em;
  line-height: 1.2;
  display: flex;
}

.next-station:focus-visible {
  border: 1px dotted #fff;
}

.next-station[data-wf-focus-visible] {
  border: 1px dotted #fff;
}

.neighbor-name {
  font-size: 1.2em;
  font-weight: 600;
  text-decoration: underline;
}

.next-station-text {
  flex-flow: column;
  justify-content: center;
  align-items: flex-end;
  display: flex;
}

.next-station-arrow {
  height: 3em;
}

.previous-station {
  grid-column-gap: 4px;
  grid-row-gap: 4px;
  color: #fff;
  justify-content: flex-start;
  align-items: center;
  width: 16em;
  margin-top: 4px;
  margin-bottom: 4px;
  font-size: 1.4em;
  line-height: 1.2;
  display: flex;
}

.previous-station:focus-visible {
  border: 1px dotted #fff;
}

.previous-station[data-wf-focus-visible] {
  border: 1px dotted #fff;
}

.previous-station-arrow {
  height: 3em;
  transform: rotate(180deg);
}

.previous-station-text {
  flex-flow: column;
  justify-content: center;
  align-items: flex-start;
  display: flex;
}

.sign-border {
  border-top: 5px solid #353535;
  border-left: 7px solid #0000;
  border-right: 7px solid #0000;
  height: 0;
}

.map-button {
  z-index: 12;
  background-color: #fff;
  border-radius: 100px;
  justify-content: center;
  align-items: center;
  width: 50px;
  height: 50px;
  margin-top: 15px;
  display: flex;
  position: fixed;
  left: 35px;
  box-shadow: 0 1px 1.5px 1px #0006;
}

.map-icon {
  width: 80%;
}

.footer {
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  display: flex;
}

.train-track {
  opacity: .95;
  background-image: url('../images/train-track.svg');
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  height: 70px;
}

.feature-wall {
  background-image: url('../images/tile-red.svg');
  background-position: 50%;
  background-repeat: repeat-x;
  background-size: contain;
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  height: 425px;
  max-height: 100vh;
  margin-top: 20px;
  margin-bottom: 20px;
  display: flex;
  position: relative;
}

.about {
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.left-arrow {
  width: 40px;
  display: none;
  left: 0;
}

.poster-title {
  width: 100%;
  margin-top: 4px;
  margin-bottom: 1px;
  font-size: 1.8em;
  font-weight: 400;
  line-height: 1.2;
  position: relative;
}

.slide-nav {
  height: 30px;
  display: none;
  bottom: -30px;
}

.poster-frame {
  aspect-ratio: 4 / 5;
  text-align: center;
  border: 3px solid #353535;
  flex-flow: column-reverse;
  max-width: 90vw;
  height: 90%;
  transition: transform .2s;
  position: relative;
  box-shadow: 0 2px 5px 1px #0003;
}

.right-arrow {
  width: 40px;
  display: none;
  right: 0;
}

.slider-arrow {
  color: #262626;
}

.featured-work {
  background-color: #0000;
  width: 100%;
  height: 69%;
  max-height: 350px;
  position: absolute;
  bottom: 7.7%;
}

.poster-image {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.feature-heading {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 3.2em;
  position: absolute;
  top: 11.3%;
}

.slide {
  width: 330px;
  max-width: 33%;
}

.slide-div {
  flex-flow: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  display: flex;
}

.system-map {
  flex-flow: column;
  justify-content: center;
  align-items: center;
  display: flex;
}

.system-map-div {
  width: 900px;
  max-width: 95%;
  margin-top: 13em;
  margin-bottom: 18em;
  position: relative;
}

.map-background {
  aspect-ratio: 4;
  object-fit: cover;
}

.system-map-station {
  z-index: 2;
  transform-origin: 0 0;
  background-color: #fff;
  border: 2px solid #000;
  border-radius: 50%;
  flex-flow: row;
  justify-content: flex-start;
  align-items: center;
  width: 1.4rem;
  height: 1.4rem;
  padding: 0;
  text-decoration: underline;
  display: flex;
  position: absolute;
  top: 0%;
  left: 0%;
  transform: none;
}

.system-map-station:hover {
  border-color: var(--_text---gray-2);
  color: var(--_text---gray-1);
}

.system-map-station:active {
  background-color: var(--_text---gray-3);
  color: var(--_text---gray-2);
}

.system-map-station:focus-visible {
  border-style: dotted;
}

.system-map-station[data-wf-focus-visible] {
  border-style: dotted;
}

.system-map-station.el {
  top: 21.5%;
  transform: rotate(-45deg)translate(-50%, -50%);
}

.system-map-station.dl {
  top: 78.1%;
  transform: rotate(45deg)translate(-50%, -50%);
}

.system-map-text {
  flex: none;
  padding: .5em;
  font-size: 1.7em;
  font-weight: 500;
}

.system-map-text.el {
  transform: translate(1.2em, -1.2em);
}

.system-map-text.dl {
  transform: translate(1.2em, 1.2em);
}

.system-map-title {
  margin-top: 1em;
  font-size: 3.2em;
}

.simulation {
  justify-content: center;
  align-items: stretch;
  width: 100%;
  max-width: 940px;
  margin-top: 16px;
  margin-bottom: 32px;
  display: flex;
  overflow: hidden;
}

.pdf-link {
  margin-bottom: 1em;
  font-size: 1.4em;
  text-decoration: underline;
}

.pdf-link:hover {
  color: var(--_text---gray-1);
}

.pdf-link:active {
  color: var(--_text---gray-2);
}

.tab-pane, .tab-pane.dl, .tab-pane.el {
  --_design---background-gray: #f9faf7;
  --_design---line-color: black;
  --_design---resume-blue: #369;
  --_design---portfolio-peach: #fb7;
  --_design---foreground-gray: #f3f3f3;
  --_design---tile-red: #991f1f;
}

.poster-text {
  background-color: #f3f3f3eb;
  flex-flow: column;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  display: flex;
  position: absolute;
  bottom: 0;
}

.poster-description {
  margin: 1px 8px;
  font-size: 1.4em;
  font-weight: 300;
  position: relative;
  overflow: clip;
}

@media screen and (max-width: 991px) {
  .main-content {
    flex-flow: column;
  }

  .title-heading {
    font-size: 4.2em;
  }

  .navbar {
    z-index: 200;
  }

  .nav-menu-div {
    background-color: var(--_design---background-gray);
    width: 25em;
    max-width: 90vw;
    max-height: 90vh;
    margin-left: 30px;
    padding-left: 20px;
    padding-right: 20px;
    position: fixed;
    top: 80px;
    left: 0;
    right: 0;
    box-shadow: 0 2px 5px 1px #0003;
  }

  .menu-button-div {
    align-items: center;
    display: flex;
  }

  .main-station-info {
    grid-column-gap: 3rem;
    grid-row-gap: 3rem;
  }

  .main-map-div {
    flex-flow: column;
    justify-content: flex-start;
    align-items: flex-start;
  }

  .subway-lines-div {
    grid-column-gap: 82px;
    grid-row-gap: 82px;
    flex-flow: row;
  }

  .engineering-line-div {
    flex-flow: column;
    width: 300px;
    margin-bottom: 0;
  }

  .junction-div {
    text-align: center;
    width: 100%;
    padding-bottom: 10px;
  }

  .design-line-div {
    flex-flow: column;
    width: 300px;
  }

  .engineering-track {
    width: 24px;
    height: auto;
    inset: 0% 0% 0% auto;
  }

  .design-track {
    width: 24px;
    height: auto;
    margin-top: 0;
    inset: 0% auto 0% 0%;
  }

  .e-line-name-div {
    text-align: right;
    flex-flow: column;
    width: auto;
    margin-left: 0;
    margin-right: 36px;
  }

  .d-line-name-div {
    width: auto;
    height: auto;
    margin-bottom: 0;
    margin-left: 36px;
  }

  .junction-image {
    background-image: url('../images/junction-medium.svg');
    background-position: 0 100%;
    width: 130px;
    height: 274px;
  }

  .future-work {
    inset: auto auto 10px 378px;
  }

  .contact {
    width: 450px;
  }

  .sign-text {
    justify-content: center;
    align-items: center;
  }

  .next-station, .previous-station {
    display: none;
  }

  .slide {
    width: 310px;
  }
}

@media screen and (max-width: 767px) {
  body {
    --_text---normal-color: black;
    --_text---paragraph-spacing: 1em;
    --_text---subheading-gray: #262626;
    --_text---text-light-gray: #757575;
    --_text---gray-2: #a6a6a6;
    --_text---gray-1: gray;
    --_text---gray-3: #d9d9d9;
    --_text---visited-gray: #b3b3b3;
    --_text---small-header: 2.5em;
    --_text---large-header: 3.8em;
  }

  .project-div {
    margin: 0;
  }

  .menu-button {
    width: 50px;
    height: 62px;
    top: 0;
    left: 0;
  }

  .menu-button:active {
    color: #000;
  }

  .menu-button.w--open {
    background-color: var(--_design---background-gray);
    color: #000;
  }

  .about-div {
    grid-template-columns: minmax(80px, 1fr);
    justify-items: center;
  }

  .nav-menu-div {
    background-color: var(--_design---background-gray);
    max-width: 95vw;
    margin-left: 8px;
    top: 62px;
  }

  .nav-line-name {
    text-align: left;
  }

  .menu-icon {
    width: 24px;
    height: 24px;
    top: 25px;
    left: 10px;
  }

  .comparison-grid {
    grid-template-columns: 1fr;
  }

  .project-heading {
    flex-flow: column;
  }

  .main-map-div {
    justify-content: flex-start;
    align-items: center;
    overflow: auto;
  }

  .subway-lines-div {
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    flex-flow: column;
  }

  .engineering-line-div {
    align-items: flex-end;
    width: 100%;
    margin-bottom: 2rem;
  }

  .junction-div {
    flex-flow: row-reverse;
    justify-content: flex-start;
    align-items: flex-end;
  }

  .design-line-div {
    align-items: flex-end;
    width: 100%;
    padding-bottom: 1.5rem;
    padding-right: 26px;
  }

  .engineering-track {
    bottom: -20rem;
  }

  .design-track {
    left: auto;
    right: 26px;
  }

  .e-line-name-div {
    padding-bottom: .625rem;
  }

  .d-line-name-div {
    justify-content: flex-start;
    align-items: flex-end;
    margin-left: 0;
    margin-right: 36px;
    padding-bottom: .625rem;
  }

  .junction-image {
    background-image: url('../images/junction-small.svg');
    width: 50px;
    height: 150px;
  }

  .title-div {
    flex-flow: column;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4em;
  }

  .future-work {
    margin-right: 12px;
    position: static;
    left: auto;
    right: 120px;
  }

  .overhead-sign {
    padding-left: 5px;
    padding-right: 5px;
  }

  .sign-posts {
    height: 8px;
  }

  .sign-line {
    height: 12px;
  }

  .station-name {
    font-size: 1.8em;
  }

  .station-name.off-line {
    font-size: 3em;
  }

  .left-arrow {
    display: block;
    left: 20px;
  }

  .slide-nav {
    display: block;
    bottom: -17px;
  }

  .poster-frame {
    margin-left: 10px;
    margin-right: 10px;
  }

  .right-arrow {
    display: block;
    right: 20px;
  }

  .slide {
    width: 100%;
    max-width: none;
  }

  .system-map-div {
    margin-top: 12em;
    margin-bottom: 15em;
  }

  .system-map-station {
    width: 1.2rem;
    height: 1.2rem;
  }

  .system-map-text {
    margin-right: 1.5em;
    font-size: 1.4em;
    transform: none;
  }

  .system-map-text.el {
    transform: translate(1em, -1em);
  }

  .system-map-text.dl {
    transform: translate(1em, 1em);
  }
}

@media screen and (max-width: 479px) {
  .title-heading {
    max-width: 95%;
  }

  .main-station-div {
    padding-left: 0;
    padding-right: 0;
    display: flex;
  }

  .navbar {
    top: 0;
  }

  .project-heading {
    flex-flow: column;
    padding-left: 2px;
    padding-right: 2px;
  }

  .main-station-info {
    justify-content: space-around;
    align-items: center;
    max-width: 95%;
  }

  .main-map-div {
    justify-content: flex-start;
    align-items: flex-end;
    width: 90%;
  }

  .left-arrow {
    left: 0;
  }

  .right-arrow {
    right: 0;
  }

  .system-map-div {
    display: none;
  }

  .system-map-station {
    justify-content: flex-end;
    align-items: center;
    width: 1.3rem;
    height: 1.3rem;
    margin-top: 1em;
    margin-bottom: 1.5em;
    position: static;
  }

  .system-map-station.el, .system-map-station.dl {
    transform: translate(-12px)translate(50%);
  }

  .system-map-text {
    margin-right: 1.5em;
    font-size: 1.6em;
    transform: none;
  }

  .system-map-text.el, .system-map-text.dl {
    transform: none;
  }
}

#w-node-_1b022f2c-9a78-8522-4264-46e297707cbf-41a8ed38, #w-node-_2201e779-bbac-24eb-a00c-cdf58cbb4b49-5b9f9c75, #w-node-_2201e779-bbac-24eb-a00c-cdf58cbb4b4d-5b9f9c75, #w-node-e5cc350c-ffd6-08c6-a740-f1690e1f458b-d1eadc48 {
  grid-area: span 1 / span 1 / span 1 / span 1;
}


@font-face {
  font-family: 'Tahoma Small Cap';
  src: url('../fonts/TahomSCB.TTF') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url('../fonts/SourceSans3-VariableFont_wght.ttf') format('truetype');
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Source Sans 3';
  src: url('../fonts/SourceSans3-Italic-VariableFont_wght.ttf') format('truetype');
  font-weight: 200 900;
  font-style: italic;
  font-display: swap;
}