.night-station[hidden],
.night-station-results article[hidden],
.night-station-action-bar button[hidden],
.paper-window[hidden],
.paper-window-stop[hidden],
.paper-window-action-bar button[hidden],
.overnight-theatre[hidden],
.overnight-planner[hidden],
.overnight-closed[hidden],
.overnight-morning[hidden],
.overnight-action-bar button[hidden],
.departure-hall[hidden],
.departure-field-note button[hidden],
.departure-restored-route[hidden] { display: none; }

.night-station {
  position: relative;
  z-index: 2;
  display: grid;
  min-width: 0;
  padding: clamp(12px, 2.4vw, 22px);
  gap: 16px;
  border: 4px double var(--board-ink);
  color: var(--board-ink);
  background:
    linear-gradient(90deg, transparent 0 23px, rgb(23 55 47 / 7%) 24px 25px, transparent 26px),
    #171f2d;
  box-shadow: 6px 6px 0 #a73345;
}

.night-station-heading {
  display: grid;
  min-width: 0;
  grid-template-columns: 72px minmax(0, 1fr) 92px;
  gap: 13px;
  align-items: center;
  color: #fff9e9;
}
.night-station-heading > div { display: grid; min-width: 0; gap: 4px; }
.night-station-heading h3,
.night-station-heading p,
.night-station-brief h4,
.night-station-brief p,
.night-station-action-bar p { margin: 0; }
.night-station-heading h3 { font: 900 clamp(1.35rem, 3.5vw, 2.35rem)/0.98 Georgia, serif; }
.night-station-heading p { max-width: 740px; color: #d6e2dc; font: 700 0.65rem/1.42 system-ui, sans-serif; }
.night-station-heading small,
.night-station-brief small,
.night-station-action-bar small { color: #ffb0c6; font: 950 0.43rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.06em; }

.night-station-shift-mark,
.night-station-hours {
  display: grid;
  min-height: 64px;
  padding: 7px;
  place-items: center;
  border: 3px solid #f4c94e;
  color: #f4c94e;
  font: 950 0.38rem/1.08 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-3deg);
}
.night-station-hours { border-color: #69a99d; color: #d6e2dc; transform: rotate(2deg); }
.night-station-hours b { color: #fff2b9; font-size: 0.36rem; }

.night-station-stage { position: relative; min-width: 0; min-height: 380px; overflow: hidden; border: 3px solid #fff9e9; background: #263348; isolation: isolate; }
.night-station-stage::before { position: absolute; inset: 0; z-index: -3; background: radial-gradient(circle at 78% 14%, #fff1a8 0 4px, transparent 5px), radial-gradient(circle at 20% 22%, #fff9e9 0 2px, transparent 3px), linear-gradient(#172032 0 62%, #5d676b 63% 100%); content: ""; }

.night-station-map-halves {
  position: absolute;
  inset: 16px 18px auto;
  z-index: -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  opacity: 0.77;
  transform: rotate(-1deg);
}
.night-station-map-halves article { display: grid; min-width: 0; min-height: 235px; padding: 12px; grid-template-columns: 92px minmax(0, 1fr); gap: 9px; align-items: start; border: 2px solid #17372f; background: #ded4b7; box-shadow: 3px 4px 0 rgb(0 0 0 / 35%); }
.night-station-map-halves article:first-child { clip-path: polygon(0 0, 100% 3%, 94% 21%, 100% 43%, 95% 63%, 100% 82%, 96% 100%, 0 97%); }
.night-station-map-halves article:last-child { clip-path: polygon(4% 3%, 100% 0, 100% 97%, 4% 100%, 0 82%, 5% 63%, 0 43%, 6% 21%); }
.night-station-map-mark { position: relative; display: block; width: 82px; height: 118px; background: repeating-linear-gradient(20deg, transparent 0 12px, rgb(23 55 47 / 15%) 13px 14px); }
.night-station-map-mark i,
.night-station-map-mark b { position: absolute; display: block; }
.night-station-map-mark i:first-child { top: 14px; left: 4px; width: 69px; height: 52px; border: 4px solid #357d72; border-right: 0; border-bottom: 0; border-radius: 50% 0 0; transform: rotate(12deg); }
.night-station-map-mark b { top: 72px; left: 15px; width: 48px; border-top: 4px dotted #a73345; transform: rotate(-24deg); }
.night-station-map-mark i:last-child { right: 5px; bottom: 3px; width: 15px; height: 15px; border: 3px double #17372f; border-radius: 50%; }
.night-station-map-halves article:last-child .night-station-map-mark { transform: scaleX(-1); }
.night-station-map-copy { display: grid; min-width: 0; gap: 5px; }
.night-station-map-copy small { color: #a73345; font: 950 0.4rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.night-station-map-copy strong { overflow-wrap: anywhere; color: #17372f; font: 900 0.82rem/1.12 system-ui, sans-serif; }

.night-station-building { position: absolute; inset: auto 7% 18px; z-index: 2; height: 245px; border: 4px solid #101722; background: repeating-linear-gradient(90deg, #f0e4c9 0 44px, #dfceb0 45px 47px); box-shadow: 8px 9px 0 rgb(0 0 0 / 42%); }
.night-station-roof { position: absolute; left: -5%; right: -5%; top: -48px; display: flex; height: 50px; align-items: center; justify-content: center; gap: 16px; border: 4px solid #101722; background: #a73345; clip-path: polygon(4% 0, 96% 0, 100% 100%, 0 100%); }
.night-station-roof b { padding: 6px 13px; border: 2px solid #fff2b9; color: #fff2b9; background: #171f2d; font: 950 0.65rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.14em; }
.night-station-roof i { width: 12%; border-top: 3px solid #fff2b9; }
.night-station-lamp { position: absolute; top: 18px; left: 5%; display: grid; width: 58px; height: 86px; place-items: end center; }
.night-station-lamp i { position: absolute; top: 0; width: 42px; height: 42px; border: 4px solid #101722; border-radius: 50% 50% 12% 12%; background: #897c68; box-shadow: none; transition: background 240ms ease, box-shadow 240ms ease; }
.night-station-lamp::before { position: absolute; top: 39px; height: 30px; border-left: 5px solid #101722; content: ""; }
.night-station-lamp b,
.night-station-clock b { color: #17372f; font: 950 0.36rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.night-station-clock { position: absolute; top: 18px; right: 5%; display: grid; width: 68px; height: 86px; place-items: end center; }
.night-station-clock::before { position: absolute; top: 0; width: 58px; height: 58px; border: 4px double #101722; border-radius: 50%; background: #fff9e9; content: ""; }
.night-station-clock i { position: absolute; top: 9px; left: 32px; width: 4px; height: 24px; background: #a73345; transform-origin: 2px 20px; transform: rotate(0deg); transition: transform 480ms cubic-bezier(0.2, 0.8, 0.25, 1); }
.night-station-window { position: absolute; top: 112px; width: 22%; height: 75px; border: 4px solid #101722; background: repeating-linear-gradient(90deg, transparent 0 25px, #101722 26px 29px), #303e4d; box-shadow: inset 0 0 0 7px #69a99d; }
.night-station-window.is-left { left: 5%; }
.night-station-window.is-right { right: 5%; }
.night-station-door { position: absolute; left: calc(50% - 58px); bottom: 0; display: grid; width: 116px; height: 139px; place-items: start center; border: 4px solid #101722; border-bottom: 0; background: #357d72; }
.night-station-door i { position: absolute; right: 10px; top: 66px; width: 9px; height: 9px; border-radius: 50%; background: #f4c94e; }
.night-station-door b { margin-top: 18px; padding: 7px; border: 2px solid #101722; color: #17372f; background: #fff9e9; font: 950 0.42rem/1.1 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; white-space: pre-line; }
.night-station-parcel { position: absolute; right: 16%; bottom: 18px; display: grid; width: 94px; height: 67px; padding: 8px; place-items: center; border: 4px solid #101722; background: #bd8b56; transition: right 420ms cubic-bezier(0.2, 0.8, 0.25, 1), transform 420ms cubic-bezier(0.2, 0.8, 0.25, 1), background 220ms ease; }
.night-station-parcel::after { position: absolute; top: 0; bottom: 0; left: 44%; border-left: 5px solid #e3c78f; content: ""; }
.night-station-parcel i,
.night-station-parcel b { position: relative; z-index: 1; padding: 2px 4px; color: #17372f; background: #fff9e9; font: 950 0.34rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; font-style: normal; }
.night-station-platform { position: absolute; left: -3%; right: -3%; bottom: -34px; display: flex; height: 34px; align-items: center; justify-content: center; gap: 10px; border: 4px solid #101722; background: #f4c94e; }
.night-station-platform i { width: 10%; border-top: 3px solid #a73345; }
.night-station-platform b { font: 950 0.37rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; }

.night-station[data-ending-route="parcel-hotel"] .night-station-lamp i { background: #fff1a8; box-shadow: 0 0 0 8px rgb(244 201 78 / 20%), 0 0 34px 15px rgb(244 201 78 / 48%); }
.night-station[data-ending-route="parcel-express"] .night-station-lamp i { background: #ff718d; box-shadow: 0 0 0 8px rgb(167 51 69 / 20%), 0 0 34px 15px rgb(255 113 141 / 42%); }
.night-station[data-ending-route="parcel-hotel"] .night-station-clock i { transform: rotate(102deg); }
.night-station[data-ending-route="parcel-express"] .night-station-clock i { transform: rotate(198deg); }
.night-station[data-ending-route="parcel-hotel"] .night-station-parcel { right: 17%; background: #f0a8bb; transform: translateY(-83px) rotate(4deg); }
.night-station[data-ending-route="parcel-hotel"] .night-station-parcel::before { position: absolute; top: -20px; left: 10px; right: 10px; height: 17px; border: 3px solid #101722; background: repeating-linear-gradient(90deg, #fff9e9 0 10px, #a73345 11px 20px); content: ""; }
.night-station[data-ending-route="parcel-express"] .night-station-parcel { right: calc(100% - 132px); width: 112px; background: #f4c94e; transform: translateY(-76px) rotate(-7deg); }
.night-station[data-ending-route="parcel-express"] .night-station-parcel::before { position: absolute; right: -22px; bottom: -8px; width: 18px; height: 18px; border: 4px solid #101722; border-radius: 50%; background: #fff9e9; box-shadow: -86px 0 0 -4px #fff9e9, -86px 0 0 0 #101722; content: ""; }
.night-station[data-parcel-state="handled"] .night-station-parcel i { color: #fff9e9; background: #a73345; }

.night-station-results { display: grid; min-width: 0; gap: 11px; }
.night-station-results article { position: relative; display: grid; min-width: 0; padding: 15px 18px 15px 94px; gap: 14px; border: 3px solid #f4c94e; color: #17372f; background: #fff9e9; box-shadow: 4px 4px 0 #a73345; }
.night-station-results article[data-ending-route="parcel-express"] { border-color: #ff8daa; background: #dcebe0; box-shadow: 4px 4px 0 #f4c94e; }
.night-station-result-stamp { position: absolute; left: 13px; top: 50%; display: grid; width: 62px; min-height: 46px; padding: 6px; place-items: center; border: 3px double #a73345; color: #a73345; font: 950 0.45rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; transform: translateY(-50%) rotate(-5deg); }
.night-station-results article[data-ending-route="parcel-express"] .night-station-result-stamp { border-color: #17372f; color: #17372f; transform: translateY(-50%) rotate(5deg); }
.night-station-results article > div { display: grid; min-width: 0; gap: 4px; }
.night-station-results small { color: #a73345; font: 950 0.42rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.04em; }
.night-station-results h4,
.night-station-results p { margin: 0; }
.night-station-results h4 { font: 900 clamp(1.05rem, 2.6vw, 1.55rem)/1 Georgia, serif; }
.night-station-results p { max-width: 830px; color: #3c5f56; font: 720 0.62rem/1.4 system-ui, sans-serif; }

.night-station-brief { display: grid; min-width: 0; padding: 14px; grid-template-columns: minmax(190px, 0.7fr) minmax(0, 1fr); gap: 14px; align-items: center; background: #fff9e9; border: 3px solid #f4c94e; }
.night-station-brief > div:first-child { display: grid; min-width: 0; gap: 5px; }
.night-station-brief h4 { font: 900 clamp(1.05rem, 2.5vw, 1.55rem)/1 Georgia, serif; }
.night-station-brief p { color: #3c5f56; font: 720 0.61rem/1.4 system-ui, sans-serif; }
.night-station-choices { display: grid; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.night-station-choices button { display: grid; min-width: 0; min-height: 76px; padding: 8px; grid-template-columns: 48px minmax(0, 1fr); gap: 8px; align-items: center; border: 2px solid #17372f; color: #17372f; background: #e8dfc8; box-shadow: 3px 3px 0 #17372f; text-align: left; cursor: pointer; }
.night-station-choices button:hover:not(:disabled) { background: #fff1a8; transform: translateY(-1px); }
.night-station-choices button[aria-pressed="true"] { background: #dcebe0; box-shadow: inset 6px 0 0 #a73345, 3px 3px 0 #17372f; }
.night-station-choices button:disabled { opacity: 1; cursor: default; }
.night-station-choices button > span:first-child { white-space: pre-line; display: grid; min-height: 46px; place-items: center; border: 2px double #a73345; color: #a73345; background: #fff9e9; font: 950 0.34rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; }
.night-station-choice-copy { display: grid; min-width: 0; gap: 3px; }
.night-station-choice-copy small { color: #a73345; font: 950 0.38rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.night-station-choice-copy strong { overflow-wrap: anywhere; font: 900 0.68rem/1.15 system-ui, sans-serif; }
.night-station-choice-copy > span { color: #3c5f56; font: 720 0.5rem/1.25 system-ui, sans-serif; }

.night-station-action-bar { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) minmax(220px, 340px); gap: 14px; align-items: center; color: #fff9e9; }
.night-station-action-bar p { min-height: 1.5em; font: 800 0.62rem/1.35 system-ui, sans-serif; }
.night-station-action-bar button { display: flex; min-height: 62px; padding: 9px 11px; align-items: center; justify-content: space-between; gap: 10px; border: 3px solid #fff9e9; color: #17372f; background: #f4c94e; box-shadow: 4px 4px 0 #a73345; cursor: pointer; }
.night-station-action-bar button:disabled { opacity: 0.48; cursor: not-allowed; }
.night-station-action-bar button > span { display: grid; gap: 2px; text-align: left; }
.night-station-action-bar button small { color: #a73345; }
.night-station-action-bar button strong { font: 900 0.68rem/1.1 system-ui, sans-serif; }
.night-station-action-bar button > b { padding-left: 10px; border-left: 2px dashed #a73345; color: #a73345; font: 950 0.42rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.night-station:focus-visible,
.night-station button:focus-visible,
.paper-window-stop:focus-visible { outline: 4px solid #5f9fff; outline-offset: 3px; }

.paper-window {
  display: grid;
  min-width: 0;
  padding: clamp(12px, 2.2vw, 20px);
  gap: 14px;
  border: 4px double #17372f;
  color: #17372f;
  background:
    linear-gradient(90deg, transparent 0 31px, rgb(167 51 69 / 10%) 32px 34px, transparent 35px),
    #f6edda;
  box-shadow: 6px 6px 0 #f4c94e;
}

.paper-window-heading {
  display: grid;
  min-width: 0;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}
.paper-window-heading > span {
  display: grid;
  min-height: 58px;
  padding: 6px;
  place-items: center;
  border: 3px double #a73345;
  color: #a73345;
  font: 950 0.38rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-3deg);
}
.paper-window-heading > div { display: grid; min-width: 0; gap: 4px; }
.paper-window-heading small { color: #a73345; font: 950 0.42rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.05em; }
.paper-window-heading h4,
.paper-window-heading p,
.paper-window-action-bar p,
.paper-window-stop h4,
.paper-window-stop p { margin: 0; }
.paper-window-heading h4 { font: 900 clamp(1.25rem, 3vw, 2rem)/1 Georgia, serif; }
.paper-window-heading p { color: #3c5f56; font: 720 0.61rem/1.4 system-ui, sans-serif; }
.paper-window-heading > b {
  padding: 8px;
  border: 3px solid #357d72;
  color: #357d72;
  background: #fff9e9;
  font: 950 0.4rem/1.1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(2deg);
}
.paper-window[data-window-state="open"] .paper-window-heading > b { border-color: #a73345; color: #a73345; }

.paper-window-scene {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 270px;
  overflow: hidden;
  place-items: center;
  border: 4px solid #17372f;
  background:
    radial-gradient(circle at 20% 18%, #fff9e9 0 3px, transparent 4px),
    radial-gradient(circle at 82% 28%, #fff2b9 0 2px, transparent 3px),
    linear-gradient(#25354b 0 58%, #a96f62 59% 62%, #31584e 63% 100%);
  box-shadow: inset 0 0 0 9px #357d72;
  isolation: isolate;
}
.paper-window-scene::after {
  position: absolute;
  left: 7%;
  right: 7%;
  bottom: 17px;
  z-index: -1;
  border-top: 6px double #f4c94e;
  content: "";
  transform: rotate(-2deg);
}
.paper-window-shutters { position: absolute; inset: 9px; z-index: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); pointer-events: none; }
.paper-window-half {
  display: grid;
  min-width: 0;
  padding: 20px;
  align-content: center;
  gap: 8px;
  border: 3px solid #17372f;
  color: #17372f;
  background:
    repeating-linear-gradient(22deg, transparent 0 22px, rgb(53 125 114 / 16%) 23px 25px),
    #dfd2b2;
  box-shadow: inset 0 0 0 8px rgb(255 249 233 / 45%);
  transition: transform 650ms cubic-bezier(0.2, 0.8, 0.25, 1);
}
.paper-window-half:first-child { justify-items: end; border-right: 2px dashed #a73345; text-align: right; transform-origin: left center; }
.paper-window-half:last-child { border-left: 2px dashed #a73345; transform-origin: right center; }
.paper-window-half small { color: #a73345; font: 950 0.4rem/1.15 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.paper-window-half strong { max-width: 210px; overflow-wrap: anywhere; font: 900 clamp(0.8rem, 2vw, 1.15rem)/1.05 Georgia, serif; }
.paper-window[data-window-state="open"] .paper-window-half:first-child { transform: translateX(-88%) rotateY(14deg); }
.paper-window[data-window-state="open"] .paper-window-half:last-child { transform: translateX(88%) rotateY(-14deg); }

.paper-window-stop {
  position: relative;
  z-index: 1;
  display: grid;
  width: min(78%, 560px);
  min-width: 0;
  padding: 22px 78px 22px 22px;
  gap: 6px;
  border: 4px double #f4c94e;
  color: #17372f;
  background: #fff1c9;
  box-shadow: 7px 8px 0 rgb(0 0 0 / 35%);
}
.paper-window-stop small { color: #a73345; font: 950 0.42rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.paper-window-stop h4 { font: 900 clamp(1.25rem, 3vw, 2rem)/1 Georgia, serif; }
.paper-window-stop p { color: #3c5f56; font: 720 0.62rem/1.4 system-ui, sans-serif; }
.paper-window-stop code { margin-top: 4px; overflow-wrap: anywhere; color: #a73345; font: 900 0.45rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.paper-window-stop > span { position: absolute; right: 13px; top: 50%; padding: 8px; border: 3px double #a73345; color: #a73345; font: 950 0.4rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; transform: translateY(-50%) rotate(5deg); }

.paper-window-action-bar { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) minmax(220px, 340px); gap: 14px; align-items: center; }
.paper-window-action-bar p { color: #3c5f56; font: 800 0.62rem/1.35 system-ui, sans-serif; }
.paper-window-action-bar button { display: flex; min-height: 62px; padding: 9px 11px; align-items: center; justify-content: space-between; gap: 10px; border: 3px solid #17372f; color: #fff9e9; background: #a73345; box-shadow: 4px 4px 0 #f4c94e; cursor: pointer; }
.paper-window-action-bar button:hover { background: #7d2635; transform: translateY(-1px); }
.paper-window-action-bar button > span { display: grid; gap: 2px; text-align: left; }
.paper-window-action-bar button small { color: #fff2b9; font: 950 0.41rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.paper-window-action-bar button strong { font: 900 0.68rem/1.1 system-ui, sans-serif; }
.paper-window-action-bar button > b { padding-left: 10px; border-left: 2px dashed #fff2b9; color: #fff2b9; font: 950 0.42rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace; }

.overnight-theatre {
  display: grid;
  min-width: 0;
  padding: clamp(11px, 2.2vw, 18px);
  gap: 13px;
  border: 4px solid #17372f;
  color: #17372f;
  background:
    linear-gradient(90deg, transparent 0 20px, rgb(167 51 69 / 9%) 21px 23px, transparent 24px),
    #efe2c7;
  box-shadow: inset 0 0 0 5px #fff9e9, 5px 5px 0 #357d72;
}
.overnight-heading {
  display: grid;
  min-width: 0;
  grid-template-columns: 64px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
}
.overnight-heading > span {
  display: grid;
  min-height: 58px;
  padding: 5px;
  place-items: center;
  border: 3px double #a73345;
  color: #a73345;
  background: #fff9e9;
  font: 950 0.36rem/1.08 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-3deg);
}
.overnight-heading > div { display: grid; min-width: 0; gap: 4px; }
.overnight-heading small,
.overnight-planner small,
.overnight-closed small,
.overnight-morning small { color: #a73345; font: 950 0.42rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.05em; }
.overnight-heading h4,
.overnight-heading p,
.overnight-planner h5,
.overnight-planner p,
.overnight-closed h5,
.overnight-closed p,
.overnight-morning h5,
.overnight-morning p,
.overnight-action-bar p { margin: 0; }
.overnight-heading h4 { font: 900 clamp(1.2rem, 3vw, 1.9rem)/1 Georgia, serif; }
.overnight-heading p { color: #3c5f56; font: 720 0.62rem/1.4 system-ui, sans-serif; }
.overnight-heading > b {
  padding: 8px;
  border: 3px solid #357d72;
  color: #357d72;
  background: #fff9e9;
  font: 950 0.4rem/1.1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(2deg);
}
.overnight-theatre[data-overnight-state="closed"] .overnight-heading > b { border-color: #25354b; color: #25354b; }
.overnight-theatre[data-overnight-state="morning"] .overnight-heading > b { border-color: #a73345; color: #a73345; background: #fff1a8; }

.overnight-stage {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 270px;
  overflow: hidden;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
  padding: 62px 7% 25px;
  border: 4px solid #17372f;
  background:
    radial-gradient(circle at 52% 16%, #fff1a8 0 9px, transparent 10px),
    linear-gradient(#26344c 0 66%, #a96f62 67% 70%, #31584e 71% 100%);
  box-shadow: inset 0 0 0 8px #357d72;
  isolation: isolate;
}
.overnight-theatre[data-overnight-state="morning"] .overnight-stage {
  background:
    radial-gradient(circle at 78% 16%, #fff1a8 0 22px, #f4c94e 23px 28px, transparent 29px),
    linear-gradient(#9bc8c0 0 66%, #dc9b78 67% 70%, #5f8d69 71% 100%);
}
.overnight-curtain {
  position: absolute;
  inset: 8px auto 8px 8px;
  z-index: 4;
  width: calc(50% - 8px);
  border: 4px solid #661f31;
  background: repeating-linear-gradient(90deg, #8f2940 0 20px, #b53e56 21px 36px, #762238 37px 43px);
  box-shadow: inset -8px 0 0 rgb(255 249 233 / 12%);
  transform: translateX(-94%);
  transition: transform 540ms cubic-bezier(0.2, 0.8, 0.25, 1);
  pointer-events: none;
}
.overnight-curtain.is-right { left: auto; right: 8px; box-shadow: inset 8px 0 0 rgb(255 249 233 / 12%); transform: translateX(94%); }
.overnight-theatre[data-overnight-state="closed"] .overnight-curtain { transform: translateX(0); }
.overnight-moon { position: absolute; top: 20px; right: 10%; color: #fff1a8; font: 950 0.5rem/1.1 ui-monospace, "SFMono-Regular", Menlo, monospace; transform: rotate(8deg); }
.overnight-theatre[data-overnight-state="morning"] .overnight-moon { color: #a73345; }
.overnight-place {
  position: relative;
  z-index: 1;
  display: grid;
  min-width: 0;
  min-height: 135px;
  padding: 13px;
  align-content: end;
  gap: 6px;
  border: 3px solid #17372f;
  background: #ded4b7;
  box-shadow: 5px 6px 0 rgb(0 0 0 / 30%);
}
.overnight-place small { color: #a73345; font: 950 0.42rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.overnight-place strong { overflow-wrap: anywhere; font: 900 clamp(0.74rem, 2vw, 1rem)/1.12 system-ui, sans-serif; }
.overnight-place > span { position: absolute; top: 11px; right: 12px; color: #357d72; font: 950 0.42rem/1.1 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; }
.overnight-place.is-platform { border-radius: 50% 50% 0 0 / 18px 18px 0 0; }
.overnight-place.is-platform::after { display: block; margin-top: 6px; border-top: 5px double #a73345; content: ""; }
.overnight-place.is-waiting-room { background: #fff1c9; box-shadow: inset 0 0 0 7px rgb(167 51 69 / 10%), 5px 6px 0 rgb(0 0 0 / 30%); }
.overnight-desk { position: absolute; left: 50%; bottom: 17px; z-index: 2; display: grid; width: 94px; min-height: 52px; padding: 7px; place-items: center; border: 3px solid #17372f; background: #f4c94e; font: 950 0.34rem/1.1 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; transform: translateX(-50%) rotate(-2deg); }
.overnight-desk i { position: absolute; top: -10px; width: 22px; height: 12px; border: 3px solid #17372f; border-bottom: 0; border-radius: 50% 50% 0 0; background: #d6e2dc; }

.overnight-planner {
  display: grid;
  min-width: 0;
  padding: 13px;
  grid-template-columns: minmax(180px, 0.65fr) minmax(0, 1fr);
  gap: 13px;
  align-items: center;
  border: 3px solid #f4c94e;
  background: #fff9e9;
}
.overnight-planner > div:first-child { display: grid; min-width: 0; gap: 5px; }
.overnight-planner h5 { font: 900 clamp(1rem, 2.4vw, 1.35rem)/1 Georgia, serif; }
.overnight-planner p { color: #3c5f56; font: 720 0.6rem/1.38 system-ui, sans-serif; }
.overnight-assignments { display: grid; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.overnight-assignments button {
  display: grid;
  min-width: 0;
  min-height: 82px;
  padding: 8px;
  grid-template-columns: 51px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  border: 2px solid #17372f;
  color: #17372f;
  background: #e8dfc8;
  box-shadow: 3px 3px 0 #17372f;
  text-align: left;
  cursor: pointer;
}
.overnight-assignments button:hover { background: #fff1a8; transform: translateY(-1px); }
.overnight-assignments button[aria-pressed="true"] { background: #dcebe0; box-shadow: inset 5px 0 0 #a73345, 3px 3px 0 #17372f; }
.overnight-assignments button[data-place="waiting-room"] { border-style: double; background: #fff1c9; }
.overnight-assignments button > span:first-child { display: grid; min-height: 48px; place-items: center; border: 2px double #a73345; color: #a73345; background: #fff9e9; font: 950 0.34rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; white-space: pre-line; }
.overnight-assignment-copy { display: grid; min-width: 0; gap: 3px; }
.overnight-assignment-copy small { color: #a73345; font: 950 0.38rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.overnight-assignment-copy strong { overflow-wrap: anywhere; font: 900 0.67rem/1.12 system-ui, sans-serif; }
.overnight-assignment-copy > span { color: #3c5f56; font: 720 0.5rem/1.25 system-ui, sans-serif; }

.overnight-closed,
.overnight-morning {
  display: grid;
  min-width: 0;
  padding: 15px;
  grid-template-columns: 78px minmax(0, 1fr);
  gap: 13px;
  align-items: center;
  border: 4px double #17372f;
  background: #fff9e9;
}
.overnight-closed > span,
.overnight-sun { display: grid; min-height: 64px; padding: 7px; place-items: center; border: 3px solid #a73345; color: #a73345; background: #efe2c7; font: 950 0.38rem/1.1 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; transform: rotate(-3deg); }
.overnight-closed > div,
.overnight-morning > div { display: grid; min-width: 0; gap: 5px; }
.overnight-closed h5,
.overnight-morning h5 { font: 900 clamp(1.05rem, 2.6vw, 1.5rem)/1 Georgia, serif; }
.overnight-closed p,
.overnight-morning p { color: #3c5f56; font: 720 0.62rem/1.4 system-ui, sans-serif; }
.overnight-morning { grid-template-columns: 78px minmax(0, 1fr) minmax(180px, 0.45fr); border-color: #a73345; background: #fff1c9; }
.overnight-sun { border-radius: 50%; border-color: #f4c94e; color: #17372f; background: #fff1a8; transform: rotate(4deg); }
.overnight-source-links { display: grid; min-width: 0; gap: 6px; }
.overnight-source-links a { display: block; min-width: 0; padding: 8px; overflow-wrap: anywhere; border: 2px solid #17372f; color: #17372f; background: #fff9e9; font: 850 0.54rem/1.25 system-ui, sans-serif; text-decoration-thickness: 2px; text-underline-offset: 2px; }
.overnight-source-links a:hover { background: #dcebe0; }

.overnight-action-bar { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) minmax(220px, 340px); gap: 13px; align-items: center; }
.overnight-action-bar p { color: #3c5f56; font: 800 0.62rem/1.35 system-ui, sans-serif; }
.overnight-action-bar button { display: flex; min-height: 62px; padding: 9px 11px; align-items: center; justify-content: space-between; gap: 10px; border: 3px solid #17372f; color: #fff9e9; background: #357d72; box-shadow: 4px 4px 0 #a73345; cursor: pointer; }
.overnight-action-bar button:hover:not(:disabled) { background: #28675e; transform: translateY(-1px); }
.overnight-action-bar button:disabled { opacity: 0.48; cursor: not-allowed; }
.overnight-action-bar button > span { display: grid; gap: 2px; text-align: left; }
.overnight-action-bar button small { color: #fff1a8; font: 950 0.41rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.overnight-action-bar button strong { font: 900 0.67rem/1.1 system-ui, sans-serif; }
.overnight-action-bar button > b { padding-left: 10px; border-left: 2px dashed #fff1a8; color: #fff1a8; font: 950 0.42rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.overnight-theatre:focus-visible,
.overnight-theatre button:focus-visible,
.overnight-closed:focus-visible,
.overnight-morning:focus-visible,
.overnight-source-links a:focus-visible { outline: 4px solid #5f9fff; outline-offset: 3px; }

.departure-hall {
  display: grid;
  min-width: 0;
  padding: clamp(11px, 2.4vw, 20px);
  gap: 14px;
  border: 5px double #17372f;
  color: #17372f;
  background:
    repeating-linear-gradient(0deg, transparent 0 27px, rgb(23 55 47 / 6%) 28px 29px),
    #fff3cf;
  box-shadow: 6px 7px 0 #a73345;
}
.departure-hall-heading {
  display: grid;
  min-width: 0;
  grid-template-columns: 66px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}
.departure-hall-heading > span {
  display: grid;
  min-height: 62px;
  padding: 7px;
  place-items: center;
  border: 3px double #a73345;
  color: #a73345;
  background: #fff9e9;
  font: 950 0.34rem/1.08 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-3deg);
}
.departure-hall-heading > div { display: grid; min-width: 0; gap: 4px; }
.departure-hall-heading small,
.departure-field-note small,
.departure-restored-route small { color: #a73345; font: 950 0.41rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.05em; }
.departure-hall-heading h4,
.departure-hall-heading p,
.departure-field-note h5,
.departure-field-note p,
.departure-restored-route h5,
.departure-restored-route p,
.departure-source-tray p,
.departure-hall-status { margin: 0; }
.departure-hall-heading h4 { font: 900 clamp(1.45rem, 3.5vw, 2.35rem)/0.98 Georgia, serif; }
.departure-hall-heading p { color: #3c5f56; font: 720 0.62rem/1.4 system-ui, sans-serif; }
.departure-hall-heading > b {
  padding: 9px;
  border: 3px solid #a73345;
  color: #a73345;
  background: #fff9e9;
  font: 950 0.4rem/1.1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(2deg);
}
.departure-hall[data-route-state="saved"] .departure-hall-heading > b,
.departure-hall[data-route-state="restored"] .departure-hall-heading > b { color: #fff9e9; background: #a73345; }

.departure-hall-landmark {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 510px;
  overflow: hidden;
  grid-template-columns: minmax(0, 0.8fr) minmax(260px, 1.2fr);
  gap: 14px;
  align-items: end;
  padding: 18px;
  border: 5px solid #17372f;
  background:
    linear-gradient(180deg, #8cc8c2 0 55%, #efb987 56% 59%, #4f806d 60% 100%);
  box-shadow: inset 0 0 0 8px #f4c94e;
  isolation: isolate;
}
.departure-hall-rays {
  position: absolute;
  left: 50%;
  top: 13px;
  z-index: 0;
  width: min(76vw, 690px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: repeating-conic-gradient(from -8deg, rgb(255 241 168 / 72%) 0 8deg, transparent 9deg 19deg);
  transform: translateX(-50%);
}
.departure-hall-flag {
  position: absolute;
  right: 5%;
  top: 24px;
  z-index: 3;
  display: grid;
  width: 72px;
  min-height: 54px;
  place-items: center;
  border: 3px solid #17372f;
  color: #fff9e9;
  background: #a73345;
  font: 950 0.38rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(5deg);
  transition: transform 300ms ease;
}
.departure-hall[data-route-state="saved"] .departure-hall-flag { transform: rotate(-4deg) translateY(-7px); }
.departure-hall-arch {
  position: absolute;
  left: 50%;
  top: 31px;
  z-index: 1;
  display: grid;
  width: min(58%, 540px);
  min-width: 360px;
  height: 395px;
  padding: 116px 22px 30px;
  place-content: center;
  gap: 12px;
  border: 13px solid #17372f;
  border-bottom-width: 22px;
  border-radius: 50% 50% 9px 9px / 34% 34% 9px 9px;
  color: #17372f;
  background: #f4c94e;
  box-shadow: inset 0 0 0 10px #fff1a8, 10px 10px 0 rgb(23 55 47 / 25%);
  text-align: center;
  transform: translateX(-50%);
}
.departure-hall-arch::after {
  position: absolute;
  left: 50%;
  bottom: -22px;
  width: 46%;
  height: 53%;
  border: 10px solid #17372f;
  border-bottom: 0;
  border-radius: 50% 50% 0 0;
  background: linear-gradient(#8cc8c2 0 46%, #4f806d 47% 100%);
  content: "";
  transform: translateX(-50%);
}
.departure-hall-arch > strong { font: 950 clamp(1.7rem, 5vw, 3.35rem)/0.8 Georgia, serif; letter-spacing: -0.06em; }
.departure-hall-arch > small { max-width: 300px; color: #a73345; font: 950 0.38rem/1.12 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.departure-hall-clock {
  position: absolute;
  left: 50%;
  top: -24px;
  display: grid;
  width: 116px;
  height: 116px;
  place-items: center;
  border: 9px double #17372f;
  border-radius: 50%;
  background: #fff9e9;
  transform: translateX(-50%);
}
.departure-hall-clock::before,
.departure-hall-clock i { position: absolute; left: calc(50% - 3px); bottom: 50%; width: 6px; height: 31px; border-radius: 4px; background: #a73345; content: ""; transform: rotate(25deg); transform-origin: 50% 100%; transition: transform 520ms cubic-bezier(0.2, 0.8, 0.25, 1); }
.departure-hall-clock i { height: 24px; background: #17372f; transform: rotate(126deg); }
.departure-hall[data-route-state="saved"] .departure-hall-clock i,
.departure-hall[data-route-state="restored"] .departure-hall-clock i { transform: rotate(246deg); }
.departure-hall-clock b { position: absolute; right: 13px; bottom: 9px; color: #a73345; font: 950 0.5rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; }

.departure-hall-board,
.departure-hall-landmark .overnight-morning { position: relative; z-index: 3; }
.departure-hall-board {
  display: grid;
  min-width: 0;
  padding: 15px;
  gap: 6px;
  border: 4px solid #f4c94e;
  color: #fff9e9;
  background: #17202f;
  box-shadow: 5px 5px 0 #a73345;
}
.departure-hall-board small { color: #f4c94e; font: 950 0.38rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.departure-hall-board strong { overflow-wrap: anywhere; color: #fff1a8; font: 950 clamp(0.95rem, 2.2vw, 1.35rem)/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.departure-hall-board span { color: #a8d8ce; font: 850 0.47rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.departure-hall-landmark .overnight-morning {
  display: grid;
  margin: 0;
  padding: 13px;
  grid-template-columns: 68px minmax(0, 1fr);
  border: 4px double #a73345;
  background: #fff9e9;
  box-shadow: 5px 5px 0 rgb(23 55 47 / 30%);
}

.departure-source-tray {
  min-width: 0;
  border: 3px solid #17372f;
  background: #e8dfc8;
  box-shadow: 4px 4px 0 #357d72;
}
.departure-source-tray summary {
  display: grid;
  min-width: 0;
  padding: 11px;
  grid-template-columns: minmax(0, 1fr) 58px;
  gap: 12px;
  align-items: center;
  cursor: pointer;
  list-style: none;
}
.departure-source-tray summary::-webkit-details-marker { display: none; }
.departure-source-tray summary > span { display: grid; min-width: 0; gap: 3px; }
.departure-source-tray summary small { color: #a73345; font: 950 0.38rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.departure-source-tray summary strong { font: 900 0.76rem/1.15 system-ui, sans-serif; }
.departure-source-tray summary > b { padding: 7px; border: 3px double #a73345; color: #a73345; background: #fff9e9; font: 950 0.35rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; transform: rotate(3deg); }
.departure-source-tray[open] summary { border-bottom: 2px dashed #a73345; background: #fff1c9; }
.departure-source-tray[open] summary > b { transform: rotate(-3deg); }
.departure-source-tray > p { padding: 11px 11px 0; color: #3c5f56; font: 720 0.58rem/1.4 system-ui, sans-serif; }
.departure-source-tray .overnight-source-links { padding: 11px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.departure-source-tray .overnight-source-links a { display: grid; gap: 3px; text-decoration: none; }
.departure-source-tray .overnight-source-links small { color: #a73345; font: 950 0.36rem/1.15 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.departure-source-tray .overnight-source-links strong { overflow-wrap: anywhere; font: 900 0.65rem/1.16 system-ui, sans-serif; }
.departure-source-tray .overnight-source-links span { color: #3c5f56; font: 720 0.48rem/1.28 system-ui, sans-serif; }

.departure-pack-desk { display: grid; min-width: 0; gap: 11px; }
.departure-field-note,
.departure-restored-route {
  display: grid;
  min-width: 0;
  padding: 14px;
  grid-template-columns: 72px minmax(0, 1fr) minmax(210px, 300px);
  gap: 13px;
  align-items: center;
  border: 4px solid #17372f;
  background: #fff9e9;
  box-shadow: 5px 5px 0 #f4c94e;
}
.departure-field-note > span,
.departure-restored-route > span { display: grid; min-height: 68px; padding: 7px; place-items: center; border: 3px double #a73345; color: #a73345; background: #fff1c9; font: 950 0.36rem/1.08 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; transform: rotate(-3deg); }
.departure-field-note > div,
.departure-restored-route > div { display: grid; min-width: 0; gap: 4px; }
.departure-field-note h5,
.departure-restored-route h5 { overflow-wrap: anywhere; font: 900 clamp(1.05rem, 2.4vw, 1.55rem)/1 Georgia, serif; }
.departure-field-note p,
.departure-restored-route p { color: #3c5f56; font: 720 0.59rem/1.38 system-ui, sans-serif; }
.departure-field-note code,
.departure-restored-route code { overflow-wrap: anywhere; color: #a73345; font: 900 0.4rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.departure-field-note button {
  display: flex;
  min-width: 0;
  min-height: 66px;
  padding: 9px 11px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border: 3px solid #17372f;
  color: #fff9e9;
  background: #a73345;
  box-shadow: 4px 4px 0 #f4c94e;
  cursor: pointer;
}
.departure-field-note button:hover:not(:disabled) { background: #7d2635; transform: translateY(-2px); }
.departure-field-note button:disabled { opacity: 0.5; cursor: not-allowed; }
.departure-field-note button > span { display: grid; gap: 3px; text-align: left; }
.departure-field-note button small { color: #fff1a8; }
.departure-field-note button strong { font: 900 0.66rem/1.1 system-ui, sans-serif; }
.departure-field-note button > b { padding-left: 10px; border-left: 2px dashed #fff1a8; color: #fff1a8; font: 950 0.38rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.departure-field-note[data-note-state="packed"] { border-style: double; background: #e1efe2; }
.departure-restored-route { grid-template-columns: 72px minmax(0, 1fr); border-color: #a73345; background: #dcebe0; box-shadow: 5px 5px 0 #357d72; }
.departure-restored-route[data-route-state="saved"] { animation: departure-route-arrives 520ms cubic-bezier(0.2, 0.8, 0.25, 1) both; }
.departure-hall-status { min-height: 1.5em; color: #3c5f56; font: 850 0.61rem/1.35 system-ui, sans-serif; }
.departure-hall:focus-visible,
.departure-source-tray summary:focus-visible,
.departure-field-note button:focus-visible,
.departure-restored-route:focus-visible { outline: 4px solid #5f9fff; outline-offset: 3px; }

@keyframes departure-route-arrives {
  from { opacity: 0; transform: translateY(18px) rotate(-1deg); }
  to { opacity: 1; transform: translateY(0) rotate(0); }
}

@media (max-width: 720px) {
  .night-station-stage { min-height: 440px; }
  .night-station-map-halves { inset: 10px 9px auto; grid-template-columns: 1fr; }
  .night-station-map-halves article { min-height: 128px; grid-template-columns: 72px minmax(0, 1fr); }
  .night-station-map-halves article:first-child { clip-path: polygon(0 0, 100% 2%, 98% 91%, 82% 100%, 61% 94%, 42% 100%, 20% 95%, 0 100%); }
  .night-station-map-halves article:last-child { margin-top: -8px; clip-path: polygon(0 7%, 20% 1%, 42% 7%, 61% 1%, 82% 7%, 100% 0, 100% 100%, 0 98%); }
  .night-station-map-mark { width: 64px; height: 82px; transform: scale(0.82); transform-origin: top left; }
  .night-station-map-halves article:last-child .night-station-map-mark { transform: scale(-0.82, 0.82); transform-origin: top center; }
  .night-station-building { inset: auto 4% 18px; height: 215px; }
  .night-station-window { top: 101px; width: 19%; height: 62px; }
  .night-station-door { height: 126px; }
  .night-station-parcel { right: 11%; width: 78px; }
  .night-station[data-ending-route="parcel-hotel"] .night-station-parcel { right: 10%; }
  .night-station[data-ending-route="parcel-express"] .night-station-parcel { right: calc(100% - 126px); }
  .night-station-brief { grid-template-columns: 1fr; }
  .paper-window-scene { min-height: 310px; }
  .paper-window-stop { width: min(84%, 560px); }
  .overnight-planner { grid-template-columns: 1fr; }
  .overnight-morning { grid-template-columns: 72px minmax(0, 1fr); }
  .overnight-source-links { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .departure-hall-landmark { min-height: 620px; grid-template-columns: 1fr; }
  .departure-hall-arch { width: min(76%, 500px); }
  .departure-field-note { grid-template-columns: 64px minmax(0, 1fr); }
  .departure-field-note button { grid-column: 1 / -1; width: 100%; }
}

@media (max-width: 500px) {
  .night-station { padding: 10px 7px; gap: 12px; box-shadow: 3px 3px 0 #a73345; }
  .night-station-heading { grid-template-columns: 54px minmax(0, 1fr); gap: 9px; }
  .night-station-shift-mark { min-height: 54px; font-size: 0.31rem; }
  .night-station-hours { grid-column: 1 / -1; min-height: 32px; grid-auto-flow: column; transform: none; }
  .night-station-stage { min-height: 420px; }
  .night-station-map-halves article { padding: 8px; }
  .night-station-building { left: 2%; right: 2%; }
  .night-station-lamp { left: 2%; }
  .night-station-clock { right: 2%; }
  .night-station-window { width: 17%; }
  .night-station-window.is-left { left: 3%; }
  .night-station-window.is-right { right: 3%; }
  .night-station-roof b { padding: 5px 7px; font-size: 0.5rem; }
  .night-station-platform b { max-width: 70%; font-size: 0.29rem; text-align: center; }
  .night-station-choices { grid-template-columns: 1fr; }
  .night-station-action-bar { grid-template-columns: 1fr; }
  .night-station-action-bar button { width: 100%; }
  .night-station-results article { padding: 80px 12px 12px; }
  .night-station-result-stamp { left: 12px; top: 12px; transform: rotate(-5deg); }
  .night-station-results article[data-ending-route="parcel-express"] .night-station-result-stamp { transform: rotate(5deg); }
  .paper-window { padding: 10px 7px; box-shadow: 3px 3px 0 #f4c94e; }
  .paper-window-heading { grid-template-columns: 54px minmax(0, 1fr); gap: 9px; }
  .paper-window-heading > b { grid-column: 1 / -1; justify-self: stretch; transform: none; }
  .paper-window-scene { min-height: 340px; }
  .paper-window-half { padding: 10px; }
  .paper-window-half small { font-size: 0.31rem; }
  .paper-window-stop { width: calc(100% - 38px); padding: 18px 15px 78px; }
  .paper-window-stop > span { left: 15px; right: auto; top: auto; bottom: 12px; transform: rotate(-4deg); }
  .paper-window-action-bar { grid-template-columns: 1fr; }
  .paper-window-action-bar button { width: 100%; }
  .overnight-theatre { padding: 9px 6px; box-shadow: 3px 3px 0 #357d72; }
  .overnight-heading { grid-template-columns: 54px minmax(0, 1fr); gap: 8px; }
  .overnight-heading > b { grid-column: 1 / -1; justify-self: stretch; transform: none; }
  .overnight-stage { min-height: 390px; grid-template-columns: 1fr; padding: 50px 28px 22px; }
  .overnight-place { min-height: 128px; }
  .overnight-desk { bottom: calc(50% - 28px); }
  .overnight-assignments { grid-template-columns: 1fr; }
  .overnight-action-bar { grid-template-columns: 1fr; }
  .overnight-action-bar button { width: 100%; }
  .overnight-closed,
  .overnight-morning { grid-template-columns: 1fr; }
  .overnight-closed > span,
  .overnight-sun { min-height: 44px; justify-self: stretch; border-radius: 0; transform: none; }
  .overnight-source-links { grid-template-columns: 1fr; }
  .departure-hall { padding: 9px 6px; box-shadow: 3px 3px 0 #a73345; }
  .departure-hall-heading { grid-template-columns: 54px minmax(0, 1fr); gap: 8px; }
  .departure-hall-heading > span { min-height: 54px; }
  .departure-hall-heading > b { grid-column: 1 / -1; justify-self: stretch; transform: none; }
  .departure-hall-landmark { display: flex; min-height: 0; padding: 365px 10px 10px; flex-direction: column; align-items: stretch; gap: 10px; }
  .departure-hall-rays { width: 540px; }
  .departure-hall-flag { right: 4%; top: 18px; width: 60px; }
  .departure-hall-arch { top: 42px; width: calc(100% - 38px); min-width: 0; height: 300px; padding: 86px 12px 24px; border-width: 9px; border-bottom-width: 17px; }
  .departure-hall-arch::after { bottom: -17px; border-width: 7px; border-bottom: 0; }
  .departure-hall-arch > strong { font-size: clamp(1.65rem, 12vw, 2.6rem); }
  .departure-hall-clock { top: -27px; width: 92px; height: 92px; border-width: 7px; }
  .departure-hall-clock::before { height: 25px; }
  .departure-hall-clock i { height: 20px; }
  .departure-hall-landmark .overnight-morning { grid-template-columns: 1fr; }
  .departure-hall-landmark .overnight-sun { min-height: 38px; }
  .departure-source-tray summary { grid-template-columns: minmax(0, 1fr) 50px; }
  .departure-source-tray .overnight-source-links { grid-template-columns: 1fr; }
  .departure-field-note,
  .departure-restored-route { grid-template-columns: 1fr; }
  .departure-field-note > span,
  .departure-restored-route > span { min-height: 44px; justify-self: stretch; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .night-station-shift-mark,
  .night-station-hours,
  .night-station-map-halves,
  .night-station-choices button:hover,
  .night-station-lamp i,
  .night-station-clock i,
  .night-station-parcel { transition: none; transform: none; }
  .night-station[data-ending-route="parcel-hotel"] .night-station-parcel { right: 10%; transform: none; }
  .night-station[data-ending-route="parcel-express"] .night-station-parcel { right: calc(100% - 126px); transform: none; }
  .paper-window-half,
  .paper-window-action-bar button:hover,
  .overnight-curtain,
  .overnight-assignments button:hover,
  .overnight-action-bar button:hover { transition: none; transform: none; }
  .paper-window[data-window-state="open"] .paper-window-half:first-child { transform: translateX(-88%); }
  .paper-window[data-window-state="open"] .paper-window-half:last-child { transform: translateX(88%); }
  .overnight-curtain { transform: translateX(-94%); }
  .overnight-curtain.is-right { transform: translateX(94%); }
  .overnight-theatre[data-overnight-state="closed"] .overnight-curtain { transform: translateX(0); }
  .departure-hall-flag,
  .departure-hall-clock i,
  .departure-field-note button:hover,
  .departure-restored-route[data-route-state="saved"] { animation: none; transition: none; transform: none; }
}
