.dawn-departure-recovery {
  position: relative;
  display: grid;
  min-width: 0;
  margin: 0 0 18px;
  padding: clamp(16px, 2.5vw, 25px);
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(14px, 2.5vw, 25px);
  align-items: center;
  overflow: hidden;
  border: 2px solid #17282d;
  color: #17282d;
  background:
    linear-gradient(90deg, rgb(255 255 255 / 34%) 1px, transparent 1px) 0 0 / 34px 100%,
    #dce9df;
  box-shadow: 7px 8px 0 #c6b991;
  font-family: Arial, Helvetica, sans-serif;
  animation: dawn-recovery-arrive 360ms cubic-bezier(0.2, 0.85, 0.25, 1) both;
  scroll-margin-top: 14px;
}

.dawn-departure-recovery[hidden] { display: none !important; }
.dawn-departure-recovery::after {
  position: absolute;
  inset: 7px;
  border: 1px dashed rgb(23 40 45 / 25%);
  content: "";
  pointer-events: none;
}
.dawn-departure-recovery > * { position: relative; z-index: 1; }
.dawn-departure-recovery:focus-visible { outline: 4px solid #257185; outline-offset: 5px; }
.dawn-departure-recovery-ticket {
  position: relative;
  display: grid;
  width: 88px;
  aspect-ratio: 0.82;
  padding: 10px;
  place-items: center;
  border: 3px double #17282d;
  background: #fff8df;
  box-shadow: 4px 4px 0 #e4ae45;
  transform: rotate(-3deg);
}
.dawn-departure-recovery-ticket::before,
.dawn-departure-recovery-ticket::after {
  position: absolute;
  left: 8px;
  width: 12px;
  aspect-ratio: 1;
  border: 2px solid #17282d;
  border-radius: 50%;
  background: #dce9df;
  content: "";
  transform: translateX(-50%);
}
.dawn-departure-recovery-ticket::before { top: 14px; }
.dawn-departure-recovery-ticket::after { bottom: 14px; }
.dawn-departure-recovery-ticket i { position: absolute; inset: 8px; border: 1px dashed rgb(23 40 45 / 42%); }
.dawn-departure-recovery-ticket b { color: #257185; font-size: 2.15rem; line-height: 1; }
.dawn-departure-recovery-ticket small { color: #915a42; font: 900 0.45rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.08em; }
.dawn-departure-recovery > div { display: grid; min-width: 0; gap: 5px; }
.dawn-departure-recovery > div > small { color: #915a42; font: 900 0.55rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.08em; }
.dawn-departure-recovery h2 { margin: 0; font-size: clamp(1.35rem, 3.2vw, 2.25rem); letter-spacing: -0.04em; line-height: 1; text-wrap: balance; }
.dawn-departure-recovery p { max-width: 62ch; margin: 0; color: #46575a; font-size: 0.72rem; line-height: 1.45; }
.dawn-departure-recovery .dawn-departure-recovery-dry-line { color: #675541; font-family: ui-monospace, "SFMono-Regular", Menlo, monospace; font-size: 0.58rem; }
.dawn-departure-recovery #dawn-departure-recovery-status { color: #257185; font-weight: 850; }
.dawn-departure-recovery button {
  display: flex;
  min-width: 190px;
  min-height: 52px;
  padding: 10px 12px;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
  border: 2px solid #17282d;
  color: #fff8df;
  background: #17282d;
  box-shadow: 4px 4px 0 #257185;
  text-align: left;
  cursor: pointer;
}
.dawn-departure-recovery button span { display: grid; min-width: 0; gap: 2px; }
.dawn-departure-recovery button small { color: #e4ae45; font: 850 0.48rem/1.15 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.dawn-departure-recovery button strong { font-size: 0.76rem; line-height: 1.2; }
.dawn-departure-recovery button > b { color: #e4ae45; font-size: 1.3rem; }
.dawn-departure-recovery button:hover { color: #17282d; background: #e4ae45; }
.dawn-departure-recovery button:hover small,
.dawn-departure-recovery button:hover > b { color: #915a42; }
.dawn-departure-recovery button:focus-visible { outline: 4px solid #257185; outline-offset: 4px; }
.dawn-departure-recovery button:disabled { cursor: not-allowed; opacity: 0.56; box-shadow: none; }

.dawn-departure-board {
  --board-ink: #17282d;
  --board-paper: #fff4d6;
  --board-red: #bc4050;
  --board-blue: #296779;
  --board-gold: #f1bd4c;
  width: min(100%, 1120px);
  min-width: 0;
  margin: 18px auto 46px;
  color: var(--board-ink);
  font-family: Arial, Helvetica, sans-serif;
}

.dawn-departure-board[hidden] { display: none !important; }
.dawn-departure-board { scroll-margin-top: 14px; }
.dawn-departure-board:focus-visible { outline: 3px solid var(--board-red); outline-offset: 6px; }

body.dawn-departure-board-mode { background: #ded5be; }
body.dawn-departure-board-mode .website-main { align-self: start; }
body.dawn-departure-board-mode .website-main > :not(#dawn-departure-board) { display: none !important; }
body.dawn-departure-board-mode .website-main > #dawn-departure-board { display: block !important; }

.dawn-departure-board-heading {
  display: flex;
  min-width: 0;
  margin-bottom: 16px;
  gap: 24px;
  align-items: end;
  justify-content: space-between;
}

.dawn-departure-board-heading > div { display: grid; min-width: 0; gap: 7px; }
.dawn-departure-board-heading p { max-width: 66ch; margin: 0; color: #46575a; font-size: 0.78rem; line-height: 1.45; }
.dawn-departure-board-heading p:first-child { color: var(--board-red); font: 900 0.63rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.08em; }
.dawn-departure-board-heading h1 { max-width: 850px; margin: 0; font-size: clamp(2.35rem, 6vw, 5.4rem); letter-spacing: -0.07em; line-height: 0.88; text-wrap: balance; }
.dawn-departure-board-heading > span {
  flex: 0 0 auto;
  padding: 11px 13px;
  border: 4px double var(--board-red);
  border-radius: 50%;
  color: var(--board-red);
  background: rgb(255 244 214 / 78%);
  font: 950 0.55rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(5deg);
}

.dawn-departure-board-case {
  position: relative;
  min-width: 0;
  padding: clamp(18px, 3vw, 34px);
  overflow: hidden;
  border: 4px solid var(--board-ink);
  background:
    linear-gradient(115deg, rgb(255 244 214 / 5%) 0 1px, transparent 1px 42px),
    repeating-linear-gradient(0deg, transparent 0 47px, rgb(255 244 214 / 6%) 47px 48px),
    var(--board-blue);
  box-shadow: 10px 11px 0 #a99c7c;
}

.dawn-departure-board-case::before {
  position: absolute;
  inset: 11px;
  border: 1px solid rgb(255 244 214 / 28%);
  content: "";
  pointer-events: none;
}

.dawn-departure-board-key {
  position: relative;
  z-index: 1;
  display: grid;
  min-width: 0;
  margin-bottom: 16px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 2px solid var(--board-ink);
  color: var(--board-ink);
  background: #efe1bc;
  box-shadow: 4px 4px 0 rgb(17 29 34 / 32%);
}
.dawn-departure-board-key span {
  display: grid;
  min-width: 0;
  padding: 10px 12px;
  gap: 3px;
  color: #4b5b5d;
  font-size: 0.62rem;
  line-height: 1.35;
}
.dawn-departure-board-key span + span { border-left: 1px dashed rgb(23 40 45 / 40%); }
.dawn-departure-board-key b { color: var(--board-red); font: 950 0.5rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.07em; }

.dawn-departure-board-rivets { position: absolute; inset: 8px; pointer-events: none; }
.dawn-departure-board-rivets i { position: absolute; width: 8px; height: 8px; border: 1px solid var(--board-ink); border-radius: 50%; background: var(--board-gold); box-shadow: inset 1px 1px 0 rgb(255 255 255 / 50%); }
.dawn-departure-board-rivets i:nth-child(1) { top: 0; left: 0; }
.dawn-departure-board-rivets i:nth-child(2) { top: 0; right: 0; }
.dawn-departure-board-rivets i:nth-child(3) { right: 0; bottom: 0; }
.dawn-departure-board-rivets i:nth-child(4) { bottom: 0; left: 0; }

.dawn-departure-board-list {
  position: relative;
  display: grid;
  min-width: 0;
  padding: 0 0 5px 22px;
  gap: 19px;
}
.dawn-departure-board-list::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 4px;
  width: 9px;
  border: 2px solid var(--board-ink);
  background: repeating-linear-gradient(0deg, #e3aa43 0 21px, #a9633f 21px 27px);
  box-shadow: 3px 0 0 rgb(17 29 34 / 38%);
  content: "";
}
.dawn-departure-board-gap {
  position: relative;
  z-index: 1;
  margin: 0 0 14px;
  padding: 11px 13px;
  border: 2px dashed var(--board-ink);
  color: var(--board-ink);
  background: #f5dfaa;
  font: 850 0.65rem/1.4 ui-monospace, "SFMono-Regular", Menlo, monospace;
}
.dawn-departure-board-gap[hidden] { display: none !important; }

.dawn-departure-sign {
  --sign-index: 0;
  position: relative;
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(240px, 1.25fr) minmax(220px, 1fr);
  overflow: hidden;
  border: 3px solid var(--board-ink);
  color: var(--board-ink);
  background: var(--board-paper);
  box-shadow: 6px 7px 0 rgb(17 29 34 / 48%);
  animation: dawn-sign-arrive 480ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
  animation-delay: calc(var(--sign-index) * 80ms);
}

.dawn-departure-sign::after {
  position: absolute;
  right: 17px;
  bottom: 15px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--board-red);
  box-shadow: 0 0 0 4px rgb(188 64 80 / 17%);
  content: "";
}

.dawn-departure-sign-route,
.dawn-departure-sign-name,
.dawn-departure-sign-reason { display: grid; min-width: 0; margin: 0; padding: 20px; align-content: center; gap: 7px; }
.dawn-departure-sign-name { border-right: 2px dashed rgb(23 40 45 / 48%); }
.dawn-departure-sign-route {
  grid-column: 1 / -1;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 11px 54px 11px 20px;
  align-items: baseline;
  align-content: start;
  border-bottom: 2px solid rgb(23 40 45 / 48%);
  background: rgb(241 189 76 / 28%);
}
.dawn-departure-sign-status {
  min-width: 104px;
  padding: 6px 8px;
  border: 3px double currentColor;
  color: var(--board-blue);
  background: rgb(255 244 214 / 72%);
  font: 950 0.52rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  letter-spacing: 0.07em;
  text-align: center;
  transform: rotate(-1deg);
}
.dawn-departure-sign[data-shelf-state="returning"] .dawn-departure-sign-status { color: var(--board-red); transform: rotate(1deg); }
.dawn-departure-sign[data-shelf-state="unavailable"] .dawn-departure-sign-status { color: #5e6665; border-style: dashed; transform: rotate(-2deg); }
.dawn-departure-sign[data-shelf-state="unavailable"] { background: #e9dfca; }
.dawn-departure-sign[data-shelf-state="unavailable"] .dawn-departure-sign-route { background: #d6cbb4; }
.dawn-departure-sign-generic .dawn-departure-sign-name h2 { max-width: 18ch; font-size: clamp(1.65rem, 3.3vw, 2.8rem); }
.dawn-departure-sign small { color: var(--board-red); font: 950 0.54rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.075em; }
.dawn-departure-sign-route strong { overflow-wrap: anywhere; color: #3d4d4f; font: 900 0.78rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.dawn-departure-sign-name h2 { margin: 0; font-size: clamp(1.85rem, 4vw, 3.55rem); letter-spacing: -0.055em; line-height: 0.94; text-wrap: balance; }
.dawn-departure-sign-name p,
.dawn-departure-sign-reason p { max-width: 38ch; margin: 0; color: #506063; font-size: 0.78rem; line-height: 1.45; }
.dawn-departure-sign-reason { padding-right: 44px; background: repeating-linear-gradient(0deg, transparent 0 27px, rgb(41 103 121 / 9%) 27px 28px); }
.dawn-departure-sign-reason strong { font-size: 1.05rem; line-height: 1.12; }
.dawn-departure-sign-punch {
  position: absolute;
  top: 10px;
  right: -23px;
  width: 78px;
  padding: 5px 0;
  color: var(--board-paper);
  background: var(--board-red);
  font: 950 0.44rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(42deg);
}

.dawn-departure-sign-door {
  display: grid;
  min-width: 0;
  min-height: 78px;
  padding: 11px 17px;
  grid-column: 1 / -1;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 0;
  border-top: 3px solid var(--board-ink);
  color: var(--board-paper);
  background: var(--board-ink);
  text-align: left;
  cursor: pointer;
  transition: color 150ms ease, background 150ms ease;
}

.dawn-departure-sign-door > span:nth-child(2) { display: grid; min-width: 0; gap: 3px; }
.dawn-departure-sign-door small { color: var(--board-gold); }
.dawn-departure-sign-door strong { overflow-wrap: anywhere; font-size: 0.9rem; line-height: 1.1; }
.dawn-departure-sign-door > b { font: 950 0.57rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.08em; }
.dawn-departure-sign-door-mark {
  display: grid;
  width: 40px;
  aspect-ratio: 1;
  place-items: center;
  border: 2px solid var(--board-gold);
  border-radius: 50% 50% 4px 4px;
  color: var(--board-gold);
  font-size: 1.1rem;
}
.dawn-departure-sign-door:hover { color: var(--board-ink); background: var(--board-gold); }
.dawn-departure-sign-door:hover small,
.dawn-departure-sign-door:hover .dawn-departure-sign-door-mark { color: var(--board-red); border-color: var(--board-red); }
.dawn-departure-sign-door:focus-visible { position: relative; z-index: 6; outline: 4px solid #175cff; outline-offset: -7px; }
.dawn-departure-sign-door[data-followup-state="return-ready"] { background: var(--board-red); }
.dawn-departure-sign-door[data-followup-state="return-ready"] small { color: var(--board-paper); }
.dawn-departure-sign-door[data-followup-state="return-ready"] .dawn-departure-sign-door-mark { color: var(--board-paper); border-color: var(--board-paper); }
.dawn-departure-sign-door[hidden] { display: none !important; }
.dawn-departure-sign-door-note {
  min-width: 0;
  margin: 0;
  padding: 12px 18px;
  grid-column: 1 / -1;
  border-top: 2px dashed rgb(23 40 45 / 48%);
  color: #5a6566;
  background: #eadfca;
  font: 850 0.62rem/1.4 ui-monospace, "SFMono-Regular", Menlo, monospace;
}

.dawn-departure-sign-keep {
  position: relative;
  z-index: 1;
  display: grid;
  min-width: 0;
  min-height: 78px;
  padding: 11px 17px;
  grid-column: 1 / -1;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 0;
  border-top: 3px solid var(--board-ink);
  color: var(--board-ink);
  background: #cbd4cd;
  text-align: left;
  cursor: pointer;
  transition: background 150ms ease, box-shadow 150ms ease;
}
.dawn-departure-sign-keep > span:nth-child(2) { display: grid; min-width: 0; gap: 3px; }
.dawn-departure-sign-keep small { color: #5e6665; }
.dawn-departure-sign-keep strong { overflow-wrap: anywhere; font-size: 0.9rem; line-height: 1.1; }
.dawn-departure-sign-keep > span:nth-child(2) > span { color: #506063; font-size: 0.68rem; line-height: 1.35; }
.dawn-departure-sign-keep > b { color: #506063; font: 950 0.57rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.08em; }
.dawn-departure-sign-keep-clip {
  display: grid;
  width: 34px;
  height: 46px;
  place-items: center;
  border: 3px solid #5e6665;
  border-top: 0;
  border-radius: 0 0 15px 15px;
  color: #5e6665;
  font: 950 1rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  transform: rotate(5deg);
}
.dawn-departure-sign-keep:hover { background: #e6d698; box-shadow: inset 8px 0 0 var(--board-gold); }
.dawn-departure-sign-keep:focus-visible { outline: 4px solid #175cff; outline-offset: -7px; }
.dawn-departure-sign-keep[aria-pressed="true"] { background: #f3d47c; box-shadow: inset 8px 0 0 var(--board-red); }
.dawn-departure-sign-keep[aria-pressed="true"] small,
.dawn-departure-sign-keep[aria-pressed="true"] > b { color: var(--board-red); }
.dawn-departure-sign-keep[aria-pressed="true"] .dawn-departure-sign-keep-clip {
  border-color: var(--board-red);
  color: var(--board-red);
  animation: dawn-paper-clip-promoted 420ms cubic-bezier(0.2, 0.85, 0.25, 1) both;
}
.dawn-departure-sign[data-kept-paper="true"] { box-shadow: 6px 7px 0 var(--board-gold), 10px 12px 0 rgb(17 29 34 / 40%); }

.dawn-departure-keep-status {
  position: relative;
  z-index: 1;
  margin: 0 0 14px;
  padding: 10px 13px;
  border: 2px solid var(--board-ink);
  color: var(--board-ink);
  background: #f1bd4c;
  font: 900 0.64rem/1.4 ui-monospace, "SFMono-Regular", Menlo, monospace;
}
.dawn-departure-keep-status[hidden] { display: none !important; }

.dawn-departure-kept-paper {
  position: relative;
  display: grid;
  min-width: 0;
  padding: 13px 14px 13px 18px;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  gap: 13px;
  align-items: center;
  overflow: hidden;
  border: 3px solid #17282d;
  color: #17282d;
  background:
    repeating-linear-gradient(0deg, transparent 0 25px, rgb(41 103 121 / 9%) 25px 26px),
    #e7dfc9;
  box-shadow: 5px 5px 0 #d0a543;
  animation: dawn-kept-paper-arrive 380ms cubic-bezier(0.2, 0.85, 0.25, 1) both;
  scroll-margin-top: 10px;
}
.dawn-departure-kept-paper[hidden] { display: none !important; }
.dawn-departure-kept-paper:focus-visible { outline: 4px solid #175cff; outline-offset: 4px; }
.dawn-departure-kept-paper::after {
  position: absolute;
  top: 8px;
  right: -24px;
  width: 84px;
  padding: 4px 0;
  color: #fff4d6;
  background: #5e6665;
  content: "CONTEXT";
  font: 950 0.4rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(40deg);
}
.dawn-departure-kept-paper > div { display: grid; min-width: 0; padding-right: 26px; gap: 4px; }
.dawn-departure-kept-paper small { color: #915a42; font: 950 0.5rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.07em; }
.dawn-departure-kept-paper strong { overflow-wrap: anywhere; font-size: 0.94rem; line-height: 1.15; }
.dawn-departure-kept-paper p { max-width: 58ch; margin: 0; color: #536164; font-size: 0.67rem; line-height: 1.4; }
.dawn-departure-kept-paper-clip {
  position: relative;
  display: block;
  width: 32px;
  height: 48px;
  margin-left: 5px;
  border: 4px solid #6d7473;
  border-top: 0;
  border-radius: 0 0 16px 16px;
  transform: rotate(-8deg);
}
.dawn-departure-kept-paper-clip i { position: absolute; top: 5px; right: 5px; bottom: 4px; left: 5px; border: 2px solid #6d7473; border-top: 0; border-radius: 0 0 9px 9px; }
.dawn-departure-kept-paper button {
  position: relative;
  z-index: 1;
  min-height: 44px;
  padding: 9px 11px;
  border: 2px solid #17282d;
  color: #fff4d6;
  background: #296779;
  font: 900 0.58rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace;
  white-space: nowrap;
  cursor: pointer;
}
.dawn-departure-kept-paper button:hover { background: #bc4050; }
.dawn-departure-kept-paper button:focus-visible { outline: 4px solid #175cff; outline-offset: 4px; }
.dawn-departure-followup-shell > .dawn-departure-kept-paper { margin: 14px 14px 0; grid-column: 1 / -1; }
.dawn-departure-night-shell > .dawn-departure-kept-paper { margin: 14px 14px 1px; grid-column: 1 / -1; }

.dawn-departure-board-footer {
  position: relative;
  display: flex;
  min-width: 0;
  margin-top: 20px;
  padding-top: 18px;
  gap: 20px;
  align-items: end;
  justify-content: space-between;
  border-top: 1px solid rgb(255 244 214 / 34%);
}

.dawn-departure-board-footer > div { display: grid; min-width: 0; gap: 4px; color: var(--board-paper); }
.dawn-departure-board-footer strong { font-size: 0.82rem; }
.dawn-departure-board-footer span { color: rgb(255 244 214 / 72%); font: 800 0.62rem/1.35 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.dawn-departure-board-footer a { width: fit-content; color: var(--board-gold); font-size: 0.74rem; font-weight: 850; }
.dawn-departure-board-footer a:focus-visible { outline: 3px solid var(--board-gold); outline-offset: 3px; }
.dawn-departure-board-footer button {
  flex: 0 0 auto;
  min-height: 46px;
  padding: 11px 14px;
  border: 2px solid var(--board-paper);
  color: var(--board-paper);
  background: transparent;
  font: 900 0.74rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace;
  cursor: pointer;
}
.dawn-departure-board-footer button:hover { color: var(--board-ink); background: var(--board-gold); }
.dawn-departure-board-footer button:focus-visible { outline: 3px solid var(--board-gold); outline-offset: 4px; }

.dawn-departure-followup {
  --followup-ink: #17282d;
  --followup-paper: #fff4d6;
  --followup-red: #bc4050;
  --followup-blue: #296779;
  --followup-gold: #f1bd4c;
  width: min(100%, 1120px);
  min-width: 0;
  margin: 18px auto 46px;
  color: var(--followup-ink);
  font-family: Arial, Helvetica, sans-serif;
  scroll-margin-top: 14px;
}

.dawn-departure-followup[hidden],
.dawn-departure-followup [hidden] { display: none !important; }
.dawn-departure-followup:focus-visible { outline: 4px solid var(--followup-blue); outline-offset: 6px; }

body.dawn-departure-followup-mode { background: #e8cfae; }
body.dawn-departure-followup-mode .website-main { align-self: start; }
body.dawn-departure-followup-mode .website-main > :not(#dawn-departure-followup) { display: none !important; }
body.dawn-departure-followup-mode .website-main > #dawn-departure-followup { display: block !important; }

.dawn-departure-followup-heading {
  display: flex;
  min-width: 0;
  margin-bottom: 16px;
  gap: 24px;
  align-items: end;
  justify-content: space-between;
}
.dawn-departure-followup-heading > div { display: grid; min-width: 0; gap: 7px; }
.dawn-departure-followup-heading p { max-width: 66ch; margin: 0; color: #46575a; font-size: 0.78rem; line-height: 1.45; }
.dawn-departure-followup-heading p:first-child { color: var(--followup-red); font: 900 0.63rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.08em; }
.dawn-departure-followup-heading h1 { max-width: 870px; margin: 0; font-size: clamp(2.25rem, 6vw, 5.15rem); letter-spacing: -0.07em; line-height: 0.9; text-wrap: balance; }
.dawn-departure-followup-heading > span {
  flex: 0 0 auto;
  padding: 11px 13px;
  border: 4px double var(--followup-red);
  border-radius: 50%;
  color: var(--followup-red);
  background: rgb(255 244 214 / 76%);
  font: 950 0.55rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(5deg);
}

.dawn-departure-followup-shell {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(210px, 0.31fr) minmax(0, 1fr);
  border: 4px solid var(--followup-ink);
  background: var(--followup-paper);
  box-shadow: 10px 11px 0 #a48669;
}

.dawn-departure-followup-source-card {
  position: relative;
  display: grid;
  min-width: 0;
  padding: 24px 19px;
  align-content: start;
  gap: 22px;
  overflow: hidden;
  border-right: 3px dashed var(--followup-ink);
  background:
    repeating-linear-gradient(0deg, transparent 0 31px, rgb(41 103 121 / 12%) 31px 32px),
    #f2c664;
}
.dawn-departure-followup-source-card::after {
  position: absolute;
  top: 0;
  right: -10px;
  bottom: 0;
  width: 17px;
  background: radial-gradient(circle, var(--followup-paper) 0 4px, transparent 4.5px) center / 17px 25px repeat-y;
  content: "";
  pointer-events: none;
}
.dawn-departure-followup-source-card > div { display: grid; min-width: 0; gap: 6px; }
.dawn-departure-followup-source-card small,
.dawn-departure-followup-question small,
.dawn-departure-followup-result small { color: var(--followup-red); font: 950 0.5rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.06em; }
.dawn-departure-followup-source-card > div strong { overflow-wrap: anywhere; font: 950 1.08rem/1.1 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.dawn-departure-followup-source-card dl { display: grid; min-width: 0; margin: 0; gap: 9px; }
.dawn-departure-followup-source-card dl div { display: grid; min-width: 0; padding-bottom: 8px; gap: 3px; border-bottom: 1px solid rgb(23 40 45 / 36%); }
.dawn-departure-followup-source-card dt { color: #675541; font: 850 0.51rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace; text-transform: uppercase; }
.dawn-departure-followup-source-card dd { margin: 0; overflow-wrap: anywhere; font-size: 0.74rem; font-weight: 850; line-height: 1.25; }
.dawn-departure-followup-source-card > p { margin: 0; padding: 11px; border: 2px solid var(--followup-ink); background: rgb(255 244 214 / 78%); color: #46575a; font-size: 0.68rem; line-height: 1.45; transform: rotate(-1deg); }

.dawn-departure-followup-room { display: grid; min-width: 0; padding: clamp(14px, 2.5vw, 27px); align-content: start; gap: 17px; background: #fff9e9; }
.dawn-departure-followup-scene {
  position: relative;
  min-width: 0;
  min-height: clamp(330px, 42vw, 470px);
  overflow: hidden;
  border: 4px solid var(--followup-ink);
  background:
    linear-gradient(172deg, transparent 0 67%, rgb(23 40 45 / 18%) 67.3% 68%, transparent 68.3%),
    repeating-linear-gradient(90deg, transparent 0 105px, rgb(255 244 214 / 10%) 105px 107px),
    linear-gradient(#376f7e 0 68%, #d29a6d 68.4% 100%);
  box-shadow: inset 0 0 0 6px rgb(255 244 214 / 25%);
  isolation: isolate;
}
.dawn-departure-followup-sky { position: absolute; inset: 0 0 auto; height: 27%; border-bottom: 4px solid var(--followup-ink); background: linear-gradient(165deg, #f4c25c 0 48%, #f6dda3 48.5% 62%, #6e9c9e 62.5%); }
.dawn-departure-followup-sky i { position: absolute; bottom: 13%; width: 13%; height: 17%; border: 2px solid var(--followup-ink); border-radius: 50%; background: var(--followup-paper); }
.dawn-departure-followup-sky i:nth-child(1) { left: 11%; }
.dawn-departure-followup-sky i:nth-child(2) { left: 25%; transform: scale(0.72); }
.dawn-departure-followup-sky i:nth-child(3) { right: 12%; transform: scale(1.25); }
.dawn-departure-followup-door {
  position: absolute;
  top: 24%;
  left: 50%;
  z-index: 4;
  width: min(29%, 190px);
  height: 58%;
  border: 5px solid var(--followup-ink);
  border-radius: 48% 48% 3px 3px;
  background: var(--followup-red);
  box-shadow: 10px 9px 0 rgb(23 40 45 / 38%);
  transform: translateX(-50%);
  transform-origin: left center;
  transition: transform 520ms cubic-bezier(0.2, 0.85, 0.25, 1), background 350ms ease;
}
.dawn-departure-followup-door::before { position: absolute; inset: 11px; border: 3px double var(--followup-gold); border-radius: 48% 48% 2px 2px; content: ""; }
.dawn-departure-followup-door > i { position: absolute; top: 55%; right: 13%; z-index: 2; width: 14px; aspect-ratio: 1; border: 3px solid var(--followup-ink); border-radius: 50%; background: var(--followup-gold); }
.dawn-departure-followup-door > b { position: absolute; top: 24%; right: 14%; left: 14%; z-index: 2; color: var(--followup-paper); font: 950 clamp(0.43rem, 1vw, 0.64rem)/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; white-space: pre-line; }
.dawn-departure-followup-door > em { position: absolute; right: -17%; bottom: -5%; width: 134%; height: 16%; border: 3px solid var(--followup-ink); border-radius: 50%; background: #edb95d; transform: perspective(100px) rotateX(55deg); }
.dawn-departure-followup-line { position: absolute; right: 4%; bottom: 13%; left: 4%; z-index: 2; height: 7px; border-block: 2px solid var(--followup-ink); background: repeating-linear-gradient(90deg, var(--followup-paper) 0 15px, var(--followup-red) 15px 30px); transform-origin: center; transition: transform 520ms cubic-bezier(0.2, 0.85, 0.25, 1); }
.dawn-departure-followup-line i { position: absolute; bottom: -2px; width: 4px; height: 45px; background: var(--followup-ink); }
.dawn-departure-followup-line i:nth-child(1) { left: 0; }
.dawn-departure-followup-line i:nth-child(2) { left: 32%; }
.dawn-departure-followup-line i:nth-child(3) { right: 32%; }
.dawn-departure-followup-line i:nth-child(4) { right: 0; }
.dawn-departure-followup-table { position: absolute; bottom: 15%; left: 8%; z-index: 3; width: 24%; height: 20%; border: 4px solid var(--followup-ink); background: var(--followup-gold); box-shadow: inset 0 11px 0 var(--followup-paper); transform: rotate(-2deg); }
.dawn-departure-followup-table::before,
.dawn-departure-followup-table::after { position: absolute; bottom: -35%; width: 4px; height: 38%; background: var(--followup-ink); content: ""; }
.dawn-departure-followup-table::before { left: 12%; }
.dawn-departure-followup-table::after { right: 12%; }
.dawn-departure-followup-table i { position: absolute; top: -28%; right: 18%; width: 44%; height: 32%; border: 3px solid var(--followup-ink); background: var(--followup-paper); transform: rotate(4deg); }
.dawn-departure-followup-object {
  position: absolute;
  right: 10%;
  bottom: 20%;
  z-index: 5;
  display: grid;
  width: clamp(61px, 10vw, 92px);
  aspect-ratio: 1;
  place-items: center;
  border: 5px double var(--followup-red);
  border-radius: 50%;
  color: var(--followup-red);
  background: var(--followup-paper);
  box-shadow: 7px 7px 0 rgb(23 40 45 / 35%);
  transform: rotate(7deg) scale(0.84);
  transition: transform 420ms cubic-bezier(0.2, 0.85, 0.25, 1);
}
.dawn-departure-followup-object b { max-width: 90%; overflow-wrap: anywhere; font: 950 clamp(0.55rem, 1.4vw, 0.78rem)/1 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; }
.dawn-departure-followup-object i { position: absolute; top: -28%; width: 4px; height: 29%; background: var(--followup-ink); }
.dawn-departure-followup-shadow { position: absolute; right: 5%; bottom: 6%; width: 38%; height: 10%; border-radius: 50%; background: rgb(23 40 45 / 18%); transform: skewX(-24deg); }
.dawn-departure-followup[data-departure="paper-window"] .dawn-departure-followup-line { transform: rotate(-90deg) translateX(8%); }
.dawn-departure-followup[data-departure="paper-window"] .dawn-departure-followup-door { background: var(--followup-blue); }
.dawn-departure-followup[data-followup-state="changed"] .dawn-departure-followup-door { background: #6f916f; transform: translateX(-50%) perspective(500px) rotateY(-18deg); }
.dawn-departure-followup[data-followup-state="changed"] .dawn-departure-followup-object { transform: rotate(-5deg) scale(1); animation: dawn-followup-object-arrive 520ms cubic-bezier(0.2, 0.85, 0.25, 1) both; }

.dawn-departure-followup-question { display: grid; min-width: 0; gap: 10px; }
.dawn-departure-followup-question > p { display: grid; min-width: 0; margin: 0; gap: 4px; }
.dawn-departure-followup-question > p strong { overflow-wrap: anywhere; font-size: 1rem; line-height: 1.2; }
.dawn-departure-followup-responses { display: grid; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.dawn-departure-followup-responses button {
  display: grid;
  min-width: 0;
  min-height: 104px;
  padding: 13px;
  grid-template-columns: 36px minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 4px 9px;
  align-content: start;
  border: 3px solid var(--followup-ink);
  color: var(--followup-ink);
  background: #f5d371;
  box-shadow: 5px 5px 0 var(--followup-red);
  text-align: left;
  cursor: pointer;
  transition: transform 150ms ease, box-shadow 150ms ease, background 150ms ease;
}
.dawn-departure-followup-responses button:last-child { background: #d6e4dc; box-shadow-color: var(--followup-blue); }
.dawn-departure-followup-responses button:hover { background: #fff0b8; box-shadow: 7px 7px 0 var(--followup-blue); transform: translate(-2px, -2px); }
.dawn-departure-followup-responses button > span { grid-row: 1 / 3; color: var(--followup-red); font-size: 1.3rem; }
.dawn-departure-followup-responses strong { overflow-wrap: anywhere; font-size: 0.8rem; line-height: 1.15; }
.dawn-departure-followup-responses small { overflow-wrap: anywhere; color: #4b5b5d; font-size: 0.63rem; line-height: 1.35; }
.dawn-departure-followup-responses button:focus-visible { outline: 4px solid #175cff; outline-offset: 4px; }

.dawn-departure-followup-result {
  display: grid;
  min-width: 0;
  padding: 17px;
  grid-template-columns: 94px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  border: 4px double var(--followup-red);
  background: #fff4d6;
  box-shadow: 7px 7px 0 var(--followup-gold);
  animation: dawn-followup-result-arrive 420ms cubic-bezier(0.2, 0.85, 0.25, 1) both;
  scroll-margin-top: 18px;
}
.dawn-departure-followup-result > span { display: grid; width: 90px; aspect-ratio: 1; padding: 8px; place-items: center; border: 5px double var(--followup-red); border-radius: 50%; color: var(--followup-red); font: 950 0.45rem/1.1 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; transform: rotate(-7deg); }
.dawn-departure-followup-result > div { display: grid; min-width: 0; gap: 5px; }
.dawn-departure-followup-result strong { overflow-wrap: anywhere; font-size: 1rem; line-height: 1.15; }
.dawn-departure-followup-result p { margin: 0; overflow-wrap: anywhere; color: #46575a; font-size: 0.75rem; line-height: 1.45; }
.dawn-departure-followup-result:focus { outline: 4px solid #175cff; outline-offset: 5px; }

.dawn-departure-followup-footer { display: flex; min-width: 0; gap: 16px; align-items: center; justify-content: space-between; }
.dawn-departure-followup-footer > div { display: grid; min-width: 0; gap: 4px; }
.dawn-departure-followup-footer p { margin: 0; color: #46575a; font: 850 0.59rem/1.4 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.dawn-departure-followup-footer a { width: fit-content; color: #687274; font: 800 0.56rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace; text-underline-offset: 3px; }
.dawn-departure-followup-footer button { flex: 0 0 auto; min-height: 46px; padding: 10px 13px; border: 2px solid var(--followup-ink); color: var(--followup-paper); background: var(--followup-blue); font: 900 0.59rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; cursor: pointer; }
.dawn-departure-followup-footer button:hover { background: var(--followup-red); }
.dawn-departure-followup-footer button:focus-visible,
.dawn-departure-followup-footer a:focus-visible { outline: 4px solid #175cff; outline-offset: 4px; }

@keyframes dawn-followup-object-arrive {
  from { opacity: 0; transform: translateY(-24px) rotate(9deg) scale(0.7); }
  to { opacity: 1; transform: translateY(0) rotate(-5deg) scale(1); }
}

@keyframes dawn-followup-result-arrive {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes dawn-paper-clip-promoted {
  0% { transform: translateY(-12px) rotate(-8deg); }
  60% { transform: translateY(3px) rotate(7deg); }
  100% { transform: translateY(0) rotate(5deg); }
}

@keyframes dawn-kept-paper-arrive {
  from { transform: translateY(-10px) rotate(-0.4deg); }
  to { transform: translateY(0) rotate(0); }
}

@keyframes dawn-sign-arrive {
  from { opacity: 0; transform: translateY(-14px) rotateX(-8deg); }
  to { opacity: 1; transform: translateY(0) rotateX(0); }
}

@keyframes dawn-recovery-arrive {
  from { opacity: 0; transform: translateY(-9px) rotate(-0.25deg); }
  to { opacity: 1; transform: translateY(0) rotate(0); }
}

@media (max-width: 760px) {
  .dawn-departure-recovery { grid-template-columns: 62px minmax(0, 1fr); padding: 16px 14px; }
  .dawn-departure-recovery-ticket { width: 58px; }
  .dawn-departure-recovery-ticket b { font-size: 1.45rem; }
  .dawn-departure-recovery button { width: 100%; grid-column: 1 / -1; }
  .dawn-departure-board { margin-top: 10px; }
  .dawn-departure-board-heading { align-items: start; }
  .dawn-departure-board-heading > span { margin-top: 3px; transform: rotate(4deg) scale(0.86); transform-origin: top right; }
  .dawn-departure-board-case { padding: 18px 14px; box-shadow: 6px 7px 0 #a99c7c; }
  .dawn-departure-board-key { grid-template-columns: minmax(0, 1fr); }
  .dawn-departure-board-key span + span { border-top: 1px dashed rgb(23 40 45 / 40%); border-left: 0; }
  .dawn-departure-board-list { padding-left: 18px; }
  .dawn-departure-board-list::before { left: 2px; width: 8px; }
  .dawn-departure-sign { grid-template-columns: minmax(0, 1fr); }
  .dawn-departure-sign-route,
  .dawn-departure-sign-name,
  .dawn-departure-sign-reason { padding: 15px 17px; border-right: 0; }
  .dawn-departure-sign-route { grid-column: auto; grid-template-columns: minmax(0, 1fr); padding-right: 48px; }
  .dawn-departure-sign-status { width: fit-content; min-width: 104px; }
  .dawn-departure-sign-route,
  .dawn-departure-sign-name { border-bottom: 2px dashed rgb(23 40 45 / 48%); }
  .dawn-departure-sign-route { gap: 4px; }
  .dawn-departure-sign-name h2 { font-size: clamp(2.25rem, 12vw, 3.35rem); }
  .dawn-departure-sign-reason { min-height: 118px; padding-right: 44px; }
  .dawn-departure-board-footer { align-items: stretch; flex-direction: column; }
  .dawn-departure-board-footer button { width: 100%; }
  .dawn-departure-sign-door { grid-template-columns: 42px minmax(0, 1fr); }
  .dawn-departure-sign-door > b { display: none; }
  .dawn-departure-sign-keep { grid-template-columns: 42px minmax(0, 1fr); }
  .dawn-departure-sign-keep > b { display: none; }
  .dawn-departure-kept-paper { grid-template-columns: 42px minmax(0, 1fr); }
  .dawn-departure-kept-paper button { width: 100%; grid-column: 1 / -1; }

  .dawn-departure-followup { margin-top: 10px; }
  .dawn-departure-followup-heading { align-items: start; }
  .dawn-departure-followup-heading > span { margin-top: 3px; transform: rotate(4deg) scale(0.86); transform-origin: top right; }
  .dawn-departure-followup-shell { grid-template-columns: minmax(0, 1fr); box-shadow: 6px 7px 0 #a48669; }
  .dawn-departure-followup-shell > .dawn-departure-kept-paper { margin: 10px 10px 0; }
  .dawn-departure-followup-source-card { padding: 18px 17px; border-right: 0; border-bottom: 3px dashed var(--followup-ink); }
  .dawn-departure-followup-source-card::after { display: none; }
  .dawn-departure-followup-source-card dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dawn-departure-followup-source-card dl div:last-child { grid-column: 1 / -1; }
  .dawn-departure-followup-scene { min-height: 340px; }
  .dawn-departure-followup-responses { grid-template-columns: minmax(0, 1fr); }
  .dawn-departure-followup-footer { align-items: stretch; flex-direction: column; }
  .dawn-departure-followup-footer button { width: 100%; }
}

@media (max-width: 430px) {
  .dawn-departure-recovery { grid-template-columns: minmax(0, 1fr); }
  .dawn-departure-recovery-ticket { width: 52px; }
  .dawn-departure-board-heading { gap: 10px; }
  .dawn-departure-board-heading h1 { font-size: clamp(2.35rem, 13vw, 3.2rem); }
  .dawn-departure-board-heading > span { display: none; }
  .dawn-departure-followup-heading { gap: 10px; }
  .dawn-departure-followup-heading h1 { font-size: clamp(2.25rem, 12vw, 3.1rem); }
  .dawn-departure-followup-heading > span { display: none; }
  .dawn-departure-followup-source-card dl { grid-template-columns: minmax(0, 1fr); }
  .dawn-departure-followup-source-card dl div:last-child { grid-column: auto; }
  .dawn-departure-followup-room { padding: 11px; }
  .dawn-departure-followup-scene { min-height: 315px; }
  .dawn-departure-followup-door { width: 34%; }
  .dawn-departure-followup-result { grid-template-columns: minmax(0, 1fr); }
  .dawn-departure-followup-result > span { width: 76px; }
}

@media (prefers-reduced-motion: reduce) {
  .dawn-departure-recovery,
  .dawn-departure-sign,
  .dawn-departure-followup-result,
  .dawn-departure-kept-paper,
  .dawn-departure-followup[data-followup-state="changed"] .dawn-departure-followup-object { animation: none; }
  .dawn-departure-sign-door,
  .dawn-departure-sign-keep,
  .dawn-departure-followup-door,
  .dawn-departure-followup-line,
  .dawn-departure-followup-object,
  .dawn-departure-followup-responses button { transition: none; }
  .dawn-departure-sign-keep[aria-pressed="true"] .dawn-departure-sign-keep-clip { animation: none; }
}
