.reunion-travel-ticket-tray[hidden],
.reunion-travel-log[hidden],
.reunion-travel-findings[hidden],
.reunion-travel-caravan-key[hidden],
.reunion-travel-market-return[hidden],
.reunion-travel-market-third-offer[hidden],
.reunion-travel-postcard-choice[hidden],
.reunion-travel-postcard-result[hidden],
.reunion-travel-postcard-bridge-mark[hidden],
.reunion-travel-postcard[hidden],
.reunion-travel-paper-bridge[hidden],
.reunion-travel-paper-bridge-ending[hidden],
.reunion-travel-border-station[hidden],
.reunion-travel-border-parcel[hidden],
.reunion-travel-border-route[hidden],
.reunion-travel-border-refused-route[hidden],
.reunion-travel-border-appeal[hidden],
.reunion-travel-border-appeal-return[hidden],
.reunion-travel-border-hearing[hidden],
.reunion-travel-border-hearing-result[hidden],
.reunion-travel-border-docket-case[hidden],
.reunion-travel-border-case-compass[hidden],
.reunion-travel-border-case-compass-choices[hidden],
.reunion-travel-border-case-compass-result[hidden],
.reunion-travel-border-case-compass-route[hidden],
#reunion-travel-border-case-compass-route-action[hidden],
#reunion-travel-border-case-compass-open-action[hidden],
#reunion-travel-border-protected-item[hidden],
#reunion-travel-border-claim-tag-sealed[hidden],
#reunion-travel-border-claim-tag-action[hidden],
#reunion-travel-border-rule-save-action[hidden],
#reunion-travel-border-route-action[hidden],
#reunion-travel-border-station-open-action[hidden],
#reunion-travel-border-hearing-open-action[hidden],
#reunion-travel-border-hearing-save-action[hidden],
#reunion-travel-paper-bridge-cross-action[hidden],
.reunion-travel-caravan-destination[hidden] {
  display: none !important;
}

.reunion-travel-log {
  display: grid;
  padding: 12px 15px;
  grid-template-columns: minmax(240px, 0.8fr) minmax(300px, 1.2fr);
  gap: 13px;
  border-top: 3px solid var(--desk-ink);
  background:
    repeating-linear-gradient(0deg, transparent 0 27px, rgb(20 47 42 / 7%) 28px 29px),
    #fff4d6;
}

.reunion-travel-log-current {
  display: grid;
  min-width: 0;
  padding: 10px 12px;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  border: 2px solid var(--desk-ink);
  border-radius: 4px 16px 4px 4px;
  background: #fffdf7;
  box-shadow: 3px 3px 0 var(--desk-ink);
}

.reunion-travel-log-current > div { display: grid; min-width: 0; gap: 3px; }
.reunion-travel-log-current small,
.reunion-travel-log-history small {
  font: 950 0.47rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace;
  letter-spacing: 0.06em;
}
.reunion-travel-log-current strong { overflow-wrap: anywhere; font-size: 0.78rem; line-height: 1.25; }

.reunion-travel-log-stamp {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 3px double var(--desk-red);
  border-radius: 50%;
  color: var(--desk-red);
  font: 950 0.43rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-7deg);
}

.reunion-travel-log[data-log-state="ready"] .reunion-travel-log-stamp {
  animation: reunion-travel-log-stamp 380ms cubic-bezier(0.2, 0.82, 0.24, 1.15) both;
}

.reunion-travel-log-history { display: grid; min-width: 0; gap: 7px; align-content: center; }
.reunion-travel-log-history > span { display: flex; gap: 12px; align-items: baseline; justify-content: space-between; }
.reunion-travel-log-history > span b { color: #45635c; font-size: 0.56rem; }
.reunion-travel-log-history ol {
  display: grid;
  margin: 0;
  padding: 0;
  gap: 5px;
  list-style: none;
}
.reunion-travel-log-history li { display: grid; min-width: 0; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: baseline; }
.reunion-travel-log-history li small { color: var(--desk-red); white-space: nowrap; }
.reunion-travel-log-history li span { overflow-wrap: anywhere; font-size: 0.6rem; font-weight: 740; line-height: 1.35; }
.reunion-travel-log-history li b { font-weight: 900; }

@keyframes reunion-travel-log-stamp {
  from { opacity: 0; transform: scale(1.55) rotate(12deg); }
  to { opacity: 1; transform: scale(1) rotate(-7deg); }
}

.reunion-travel-desk {
  --desk-ink: #142f2a;
  --desk-paper: #fff8e8;
  --desk-red: #cf4e40;
  --desk-blue: #b9d8d4;
  --desk-yellow: #f4c94e;
  position: sticky;
  top: 66px;
  z-index: 18;
  margin: 0 clamp(12px, 3vw, 38px) 18px;
  border: 3px solid var(--desk-ink);
  border-top: 0;
  border-radius: 0 0 18px 18px;
  color: var(--desk-ink);
  background: var(--desk-paper);
  box-shadow: 8px 9px 0 rgb(20 47 42 / 28%);
}

.reunion-travel-desk-header {
  display: grid;
  min-height: 116px;
  padding: 13px 15px;
  grid-template-columns: auto minmax(180px, 1fr) auto;
  gap: 14px 18px;
  align-items: center;
  background:
    linear-gradient(90deg, transparent 0 23px, rgb(20 47 42 / 7%) 24px 25px, transparent 26px),
    #e2ece2;
}

.reunion-travel-desk button {
  min-height: 44px;
  border: 2px solid var(--desk-ink);
  border-radius: 4px;
  color: var(--desk-ink);
  background: #fffdf7;
  box-shadow: 3px 3px 0 var(--desk-ink);
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}

.reunion-travel-desk button:hover {
  background: var(--desk-yellow);
  transform: translateY(-1px);
}

.reunion-travel-desk button:focus-visible,
.reunion-travel-ticket-tray:focus-visible,
#reunion-travel-market-return-title:focus-visible,
#reunion-travel-postcard-title:focus-visible,
#reunion-travel-postcard-next-direction:focus-visible,
#reunion-travel-postcard-bridge-mark:focus-visible,
#reunion-travel-paper-bridge-ending:focus-visible,
#reunion-travel-border-title:focus-visible,
#reunion-travel-border-parcel:focus-visible,
#reunion-travel-border-route:focus-visible,
#reunion-travel-border-refused-route:focus-visible,
#reunion-travel-border-appeal-return:focus-visible,
#reunion-travel-border-hearing-title:focus-visible,
#reunion-travel-border-hearing-result:focus-visible,
#reunion-travel-border-case-compass:focus-visible,
#reunion-travel-border-case-compass-route:focus-visible,
#reunion-travel-caravan-destination-title:focus-visible {
  outline: 4px solid var(--desk-red);
  outline-offset: 3px;
}

.reunion-travel-desk-back {
  padding: 9px 12px;
}

.reunion-travel-desk-heading {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.reunion-travel-desk-heading small,
.reunion-travel-controls small,
.reunion-travel-ticket-tray small,
.reunion-travel-ticket-card code {
  font: 950 0.49rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace;
  letter-spacing: 0.06em;
}

.reunion-travel-desk-heading > strong {
  overflow-wrap: anywhere;
  font-size: clamp(1.05rem, 2vw, 1.45rem);
  letter-spacing: -0.035em;
  line-height: 1;
}

.reunion-travel-desk-heading > span {
  color: #45635c;
  font-size: 0.65rem;
  font-weight: 760;
  line-height: 1.35;
}

.reunion-travel-controls {
  display: grid;
  grid-template-columns: 112px minmax(82px, auto) minmax(104px, auto);
  gap: 9px;
  align-items: center;
}

.reunion-travel-compass {
  position: relative;
  width: 104px;
  height: 88px;
}

.reunion-travel-compass-face {
  position: absolute;
  inset: 0 8px;
  display: block;
  border: 3px double var(--desk-ink);
  border-radius: 50%;
  background: radial-gradient(circle, #fffdf7 0 39%, var(--desk-blue) 40% 58%, #fffdf7 59%);
}

.reunion-travel-compass-face i {
  position: absolute;
  font: 950 0.42rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-style: normal;
}

.reunion-travel-compass-face i:nth-child(1) { top: 4px; left: calc(50% - 3px); }
.reunion-travel-compass-face i:nth-child(2) { top: calc(50% - 3px); right: 5px; }
.reunion-travel-compass-face i:nth-child(3) { bottom: 4px; left: calc(50% - 3px); }
.reunion-travel-compass-face i:nth-child(4) { top: calc(50% - 3px); left: 5px; }

.reunion-travel-compass-face b {
  position: absolute;
  top: 18px;
  left: calc(50% - 2px);
  width: 4px;
  height: 27px;
  border-radius: 6px 6px 1px 1px;
  background: var(--desk-red);
  transform: rotate(0deg);
  transform-origin: 50% 100%;
  transition: transform 320ms cubic-bezier(0.2, 0.8, 0.25, 1);
}

.reunion-travel-compass[data-compass-route="route-1"] .reunion-travel-compass-face b { transform: rotate(-48deg); }
.reunion-travel-compass[data-compass-route="route-2"] .reunion-travel-compass-face b { transform: rotate(58deg); }
.reunion-travel-compass[data-compass-route="route-3"] .reunion-travel-compass-face b { transform: rotate(-122deg); }
.reunion-travel-compass[data-compass-route="route-4"] .reunion-travel-compass-face b { transform: rotate(132deg); }
.reunion-travel-compass[data-compass-route="caravan"] .reunion-travel-compass-face b { transform: rotate(196deg); }
.reunion-travel-compass[data-next-route="route-2"] .reunion-travel-compass-face b {
  background: #7d2f75;
  transform: rotate(58deg);
}

#reunion-travel-last-place-action {
  position: absolute;
  inset: 23px 25px 20px;
  z-index: 2;
  display: grid;
  min-height: 0;
  padding: 3px;
  place-content: center;
  box-shadow: none;
  border-radius: 50%;
  background: var(--desk-yellow);
  line-height: 1;
}

#reunion-travel-last-place-action small { font-size: 0.37rem; }
#reunion-travel-last-place-action strong { max-width: 54px; overflow: hidden; font-size: 0.46rem; text-overflow: ellipsis; white-space: nowrap; }

.reunion-travel-ticket-marks button {
  position: absolute;
  z-index: 3;
  width: 20px;
  min-height: 20px;
  padding: 0;
  border-width: 1px;
  border-radius: 50%;
  background: var(--desk-red);
  box-shadow: 1px 1px 0 var(--desk-ink);
  color: #fff;
  font: 950 0.42rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
}

.reunion-travel-ticket-marks button:nth-child(1) { top: 3px; right: 5px; }
.reunion-travel-ticket-marks button:nth-child(2) { bottom: 2px; left: 3px; }
.reunion-travel-ticket-marks button:nth-child(3) { bottom: 0; right: 2px; }
.reunion-travel-ticket-marks button:nth-child(n + 4) { display: none; }
.reunion-travel-ticket-marks button[data-ticket-state="reserved"] {
  color: var(--desk-ink);
  background: var(--desk-yellow);
  box-shadow: 0 0 0 2px #fffdf7, 2px 2px 0 var(--desk-ink);
}

.reunion-travel-map-action,
.reunion-travel-tray-toggle {
  display: grid;
  min-width: 0;
  padding: 9px 10px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  text-align: left;
}

.reunion-travel-map-action > span:first-child,
.reunion-travel-tray-toggle > span:first-child { font-size: 1.15rem; }
.reunion-travel-map-action span:nth-child(2),
.reunion-travel-tray-toggle span:nth-child(2) { display: grid; gap: 1px; }
.reunion-travel-map-action strong,
.reunion-travel-tray-toggle strong { font-size: 0.72rem; }

.reunion-travel-tray-toggle[aria-expanded="true"] {
  background: var(--desk-yellow);
  transform: translateY(4px);
  box-shadow: 3px 0 0 var(--desk-ink);
}

.reunion-travel-ticket-tray {
  display: grid;
  max-height: min(48vh, 360px);
  padding: 15px;
  gap: 12px;
  overflow: auto;
  border-top: 3px solid var(--desk-ink);
  background:
    repeating-linear-gradient(0deg, transparent 0 27px, rgb(20 47 42 / 6%) 28px 29px),
    #fff4d6;
}

.reunion-travel-findings {
  display: grid;
  padding: 11px 15px 14px;
  grid-template-columns: minmax(190px, 0.55fr) minmax(300px, 1fr);
  gap: 11px;
  border-top: 3px solid var(--desk-ink);
  background:
    repeating-linear-gradient(90deg, transparent 0 38px, rgb(20 47 42 / 6%) 39px 40px),
    #f3dfae;
}

.reunion-travel-market-open {
  display: grid;
  min-width: 0;
  padding: 10px 12px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  text-align: left;
}

.reunion-travel-market-open > span:first-child { font-size: 1.45rem; }
.reunion-travel-market-open > span:nth-child(2) { display: grid; gap: 2px; }
.reunion-travel-market-open small,
.reunion-travel-caravan-key small,
.reunion-travel-market-return small,
.reunion-travel-caravan-destination small {
  font: 950 0.48rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace;
  letter-spacing: 0.06em;
}

.reunion-travel-caravan-key {
  display: grid;
  min-width: 0;
  padding: 9px 10px;
  grid-template-columns: 74px minmax(140px, 1fr) auto;
  gap: 11px;
  align-items: center;
  border: 2px solid var(--desk-ink);
  border-radius: 5px 18px 5px 5px;
  background: #fff8e8;
  box-shadow: 3px 3px 0 var(--desk-ink);
}

.reunion-travel-caravan-key[data-key-state="used"] {
  background: #c9e1ce;
}

.reunion-travel-caravan-key[data-key-state="earned"] .reunion-travel-caravan-key-shape {
  animation: reunion-travel-key-assembles 480ms cubic-bezier(0.18, 0.82, 0.28, 1.18) both;
}

.reunion-travel-caravan-key > div:nth-child(2) { display: grid; min-width: 0; gap: 2px; }
.reunion-travel-caravan-key p { margin: 0; color: #45635c; font-size: 0.61rem; font-weight: 760; line-height: 1.35; }
.reunion-travel-caravan-key button { padding: 8px 10px; }

.reunion-travel-caravan-key-shape {
  position: relative;
  display: block !important;
  width: 70px;
  height: 43px;
  transform: rotate(-5deg);
}

.reunion-travel-caravan-key-shape i {
  position: absolute;
  top: 5px;
  left: 0;
  width: 33px;
  height: 33px;
  border: 7px double var(--desk-ink);
  border-radius: 50%;
  background: var(--desk-yellow);
}

.reunion-travel-caravan-key-shape b {
  position: absolute;
  top: 13px;
  left: 12px;
  z-index: 1;
  font: 950 0.7rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
}

.reunion-travel-caravan-key-shape span {
  position: absolute;
  top: 19px;
  left: 32px;
  width: 37px;
  height: 10px;
  border-bottom: 7px solid var(--desk-ink);
}

.reunion-travel-caravan-key-shape span::before,
.reunion-travel-caravan-key-shape span::after {
  position: absolute;
  bottom: -13px;
  width: 7px;
  height: 10px;
  background: var(--desk-ink);
  content: "";
}

.reunion-travel-caravan-key-shape span::before { right: 5px; }
.reunion-travel-caravan-key-shape span::after { right: 16px; height: 7px; }

.reunion-travel-market-return {
  display: grid;
  padding: 16px;
  gap: 12px;
  border-top: 3px solid var(--desk-ink);
  background:
    radial-gradient(circle at 90% 12%, rgb(244 201 78 / 28%) 0 5%, transparent 5.5%),
    #244945;
  color: #fff8e8;
}

.reunion-travel-market-return > header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.reunion-travel-market-return > header > span {
  display: grid;
  width: 60px;
  height: 60px;
  place-items: center;
  border: 3px double #fff8e8;
  border-radius: 50%;
  background: var(--desk-red);
  font: 950 0.45rem/1.1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-6deg);
}

.reunion-travel-market-return > header > div { display: grid; gap: 3px; }
.reunion-travel-market-return > header strong { font-size: 1.15rem; }
.reunion-travel-market-return > header p,
.reunion-travel-market-third-offer p,
#reunion-travel-market-return-status { margin: 0; font-size: 0.64rem; font-weight: 750; line-height: 1.4; }

.reunion-travel-market-return-shelf,
.reunion-travel-caravan-stall-history {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.reunion-travel-market-item {
  display: grid;
  min-width: 0;
  min-height: 74px;
  padding: 9px;
  gap: 3px;
  align-content: end;
  border: 2px solid var(--desk-ink);
  color: var(--desk-ink);
  background: var(--desk-yellow);
  box-shadow: 3px 3px 0 var(--desk-ink);
  transform: rotate(-1deg);
}

.reunion-travel-market-item:nth-child(2) { background: var(--desk-blue); transform: rotate(1deg); }
.reunion-travel-market-item:nth-child(3) { background: #dcb9d2; }
.reunion-travel-market-item span { font-size: 1.2rem; }
.reunion-travel-market-item small { color: #45635c; }
.reunion-travel-market-item strong { overflow-wrap: anywhere; font-size: 0.67rem; line-height: 1.2; }

.reunion-travel-market-third-offer {
  display: grid;
  padding: 11px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 3px dashed var(--desk-ink);
  color: var(--desk-ink);
  background: #fff8e8;
}

.reunion-travel-market-third-offer > span { font-size: 2rem; }
.reunion-travel-market-third-offer > div { display: grid; gap: 3px; }
.reunion-travel-market-third-offer button { padding: 9px 11px; }
#reunion-travel-market-return-status { padding-left: 9px; border-left: 4px solid var(--desk-yellow); }

.reunion-travel-caravan-destination {
  --caravan-ink: #173934;
  --desk-red: #cf4e40;
  --desk-blue: #b9d8d4;
  --desk-yellow: #f4c94e;
  position: relative;
  display: grid;
  min-height: min(650px, calc(100vh - 70px));
  padding: clamp(28px, 6vw, 74px) clamp(16px, 6vw, 76px);
  gap: clamp(22px, 4vw, 46px);
  overflow: hidden;
  border-block: 3px solid var(--caravan-ink);
  color: var(--caravan-ink);
  background:
    radial-gradient(circle at 84% 16%, #f4c94e 0 5%, transparent 5.3%),
    linear-gradient(#b9d8d4 0 52%, #f1ddb2 52%);
}

.reunion-travel-caravan-sky { position: absolute; inset: 0; pointer-events: none; }
.reunion-travel-caravan-sky i { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: #fff8e8; box-shadow: 0 0 0 3px rgb(255 248 232 / 28%); }
.reunion-travel-caravan-sky i:nth-child(1) { top: 13%; left: 12%; }
.reunion-travel-caravan-sky i:nth-child(2) { top: 22%; left: 37%; }
.reunion-travel-caravan-sky i:nth-child(3) { top: 9%; right: 30%; }
.reunion-travel-caravan-sky i:nth-child(4) { top: 31%; right: 8%; }
.reunion-travel-caravan-sky i:nth-child(5) { top: 38%; left: 22%; }

.reunion-travel-caravan-destination > header { position: relative; z-index: 1; max-width: 760px; }
.reunion-travel-caravan-destination > header span { display: inline-block; padding: 5px 8px; color: #fff8e8; background: var(--desk-red); font: 950 0.52rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; transform: rotate(-1deg); }
.reunion-travel-caravan-destination h1 { max-width: 720px; margin: 11px 0 9px; font-size: clamp(2.35rem, 7vw, 6.2rem); letter-spacing: -0.065em; line-height: 0.86; }
.reunion-travel-caravan-destination > header p { max-width: 610px; margin: 0; font-size: clamp(0.8rem, 1.5vw, 1rem); font-weight: 760; line-height: 1.45; }

.reunion-travel-postcard {
  --caravan-ink: var(--desk-ink);
  position: relative;
  z-index: 1;
  display: grid;
  width: auto;
  margin: 0 14px 14px;
  padding: clamp(15px, 2.5vw, 24px);
  grid-template-columns: minmax(96px, 0.28fr) minmax(210px, 0.72fr) minmax(220px, 0.65fr) minmax(150px, 0.4fr);
  gap: clamp(12px, 2vw, 22px);
  align-items: center;
  border: 4px solid var(--caravan-ink);
  border-radius: 5px;
  background:
    linear-gradient(90deg, transparent 0 67%, rgb(23 57 52 / 12%) 67.2% 67.5%, transparent 67.7%),
    #fff8e8;
  box-shadow: 9px 10px 0 rgb(23 57 52 / 24%);
  transform: rotate(-0.45deg);
}

.reunion-travel-postcard::before,
.reunion-travel-postcard::after {
  position: absolute;
  z-index: -1;
  border: 2px solid var(--caravan-ink);
  background: #f1dfb9;
  content: "";
  pointer-events: none;
}

.reunion-travel-postcard::before { inset: 12px -8px -9px 18%; transform: rotate(0.7deg); }
.reunion-travel-postcard::after { inset: -8px 16% 11px -7px; transform: rotate(-0.55deg); }

.reunion-travel-postcard[data-choice-state="open"] {
  animation: reunion-travel-postcard-unfold 520ms cubic-bezier(0.2, 0.82, 0.24, 1.06) both;
}

.reunion-travel-postcard[data-choice-state="saved"] {
  background:
    linear-gradient(135deg, transparent 0 88%, #e8d8ae 88.2% 100%),
    linear-gradient(90deg, transparent 0 67%, rgb(23 57 52 / 12%) 67.2% 67.5%, transparent 67.7%),
    #fff8e8;
  animation: reunion-travel-postcard-fold 540ms cubic-bezier(0.2, 0.78, 0.28, 1) both;
}

.reunion-travel-postcard-goods {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
}

.reunion-travel-postcard-goods > span {
  display: grid;
  min-height: 74px;
  padding: 8px 4px;
  place-items: center;
  border: 2px solid var(--caravan-ink);
  border-radius: 50% 50% 45% 55%;
  background: var(--desk-yellow);
  font-size: 1.35rem;
  transform: rotate(-4deg);
}

.reunion-travel-postcard-goods > span:nth-child(2) { background: var(--desk-blue); transform: rotate(3deg); }
.reunion-travel-postcard-goods > span:nth-child(3) { background: #dcb9d2; transform: rotate(-1deg); }
.reunion-travel-postcard-goods > span small { font: 950 0.38rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; }

.reunion-travel-postcard-bridge-mark {
  position: relative;
  z-index: 2;
  display: grid;
  min-height: 82px;
  padding: 9px 7px;
  grid-column: 1 / -1;
  gap: 2px;
  place-items: center;
  border: 4px double var(--desk-red) !important;
  border-radius: 50% 46% 52% 48% !important;
  color: #9e352e !important;
  background: rgb(255 248 232 / 92%) !important;
  box-shadow: 0 0 0 2px rgb(207 78 64 / 18%), 3px 4px 0 rgb(20 47 42 / 18%) !important;
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace !important;
  text-align: center;
  transform: rotate(-6deg);
}

.reunion-travel-postcard-bridge-mark::before,
.reunion-travel-postcard-bridge-mark::after {
  position: absolute;
  inset: 5px;
  border: 1px solid currentColor;
  border-radius: inherit;
  content: "";
  pointer-events: none;
}

.reunion-travel-postcard-bridge-mark::after {
  inset: 10px;
  border-style: dashed;
  opacity: 0.55;
}

.reunion-travel-postcard-bridge-mark small,
.reunion-travel-postcard-bridge-mark span { position: relative; z-index: 1; }
.reunion-travel-postcard-bridge-mark small { font-size: 0.37rem; letter-spacing: 0.04em; }
.reunion-travel-postcard-bridge-mark strong { position: relative; z-index: 1; font-size: 0.8rem; letter-spacing: 0.08em; }
.reunion-travel-postcard-bridge-mark span { font-size: 0.43rem; font-weight: 950; }
.reunion-travel-postcard-bridge-mark i { font-style: normal; }
.reunion-travel-postcard-bridge-mark:hover { background: #ffe3d2 !important; transform: rotate(-3deg) translateY(-1px) !important; }

.reunion-travel-postcard[data-bridge-mark="route-2"] .reunion-travel-postcard-goods {
  padding: 7px;
  border: 2px dashed rgb(207 78 64 / 46%);
  background: repeating-linear-gradient(-14deg, transparent 0 11px, rgb(207 78 64 / 8%) 12px 13px);
}

.reunion-travel-postcard[data-bridge-mark="route-2"] .reunion-travel-postcard-bridge-mark {
  animation: reunion-travel-bridge-mark 460ms cubic-bezier(0.16, 0.88, 0.26, 1.18) both;
}
.reunion-travel-postcard-message { display: grid; gap: 6px; }
.reunion-travel-postcard-message > * { margin: 0; }
.reunion-travel-postcard-message > small { font: 950 0.46rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.06em; }
.reunion-travel-postcard-message > p:first-of-type { color: #45635c; font: 700 0.68rem/1.35 Georgia, serif; font-style: italic; }
.reunion-travel-postcard-message h2 { max-width: 590px; font-size: clamp(1.45rem, 3.2vw, 3rem); letter-spacing: -0.055em; line-height: 0.95; overflow-wrap: anywhere; }
.reunion-travel-postcard-note { color: #45635c; font-size: 0.58rem; font-weight: 760; line-height: 1.35; }

.reunion-travel-postcard-choice {
  display: grid;
  padding: 12px;
  gap: 6px;
  border: 2px dashed var(--caravan-ink);
  background: #fffdf7;
}

.reunion-travel-postcard-choice > * { margin: 0; }
.reunion-travel-postcard-choice small,
.reunion-travel-postcard-result small { color: #7b3b34; font: 950 0.45rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.05em; }
.reunion-travel-postcard-choice strong { font-size: 0.82rem; line-height: 1.2; }
.reunion-travel-postcard-choice p { color: #45635c; font-size: 0.58rem; font-weight: 760; line-height: 1.35; }
.reunion-travel-postcard-choice button { min-height: 48px; padding: 9px 11px; text-align: left; }

.reunion-travel-postcard-result {
  display: grid;
  min-width: 0;
  padding: 10px 12px;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 3px 10px;
  align-items: center;
  border: 3px double var(--desk-red);
  border-radius: 5px;
  background: #fffdf7;
  transform: rotate(1deg);
}

.reunion-travel-postcard-result > * { margin: 0; }
.reunion-travel-postcard-result > small,
.reunion-travel-postcard-result > strong,
.reunion-travel-postcard-result > p { grid-column: 2; }
.reunion-travel-postcard-result > strong { overflow-wrap: anywhere; font-size: 1rem; line-height: 1.1; }
.reunion-travel-postcard-result > p { color: #45635c; font-size: 0.56rem; font-weight: 760; line-height: 1.35; }
.reunion-travel-postcard-route-stamp {
  display: grid;
  width: 52px;
  height: 52px;
  grid-row: 1 / 4;
  place-items: center;
  border: 3px solid var(--desk-red);
  border-radius: 50%;
  color: var(--desk-red);
  font: 950 0.48rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-8deg);
}

.reunion-travel-postcard-actions { display: grid; gap: 9px; justify-items: stretch; }
.reunion-travel-postcard-actions button {
  min-height: 48px;
  padding: 9px 12px;
  border: 2px solid var(--caravan-ink);
  border-radius: 4px;
  color: var(--caravan-ink);
  background: #fffdf7;
  box-shadow: 3px 3px 0 var(--caravan-ink);
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}
.reunion-travel-postcard-actions button:hover { background: var(--desk-yellow); transform: translateY(-1px); }
.reunion-travel-postcard-actions button:focus-visible { outline: 4px solid var(--desk-red); outline-offset: 3px; }
.reunion-travel-postcard-actions p { min-height: 2.5em; margin: 0; color: #365b53; font-size: 0.6rem; font-weight: 820; line-height: 1.35; }
.reunion-travel-postcard-stamp {
  justify-self: end;
  padding: 7px 10px;
  border: 3px double var(--desk-red);
  border-radius: 50%;
  color: var(--desk-red);
  font: 950 0.52rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(8deg);
}

.reunion-travel-postcard[data-copy-state="copied"] .reunion-travel-postcard-stamp {
  animation: reunion-travel-postcard-stamp 420ms cubic-bezier(0.2, 0.82, 0.24, 1.15) both;
}

.reunion-travel-postcard[data-copy-state="copied"] .reunion-travel-postcard-actions button { background: var(--desk-yellow); }
.reunion-travel-postcard[data-copy-state="failed"] .reunion-travel-postcard-actions p { color: #922f28; }

.reunion-travel-paper-bridge {
  position: relative;
  display: grid;
  padding: clamp(16px, 2.7vw, 28px);
  gap: 16px;
  overflow: hidden;
  border-top: 3px solid var(--desk-ink);
  background:
    linear-gradient(90deg, transparent 0 49.7%, rgb(20 47 42 / 9%) 49.9% 50.1%, transparent 50.3%),
    repeating-linear-gradient(0deg, transparent 0 31px, rgb(20 47 42 / 6%) 32px 33px),
    #dce9df;
}

.reunion-travel-paper-bridge::before {
  position: absolute;
  top: 13px;
  right: 18px;
  width: 72px;
  height: 72px;
  border: 3px double var(--desk-red);
  border-radius: 50%;
  opacity: 0.22;
  content: "02-B";
  font: 950 0.85rem/72px ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(12deg);
}

.reunion-travel-paper-bridge-heading {
  position: relative;
  z-index: 1;
  display: grid;
  max-width: 780px;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 13px;
  align-items: center;
}

.reunion-travel-paper-bridge-heading > span {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border: 3px solid var(--desk-ink);
  border-radius: 50%;
  color: #fff8e8;
  background: var(--desk-red);
  font: 950 0.45rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-7deg);
}

.reunion-travel-paper-bridge-heading > div { display: grid; min-width: 0; gap: 3px; }
.reunion-travel-paper-bridge-heading small,
.reunion-travel-paper-bridge-crossing small,
.reunion-travel-paper-bridge-ending small {
  font: 950 0.48rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace;
  letter-spacing: 0.06em;
}
.reunion-travel-paper-bridge-heading h2,
.reunion-travel-paper-bridge-heading p { margin: 0; }
.reunion-travel-paper-bridge-heading h2 { font-size: clamp(1.35rem, 3vw, 2.35rem); letter-spacing: -0.045em; line-height: 1; }
.reunion-travel-paper-bridge-heading p { max-width: 650px; color: #45635c; font-size: 0.66rem; font-weight: 760; line-height: 1.4; }

.reunion-travel-paper-bridge-parts {
  position: relative;
  display: grid;
  min-height: 112px;
  grid-template-columns: minmax(170px, 1.4fr) minmax(90px, 0.7fr) minmax(90px, 0.48fr);
  gap: 0;
  align-items: center;
}

.reunion-travel-paper-bridge-half {
  position: relative;
  z-index: 2;
  display: grid;
  min-height: 82px;
  padding: 12px;
  place-items: center;
  border: 3px solid var(--desk-ink);
  background:
    repeating-linear-gradient(90deg, transparent 0 43px, rgb(20 47 42 / 18%) 44px 46px),
    #f4c94e;
  box-shadow: 5px 6px 0 rgb(20 47 42 / 24%);
}

.reunion-travel-paper-bridge-half i {
  position: absolute;
  inset: 10px;
  border: 2px dashed rgb(20 47 42 / 45%);
}

.reunion-travel-paper-bridge-half b {
  position: relative;
  z-index: 1;
  padding: 5px 8px;
  border: 2px solid var(--desk-ink);
  background: #fff8e8;
  font: 950 0.49rem/1.1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
}

.reunion-travel-paper-bridge-half.is-crossing { transform: rotate(-1deg); transform-origin: 0 50%; }
.reunion-travel-paper-bridge-half.is-folded {
  z-index: 3;
  background: repeating-linear-gradient(90deg, #dcb9d2 0 18px, #ead2e3 18px 36px);
  box-shadow: -5px 6px 0 rgb(20 47 42 / 24%);
  transform: perspective(240px) rotateY(-58deg) rotate(1deg);
  transform-origin: 100% 50%;
}
.reunion-travel-paper-bridge-half.is-folded::after {
  position: absolute;
  inset: -9px -8px 8px 9px;
  z-index: -1;
  border: 3px solid var(--desk-ink);
  background: #d3aaca;
  content: "";
}

.reunion-travel-paper-bridge-water {
  position: relative;
  display: flex;
  height: 70px;
  align-items: center;
  justify-content: space-evenly;
  overflow: hidden;
  border-block: 3px solid var(--desk-ink);
  background: #94c8cf;
}
.reunion-travel-paper-bridge-water::after { color: #fff8e8; content: "≈  ≈  ≈"; font-size: 1.15rem; letter-spacing: 0.3em; }
.reunion-travel-paper-bridge-water i { display: none; }

.reunion-travel-paper-bridge[data-bridge-state="open"] .is-crossing {
  animation: reunion-travel-paper-bridge-opens 560ms cubic-bezier(0.18, 0.82, 0.24, 1.08) both;
}
.reunion-travel-paper-bridge[data-bridge-state="saved"] .is-crossing { background-color: #bcdabf; }
.reunion-travel-paper-bridge[data-bridge-state="saved"] .is-crossing b::after { content: " · CROSSED"; color: #366158; }
.reunion-travel-paper-bridge[data-bridge-state="error"] .reunion-travel-paper-bridge-crossing { border-color: var(--desk-red); background: #fff0e7; }

.reunion-travel-paper-bridge-crossing {
  display: grid;
  padding: 12px 14px;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  border: 2px dashed var(--desk-ink);
  background: #fffdf7;
}
.reunion-travel-paper-bridge-crossing > div { display: grid; min-width: 0; gap: 3px; }
.reunion-travel-paper-bridge-crossing strong { font-size: 0.92rem; }
.reunion-travel-paper-bridge-crossing p { margin: 0; color: #45635c; font-size: 0.61rem; font-weight: 760; line-height: 1.4; }
.reunion-travel-paper-bridge-crossing button { min-width: 190px; padding: 10px 14px; background: var(--desk-yellow); }

.reunion-travel-paper-bridge-ending {
  display: grid;
  padding: clamp(14px, 2.5vw, 22px);
  grid-template-columns: auto minmax(0, 1fr) minmax(150px, 0.35fr);
  gap: 15px;
  align-items: center;
  border: 3px solid var(--desk-ink);
  border-radius: 4px 22px 4px 4px;
  background: #fff8e8;
  box-shadow: 7px 8px 0 var(--desk-ink);
}
.reunion-travel-paper-bridge-ending > div { display: grid; min-width: 0; gap: 4px; }
.reunion-travel-paper-bridge-ending h3,
.reunion-travel-paper-bridge-ending p { margin: 0; }
.reunion-travel-paper-bridge-ending h3 { font-size: clamp(1.2rem, 2.6vw, 2rem); letter-spacing: -0.045em; line-height: 1; }
.reunion-travel-paper-bridge-ending p { color: #45635c; font: 700 0.7rem/1.45 Georgia, serif; }
.reunion-travel-paper-bridge-next {
  display: grid;
  min-width: 0;
  padding: 10px;
  gap: 10px;
  border-left: 2px dashed var(--desk-ink);
}
.reunion-travel-paper-bridge-next > strong { color: #366158; font-size: 0.66rem; line-height: 1.35; }
.reunion-travel-paper-bridge-next button { padding: 9px 11px; background: var(--desk-yellow); text-align: left; }
.reunion-travel-paper-bridge-stamp {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border: 4px double var(--desk-red);
  border-radius: 50%;
  color: var(--desk-red);
  font: 950 0.47rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-8deg);
}
.reunion-travel-paper-bridge[data-bridge-state="saved"] .reunion-travel-paper-bridge-ending {
  animation: reunion-travel-paper-bridge-ending 480ms cubic-bezier(0.18, 0.82, 0.24, 1.08) both;
}

.reunion-travel-border-station {
  --border-blue: #85bdc4;
  --border-pink: #dca7c9;
  position: relative;
  display: grid;
  padding: clamp(17px, 3vw, 30px);
  gap: clamp(15px, 2.5vw, 24px);
  overflow: hidden;
  border: 3px solid var(--desk-ink);
  border-radius: 22px 4px 22px 4px;
  background:
    linear-gradient(90deg, transparent 0 25%, rgb(20 47 42 / 7%) 25.2% 25.5%, transparent 25.7%),
    repeating-linear-gradient(0deg, transparent 0 34px, rgb(20 47 42 / 6%) 35px 36px),
    #fff8e8;
  box-shadow: 8px 9px 0 var(--desk-ink);
}

.reunion-travel-border-station::before {
  position: absolute;
  right: -28px;
  bottom: -35px;
  width: 142px;
  height: 142px;
  border: 8px double rgb(207 78 64 / 22%);
  border-radius: 50%;
  content: "PRIVATE";
  color: rgb(207 78 64 / 22%);
  font: 950 1rem/142px ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-15deg);
  pointer-events: none;
}

.reunion-travel-border-heading {
  position: relative;
  z-index: 1;
  display: grid;
  max-width: 780px;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 13px;
  align-items: center;
}

.reunion-travel-border-heading > span {
  display: grid;
  width: 62px;
  height: 62px;
  place-items: center;
  border: 3px solid var(--desk-ink);
  border-radius: 8% 50% 50%;
  color: #fff8e8;
  background: var(--desk-ink);
  font: 950 0.48rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-6deg);
}

.reunion-travel-border-heading > div { display: grid; min-width: 0; gap: 4px; }
.reunion-travel-border-heading small,
.reunion-travel-border-parcel-copy small,
.reunion-travel-border-route small {
  font: 950 0.48rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace;
  letter-spacing: 0.06em;
}
.reunion-travel-border-heading h3,
.reunion-travel-border-heading p { margin: 0; }
.reunion-travel-border-heading h3 { font-size: clamp(1.45rem, 3.5vw, 2.8rem); letter-spacing: -0.055em; line-height: 0.95; }
.reunion-travel-border-heading p { max-width: 660px; color: #45635c; font-size: 0.66rem; font-weight: 760; line-height: 1.4; }

.reunion-travel-border-ticket-stamps {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}

.reunion-travel-border-ticket-stamps > span {
  display: grid;
  min-width: 0;
  padding: 10px 12px;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  border: 3px double var(--desk-red);
  border-radius: 50px 7px 7px 50px;
  background: #fffdf7;
  box-shadow: 3px 4px 0 rgb(20 47 42 / 22%);
}
.reunion-travel-border-ticket-stamps > span:nth-child(2) { transform: rotate(1deg); }
.reunion-travel-border-ticket-stamps b {
  display: grid;
  width: 43px;
  height: 43px;
  place-items: center;
  border: 2px solid var(--desk-red);
  border-radius: 50%;
  color: var(--desk-red);
  font: 950 0.7rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
}
.reunion-travel-border-ticket-stamps > span > span { display: grid; min-width: 0; gap: 2px; }
.reunion-travel-border-ticket-stamps small,
.reunion-travel-border-ticket-stamps code { font: 900 0.44rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.04em; }
.reunion-travel-border-ticket-stamps strong,
.reunion-travel-border-ticket-stamps code { min-width: 0; overflow-wrap: anywhere; }
.reunion-travel-border-ticket-stamps strong { font-size: 0.72rem; line-height: 1.2; }
.reunion-travel-border-ticket-stamps code { color: #45635c; }
.reunion-travel-border-ticket-stamps em {
  margin-top: 3px;
  color: #366158;
  font: 950 0.4rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-style: normal;
  letter-spacing: 0.04em;
}
.reunion-travel-border-ticket-stamps > span[data-ticket-state="reserved"] {
  position: relative;
  border-style: solid;
  background:
    repeating-linear-gradient(-45deg, transparent 0 8px, rgb(207 78 64 / 9%) 8px 16px),
    #fff0b5;
  box-shadow: inset 0 0 0 3px #fffdf7, 3px 4px 0 rgb(20 47 42 / 35%);
}
.reunion-travel-border-ticket-stamps > span[data-ticket-state="reserved"]::after {
  position: absolute;
  top: -7px;
  right: 10px;
  padding: 3px 7px;
  border: 2px solid var(--desk-red);
  content: "HELD · FORMS 4–19 ATTACHED";
  color: var(--desk-red);
  background: #fffdf7;
  font: 950 0.34rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  letter-spacing: 0.04em;
  transform: rotate(1.5deg);
}

.reunion-travel-border-form {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.36fr);
  gap: 14px;
  align-items: end;
}
.reunion-travel-border-form fieldset { display: grid; min-width: 0; margin: 0; padding: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; border: 2px dashed var(--desk-ink); }
.reunion-travel-border-form legend { padding: 0 7px; font: 950 0.52rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.05em; }
.reunion-travel-border-form fieldset button { display: grid; min-width: 0; min-height: 122px; padding: 11px; grid-template-columns: auto minmax(0, 1fr); gap: 4px 9px; align-content: start; text-align: left; }
.reunion-travel-border-form fieldset button > span { display: grid; width: 31px; height: 31px; grid-row: 1 / 3; place-items: center; border: 2px solid var(--desk-ink); border-radius: 50%; background: var(--border-blue); font-size: 1rem; }
.reunion-travel-border-form fieldset button:nth-of-type(2) > span { background: var(--desk-yellow); }
.reunion-travel-border-form fieldset button:nth-of-type(3) > span { background: var(--border-pink); }
.reunion-travel-border-form fieldset button strong { min-width: 0; font-size: 0.7rem; line-height: 1.2; }
.reunion-travel-border-form fieldset button small { grid-column: 2; color: #45635c; font-size: 0.53rem; font-weight: 760; line-height: 1.3; }
.reunion-travel-border-form fieldset button[aria-pressed="true"] { background: var(--desk-yellow); box-shadow: inset 0 0 0 3px #fffdf7, 3px 3px 0 var(--desk-ink); transform: translateY(-2px) rotate(-0.6deg); }
.reunion-travel-border-form fieldset button:disabled { cursor: default; opacity: 1; }

.reunion-travel-border-save { display: grid; min-width: 0; padding: 12px; gap: 10px; border: 2px solid var(--desk-ink); background: #dce9df; }
.reunion-travel-border-save p { min-height: 3.9em; margin: 0; color: #365b53; font-size: 0.62rem; font-weight: 800; line-height: 1.4; }
.reunion-travel-border-save button { padding: 10px 12px; background: var(--desk-red); color: #fffdf7; }
.reunion-travel-border-save button:disabled { color: #45635c; background: #d7d5c9; cursor: not-allowed; }
.reunion-travel-border-station[data-rule-state="error"] .reunion-travel-border-save { border-color: var(--desk-red); background: #fff0e7; }

.reunion-travel-border-parcel {
  position: relative;
  z-index: 1;
  display: grid;
  padding: clamp(14px, 2.5vw, 22px);
  grid-template-columns: minmax(220px, 0.8fr) minmax(260px, 1fr);
  gap: clamp(16px, 3vw, 32px);
  align-items: center;
  border: 3px solid var(--desk-ink);
  border-radius: 4px 30px 4px 4px;
  background: #d8e8e3;
  box-shadow: 6px 7px 0 var(--desk-ink);
}

.reunion-travel-border-parcel-theatre { position: relative; min-height: 174px; }
.reunion-travel-border-parcel-box {
  position: absolute;
  inset: 26px 20% 12px 4%;
  display: grid;
  place-items: center;
  border: 3px solid var(--desk-ink);
  background: repeating-linear-gradient(135deg, #d9a873 0 18px, #e6bc8c 18px 36px);
  box-shadow: 5px 6px 0 rgb(20 47 42 / 28%);
  transform: rotate(-2deg);
}
.reunion-travel-border-parcel-box i { position: absolute; inset: 12px; border: 2px dashed rgb(20 47 42 / 44%); }
.reunion-travel-border-parcel-box b { position: relative; padding: 6px 10px; border: 2px solid var(--desk-ink); background: #fff8e8; font: 950 0.53rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; }
.reunion-travel-border-parcel-stamp { position: absolute; z-index: 2; display: grid; width: 46px; height: 46px; place-items: center; border: 4px double var(--desk-red); border-radius: 50%; color: var(--desk-red); background: #fff8e8; font: 950 0.55rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.reunion-travel-border-parcel-stamp.is-one { top: 8px; left: 7%; transform: rotate(-12deg); }
.reunion-travel-border-parcel-stamp.is-two { right: 25%; bottom: 3px; transform: rotate(9deg); }
.reunion-travel-border-parcel-flap {
  position: absolute;
  z-index: 1;
  top: 42px;
  right: 1%;
  width: 42%;
  min-height: 76px;
  padding: 12px 9px;
  clip-path: polygon(0 0, 78% 0, 100% 50%, 78% 100%, 0 100%, 20% 50%);
  color: var(--desk-ink);
  background: var(--desk-yellow);
  font: 950 0.5rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(4deg);
}
.reunion-travel-border-parcel-flap i { display: block; margin-top: 4px; font-size: 1rem; font-style: normal; }
.reunion-travel-border-parcel-copy { display: grid; min-width: 0; gap: 7px; }
.reunion-travel-border-parcel-copy > * { margin: 0; }
.reunion-travel-border-parcel-copy h4 { font-size: clamp(1.35rem, 3vw, 2.4rem); letter-spacing: -0.05em; line-height: 0.98; }
.reunion-travel-border-parcel-copy p { color: #45635c; font: 700 0.72rem/1.45 Georgia, serif; }
.reunion-travel-border-parcel-copy button { justify-self: start; margin-top: 4px; padding: 10px 14px; background: var(--desk-yellow); }
.reunion-travel-border-station[data-rule-state="saved"] .reunion-travel-border-parcel { animation: reunion-travel-border-parcel 560ms cubic-bezier(0.16, 0.88, 0.26, 1.12) both; }

.reunion-travel-border-route {
  position: relative;
  z-index: 1;
  display: grid;
  padding: clamp(15px, 2.5vw, 24px);
  grid-template-columns: auto minmax(0, 1fr);
  gap: 15px;
  align-items: center;
  border: 3px solid var(--desk-ink);
  background: linear-gradient(110deg, #f4c94e 0 14%, #fffdf7 14.2% 100%);
  box-shadow: 6px 7px 0 var(--desk-ink);
}
.reunion-travel-border-route-ribbon { display: grid; width: 70px; height: 70px; place-items: center; border: 3px solid var(--desk-ink); border-radius: 50%; background: #fffdf7; font: 950 0.45rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; transform: rotate(-7deg); }
.reunion-travel-border-route > div { display: grid; min-width: 0; gap: 5px; }
.reunion-travel-border-route h4,
.reunion-travel-border-route p { margin: 0; }
.reunion-travel-border-route h4 { font-size: clamp(1.25rem, 3vw, 2.15rem); letter-spacing: -0.045em; line-height: 1; }
.reunion-travel-border-route p { max-width: 720px; color: #45635c; font: 700 0.7rem/1.45 Georgia, serif; }

.reunion-travel-border-costs {
  display: grid;
  min-width: 0;
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.reunion-travel-border-protected-item,
.reunion-travel-border-rejected-item {
  position: relative;
  display: grid;
  min-width: 0;
  padding: 13px;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 11px;
  align-content: start;
  border: 2px solid var(--desk-ink);
  background: #f7f0dc;
}

.reunion-travel-border-protected-item {
  border-radius: 24px 5px 5px 24px;
  background: #cfe5d6;
  box-shadow: inset 8px 0 0 #6f9e83;
}

.reunion-travel-border-rejected-item {
  border-style: dashed;
  border-radius: 5px;
  background: #fff9df;
}

.reunion-travel-border-item-mark {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 3px double #366158;
  border-radius: 50%;
  color: #366158;
  background: #fffdf7;
  font: 950 1rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  transform: rotate(-5deg);
}
.reunion-travel-border-item-mark b { display: block; margin-top: -9px; font-size: 0.32rem; letter-spacing: 0.08em; }
.reunion-travel-border-item-mark.is-refused { border-color: var(--desk-red); color: var(--desk-red); transform: rotate(7deg); }
.reunion-travel-border-protected-item > div,
.reunion-travel-border-rejected-item > div { display: grid; min-width: 0; gap: 3px; }
.reunion-travel-border-costs small { font: 950 0.45rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.05em; }
.reunion-travel-border-costs h5,
.reunion-travel-border-costs p { margin: 0; }
.reunion-travel-border-costs h5 { font-size: clamp(0.88rem, 2vw, 1.12rem); line-height: 1.15; }
.reunion-travel-border-costs p { color: #45635c; font: 700 0.62rem/1.4 Georgia, serif; }

.reunion-travel-border-claim-tag {
  position: relative;
  display: grid;
  width: min(100%, 320px);
  min-height: 92px;
  margin: 5px 0 0;
  padding: 13px 28px 13px 17px;
  grid-column: 1 / -1;
  justify-self: end;
  gap: 4px;
  align-content: center;
  border: 3px solid var(--desk-ink);
  clip-path: polygon(0 0, 95% 0, 100% 8%, 95% 17%, 100% 27%, 95% 38%, 100% 49%, 95% 60%, 100% 71%, 95% 82%, 100% 92%, 95% 100%, 0 100%);
  color: var(--desk-ink);
  background: #ff5b91;
  box-shadow: 5px 6px 0 var(--desk-ink);
  font: inherit;
  text-align: left;
  transform: rotate(-1.3deg);
}
.reunion-travel-border-claim-tag::before {
  position: absolute;
  top: 11px;
  right: 20px;
  bottom: 11px;
  border-left: 2px dashed rgb(20 47 42 / 58%);
  content: "";
}
.reunion-travel-border-claim-tag b { font: 950 0.45rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.12em; }
.reunion-travel-border-claim-tag strong { font-size: 0.82rem; line-height: 1.15; }
.reunion-travel-border-claim-tag small { color: #492638; }
button.reunion-travel-border-claim-tag { cursor: pointer; }
button.reunion-travel-border-claim-tag:hover { color: var(--desk-ink); background: #ff82aa; }
.reunion-travel-border-claim-tag.is-sealed { background: #ffcf42; }

.reunion-travel-border-parcel[data-parcel-state="claim-sealed"] .reunion-travel-border-claim-tag,
.reunion-travel-border-parcel[data-parcel-state="claim-ready"] .reunion-travel-border-claim-tag {
  animation: reunion-travel-border-claim-arrives 480ms cubic-bezier(0.16, 0.88, 0.26, 1.12) both;
}

.reunion-travel-border-refused-route {
  position: relative;
  z-index: 1;
  display: grid;
  padding: clamp(16px, 3vw, 27px);
  grid-template-columns: auto minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  overflow: hidden;
  border: 3px solid var(--desk-ink);
  border-radius: 4px 28px 4px 28px;
  background:
    repeating-linear-gradient(135deg, rgb(255 91 145 / 17%) 0 12px, transparent 12px 24px),
    #fffdf7;
  box-shadow: 6px 7px 0 var(--desk-ink);
}
.reunion-travel-border-refused-arrow {
  display: grid;
  width: 72px;
  height: 72px;
  place-items: center;
  border: 4px double var(--desk-ink);
  border-radius: 50%;
  color: #fffdf7;
  background: #ff5b91;
  font: 950 2rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  transform: rotate(8deg);
}
.reunion-travel-border-refused-route > div { display: grid; min-width: 0; gap: 5px; }
.reunion-travel-border-refused-route small { font: 950 0.47rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.06em; }
.reunion-travel-border-refused-route h4,
.reunion-travel-border-refused-route p { margin: 0; }
.reunion-travel-border-refused-route h4 { font-size: clamp(1.25rem, 3vw, 2.15rem); letter-spacing: -0.045em; line-height: 1; }
.reunion-travel-border-refused-route p { max-width: 720px; color: #45635c; font: 700 0.7rem/1.45 Georgia, serif; }
.reunion-travel-border-refused-route .reunion-travel-border-refused-stamp {
  width: fit-content;
  margin-top: 4px;
  padding: 5px 8px;
  border: 2px solid var(--desk-red);
  color: var(--desk-red);
  background: #fff8e8;
  font: 950 0.45rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace;
  transform: rotate(-1deg);
}

.reunion-travel-border-appeal {
  position: relative;
  display: grid;
  min-width: 0;
  padding: clamp(14px, 2.5vw, 22px);
  grid-column: 1 / -1;
  gap: 14px;
  border: 3px solid var(--desk-ink);
  background:
    linear-gradient(90deg, transparent 0 31px, rgb(207 78 64 / 24%) 31px 33px, transparent 33px),
    repeating-linear-gradient(#fffdf7 0 27px, #c9ddd8 27px 28px);
  box-shadow: 5px 6px 0 var(--desk-ink);
}

.reunion-travel-border-appeal::after {
  position: absolute;
  right: 13px;
  bottom: 10px;
  width: 70px;
  height: 26px;
  border: 2px solid rgb(207 78 64 / 24%);
  content: "ONE VOICE";
  color: rgb(207 78 64 / 46%);
  font: 950 0.4rem/24px ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-5deg);
  pointer-events: none;
}

.reunion-travel-border-appeal > header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 11px;
  align-items: center;
}

.reunion-travel-border-appeal > header > span {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border: 3px double var(--desk-ink);
  border-radius: 50%;
  color: #fffdf7;
  background: #315f57;
  font: 950 0.4rem/1.1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-7deg);
}

.reunion-travel-border-appeal > header > div { display: grid; min-width: 0; gap: 3px; }
.reunion-travel-border-appeal h5,
.reunion-travel-border-appeal p { margin: 0; }
.reunion-travel-border-appeal h5 { font-size: clamp(1.05rem, 2.5vw, 1.65rem); letter-spacing: -0.035em; line-height: 1.05; }
.reunion-travel-border-appeal > header p { max-width: 700px; color: #45635c; font: 700 0.65rem/1.4 Georgia, serif; }

.reunion-travel-border-dockets {
  display: grid;
  min-width: 0;
  padding: 12px;
  gap: 11px;
  border: 3px double var(--desk-ink);
  background: #315f57;
  box-shadow: inset 0 0 0 3px rgb(255 253 247 / 16%);
}

.reunion-travel-border-dockets > header {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 0.75fr);
  gap: 12px;
  align-items: end;
  color: #fffdf7;
}

.reunion-travel-border-dockets > header > div { display: grid; min-width: 0; gap: 3px; }
.reunion-travel-border-dockets h6,
.reunion-travel-border-dockets p { margin: 0; }
.reunion-travel-border-dockets h6 { font-size: clamp(0.86rem, 2vw, 1.16rem); line-height: 1.05; }
.reunion-travel-border-dockets > header small { color: #ffcf42; font: 950 0.43rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.08em; }
.reunion-travel-border-dockets > header p { color: #d8e8e3; font: 700 0.58rem/1.35 Georgia, serif; }

.reunion-travel-border-docket-racks {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.reunion-travel-border-docket {
  display: grid;
  min-width: 0;
  padding: 9px;
  gap: 8px;
  border: 2px solid var(--desk-ink);
  background: #eaf1e8;
  box-shadow: 3px 3px 0 rgb(20 47 42 / 52%);
}

.reunion-travel-border-docket > header {
  display: flex;
  min-width: 0;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
  font: 950 0.46rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace;
  letter-spacing: 0.05em;
}

.reunion-travel-border-docket > header span { color: var(--desk-red); }
.reunion-travel-border-docket > header strong { text-align: right; }

.reunion-travel-border-docket ol {
  display: grid;
  min-width: 0;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 5px;
  list-style: none;
}

.reunion-travel-border-docket li {
  position: relative;
  display: grid;
  min-width: 0;
  height: 43px;
  place-items: center;
  overflow: hidden;
  border: 1px dashed var(--desk-ink);
  color: #45635c;
  background: #fff8e8;
  font: 950 0.43rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
}

.reunion-travel-border-docket li::after {
  position: absolute;
  right: 2px;
  bottom: 2px;
  content: "OPEN";
  color: #52736b;
  font-size: 0.28rem;
  letter-spacing: 0.04em;
}

.reunion-travel-border-docket li[data-slot-state="filed"] {
  border-style: solid;
  color: #fffdf7;
  background: var(--desk-red);
  box-shadow: inset 0 0 0 2px rgb(255 253 247 / 28%);
  transform: rotate(-1deg);
}

.reunion-travel-border-docket li[data-slot-state="filed"]::after { content: "FILED"; color: #fff0b5; }
.reunion-travel-border-docket li button {
  position: absolute;
  inset: 0;
  z-index: 1;
  min-width: 0;
  min-height: 0;
  padding: 0 0 9px;
  border: 0;
  color: inherit;
  background: transparent;
  box-shadow: none;
  font: inherit;
}
.reunion-travel-border-docket li button:hover { background: rgb(255 253 247 / 18%); }
.reunion-travel-border-docket li button:focus-visible { outline: 3px solid #175cff; outline-offset: -3px; }
.reunion-travel-border-docket li[data-case-kind="active"] { background: #ff7ca6; }
.reunion-travel-border-docket li[data-case-kind="closed"] { background: #315f57; }
.reunion-travel-border-docket p { color: #365b53; font: 800 0.5rem/1.3 system-ui, sans-serif; }
.reunion-travel-border-docket[data-docket-state="last"] { background: #fff0b5; }
.reunion-travel-border-docket[data-docket-state="last"] p { color: #8b3b31; }
.reunion-travel-border-docket[data-docket-state="full"] { background: #ffdce7; }
.reunion-travel-border-docket[data-docket-state="full"] p { color: #8b1f2b; }

.reunion-travel-border-docket-case {
  display: grid;
  min-width: 0;
  padding: 12px;
  gap: 11px;
  border: 3px solid #fffdf7;
  color: var(--desk-ink);
  background: #fff8e8;
  box-shadow: 4px 4px 0 rgb(20 47 42 / 55%);
}
.reunion-travel-border-docket-case > header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}
.reunion-travel-border-docket-case > header > span {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border: 3px double var(--desk-red);
  border-radius: 50%;
  color: var(--desk-red);
  background: #fffdf7;
  font: 950 0.38rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-7deg);
}
.reunion-travel-border-docket-case > header > div { display: grid; min-width: 0; gap: 3px; }
.reunion-travel-border-docket-case h6,
.reunion-travel-border-docket-case p { margin: 0; }
.reunion-travel-border-docket-case > header small { color: var(--desk-red); font: 950 0.43rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.05em; }
.reunion-travel-border-docket-case h6 { font-size: clamp(0.9rem, 2vw, 1.2rem); line-height: 1.05; }
.reunion-travel-border-docket-case p { color: #365b53; font: 750 0.58rem/1.4 system-ui, sans-serif; }
.reunion-travel-border-docket-case dl {
  display: grid;
  min-width: 0;
  margin: 0;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border: 2px solid var(--desk-ink);
  background: #fffdf7;
}
.reunion-travel-border-docket-case dl > div { display: grid; min-width: 0; padding: 8px; gap: 4px; border-right: 1px dashed rgb(20 47 42 / 38%); }
.reunion-travel-border-docket-case dl > div:last-child { border-right: 0; }
.reunion-travel-border-docket-case dt { color: var(--desk-red); font: 950 0.39rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.04em; }
.reunion-travel-border-docket-case dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: 0.55rem; font-weight: 820; line-height: 1.25; }
.reunion-travel-border-docket-case[data-case-state="active"] { background: #fff0b5; }
.reunion-travel-border-docket-case[data-case-state="active"] > header > span { background: #ffcf42; animation: reunion-travel-border-held-stamp 760ms steps(2, end) both; }
.reunion-travel-border-docket-case[data-case-state="closed"] { background: #d8e8e3; }

.reunion-travel-border-docket li[data-compass-state="folded"]::before {
  position: absolute;
  top: 2px;
  left: 3px;
  z-index: 2;
  content: "◆";
  color: #ffcf42;
  font-size: 0.46rem;
  pointer-events: none;
}

.reunion-travel-border-case-compass {
  --compass-choice: #f4c94e;
  --compass-needle-turn: 0deg;
  display: grid;
  min-width: 0;
  padding: clamp(12px, 2.2vw, 18px);
  gap: 12px;
  border: 3px solid var(--desk-ink);
  background:
    radial-gradient(circle at 32px 32px, rgb(207 78 64 / 13%) 0 2px, transparent 3px),
    repeating-linear-gradient(0deg, transparent 0 29px, rgb(20 47 42 / 8%) 30px 31px),
    #fff8e8;
  box-shadow: 4px 4px 0 rgb(20 47 42 / 38%);
}

.reunion-travel-border-case-compass[data-compass-choice="protect"] { --compass-choice: #69a99d; --compass-needle-turn: 48deg; }
.reunion-travel-border-case-compass[data-compass-choice="refuse"] { --compass-choice: #ff8eb1; --compass-needle-turn: -48deg; }
.reunion-travel-border-case-compass[data-compass-state="folded"] { border-style: dashed; background-color: #f1eadb; }
.reunion-travel-border-case-compass[data-compass-state="matched"] { box-shadow: 5px 5px 0 var(--desk-red); }
.reunion-travel-border-case-compass > header {
  display: grid;
  min-width: 0;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}
.reunion-travel-border-case-compass > header > div { display: grid; min-width: 0; gap: 4px; }
.reunion-travel-border-case-compass h6,
.reunion-travel-border-case-compass p { margin: 0; }
.reunion-travel-border-case-compass > header small { color: var(--desk-red); font: 950 0.43rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.06em; }
.reunion-travel-border-case-compass > header h6 { font-size: clamp(1rem, 2.4vw, 1.45rem); line-height: 1.05; }
.reunion-travel-border-case-compass > header p { max-width: 720px; color: #365b53; font: 730 0.62rem/1.4 Georgia, serif; }
.reunion-travel-border-case-compass > header code {
  min-width: 0;
  padding-top: 4px;
  overflow-wrap: anywhere;
  color: #45635c;
  font: 850 0.37rem/1.35 ui-monospace, "SFMono-Regular", Menlo, monospace;
}

.reunion-travel-border-case-compass-needle {
  position: relative;
  display: grid;
  width: 60px;
  height: 60px;
  place-items: center;
  border: 3px double var(--desk-red);
  border-radius: 50%;
  color: var(--desk-red);
  background: #fffdf7;
  transform: rotate(-8deg);
}
.reunion-travel-border-case-compass-needle b { position: absolute; font: 950 0.36rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.reunion-travel-border-case-compass-needle b:first-child { top: 4px; }
.reunion-travel-border-case-compass-needle b:last-child { bottom: 4px; }
.reunion-travel-border-case-compass-needle i { color: var(--desk-ink); font-size: 1.1rem; font-style: normal; transform: rotate(var(--compass-needle-turn)); }
.reunion-travel-border-case-compass[data-compass-state="matched"] .reunion-travel-border-case-compass-needle i { animation: reunion-travel-border-compass-insists 680ms steps(4, end) both; }

.reunion-travel-border-case-compass-choices {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.reunion-travel-border-case-compass-choices button {
  display: grid;
  min-width: 0;
  min-height: 86px;
  padding: 11px;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 3px 10px;
  align-content: center;
  border: 2px solid var(--desk-ink);
  background: #fffdf7;
  text-align: left;
}
.reunion-travel-border-case-compass-choices button > span { display: grid; width: 36px; height: 36px; grid-row: 1 / 3; place-items: center; border: 3px double currentColor; border-radius: 50%; font-size: 1rem; }
.reunion-travel-border-case-compass-choices button strong { font-size: 0.72rem; line-height: 1.15; }
.reunion-travel-border-case-compass-choices button small { color: #45635c; font: 700 0.54rem/1.3 Georgia, serif; letter-spacing: 0; }
.reunion-travel-border-case-compass-choices button[data-border-compass-choice="protect"] { box-shadow: inset 7px 0 0 #69a99d, 3px 3px 0 var(--desk-ink); }
.reunion-travel-border-case-compass-choices button[data-border-compass-choice="refuse"] { box-shadow: inset 7px 0 0 #ff8eb1, 3px 3px 0 var(--desk-ink); }
.reunion-travel-border-case-compass-choices button:hover { background: #fff0b5; }
.reunion-travel-border-case-compass-choices button:focus-visible,
.reunion-travel-border-case-compass-result button:focus-visible,
#reunion-travel-border-case-compass-open-action:focus-visible { outline: 4px solid #175cff; outline-offset: 3px; }

.reunion-travel-border-case-compass-result {
  display: grid;
  min-width: 0;
  padding: 11px;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  border: 2px solid var(--desk-ink);
  background: linear-gradient(100deg, var(--compass-choice) 0 18%, #fffdf7 18.2% 100%);
}
.reunion-travel-border-case-compass-result > span { display: grid; width: 50px; height: 50px; place-items: center; border: 3px double var(--desk-red); border-radius: 50%; color: var(--desk-red); background: #fffdf7; font: 950 0.35rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; transform: rotate(-7deg); }
.reunion-travel-border-case-compass-result > div { display: grid; min-width: 0; gap: 4px; }
.reunion-travel-border-case-compass-result strong { font-size: 0.78rem; }
.reunion-travel-border-case-compass-result p { color: #365b53; font: 760 0.58rem/1.35 system-ui, sans-serif; }
.reunion-travel-border-case-compass-result button { justify-self: start; margin-top: 4px; padding: 9px 11px; background: var(--compass-choice); }

.reunion-travel-border-case-compass-route {
  display: grid;
  min-width: 0;
  padding: clamp(12px, 2vw, 18px);
  gap: 11px;
  border: 4px double var(--desk-ink);
  background: #eaf1e8;
}
.reunion-travel-border-case-compass-route > header { display: grid; min-width: 0; gap: 4px; }
.reunion-travel-border-case-compass-route > header small { color: var(--desk-red); font: 950 0.42rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.06em; }
.reunion-travel-border-case-compass-route > header h6 { font-size: clamp(1.05rem, 2.5vw, 1.5rem); }
.reunion-travel-border-case-compass-route > header p { max-width: 760px; }
.reunion-travel-border-case-compass-route-line { display: grid; grid-template-columns: auto minmax(50px, 1fr) auto; gap: 8px; align-items: center; color: var(--desk-red); font: 950 0.42rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.reunion-travel-border-case-compass-route-line i { display: grid; height: 2px; place-items: center; border-top: 2px dashed var(--desk-red); font-size: 0.72rem; font-style: normal; }
.reunion-travel-border-case-compass-files { display: grid; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.reunion-travel-border-case-compass-files > article { display: grid; min-width: 0; padding: 10px; gap: 9px; border: 2px solid var(--desk-ink); background: #fffdf7; box-shadow: 3px 3px 0 rgb(20 47 42 / 30%); }
.reunion-travel-border-case-compass-files > article > header { display: grid; min-width: 0; gap: 4px; }
.reunion-travel-border-case-compass-files > article small { color: var(--desk-red); font: 950 0.4rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.reunion-travel-border-case-compass-files > article h6 { font-size: 0.86rem; }
.reunion-travel-border-case-compass-files > article code { min-width: 0; overflow-wrap: anywhere; font: 800 0.36rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.reunion-travel-border-case-compass-files dl { display: grid; min-width: 0; margin: 0; grid-template-columns: 1fr; border: 1px solid var(--desk-ink); }
.reunion-travel-border-case-compass-files dl > div { display: grid; min-width: 0; padding: 7px; gap: 3px; border-bottom: 1px dashed rgb(20 47 42 / 35%); }
.reunion-travel-border-case-compass-files dl > div:last-child { border-bottom: 0; }
.reunion-travel-border-case-compass-files dt { color: var(--desk-red); font: 950 0.38rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; }
.reunion-travel-border-case-compass-files dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: 0.54rem; font-weight: 780; line-height: 1.3; }
#reunion-travel-border-case-compass-open-action { justify-self: start; margin-top: 6px; padding: 9px 12px; background: #f4c94e; }

@keyframes reunion-travel-border-compass-insists {
  0% { transform: rotate(-36deg); }
  70% { transform: rotate(68deg); }
  100% { transform: rotate(var(--compass-needle-turn)); }
}

.reunion-travel-border-appeal-witnesses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.reunion-travel-border-appeal-witnesses button {
  display: grid;
  min-width: 0;
  min-height: 98px;
  padding: 11px;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 2px 10px;
  align-content: center;
  border: 2px solid var(--desk-ink);
  color: var(--desk-ink);
  background: #fff8e8;
  text-align: left;
}

.reunion-travel-border-appeal-witnesses button > span {
  display: grid;
  width: 40px;
  height: 40px;
  grid-row: 1 / 4;
  place-items: center;
  border: 3px double var(--desk-red);
  border-radius: 50%;
  color: var(--desk-red);
  font: 950 0.62rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
}

.reunion-travel-border-appeal-witnesses small { font: 950 0.43rem/1.2 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.06em; }
.reunion-travel-border-appeal-witnesses strong { min-width: 0; overflow-wrap: anywhere; font-size: 0.76rem; line-height: 1.15; }
.reunion-travel-border-appeal-witnesses em { color: #45635c; font: 700 0.56rem/1.2 Georgia, serif; }
.reunion-travel-border-appeal-witnesses button:hover { background: #fff0b5; }
.reunion-travel-border-appeal-witnesses button[aria-pressed="true"] { background: var(--desk-yellow); box-shadow: inset 0 0 0 3px #fffdf7, 3px 3px 0 var(--desk-ink); transform: translateY(-2px) rotate(-0.5deg); }
.reunion-travel-border-appeal-witnesses button:disabled { cursor: default; opacity: 1; }
.reunion-travel-border-appeal-witnesses button[data-ticket-state="reserved"] {
  background: repeating-linear-gradient(-45deg, #fff0b5 0 9px, #ffdce7 9px 18px);
  box-shadow: inset 0 0 0 4px #fffdf7;
}
.reunion-travel-border-appeal-witnesses button[aria-disabled="true"] { cursor: not-allowed; }
.reunion-travel-border-appeal-witnesses button[data-ticket-state="reserved"] em { color: #8b1f2b; }
.reunion-travel-border-appeal-witnesses button:focus-visible,
.reunion-travel-border-appeal-save button:focus-visible { outline: 4px solid #175cff; outline-offset: 3px; }

.reunion-travel-border-appeal-save {
  display: grid;
  padding: 11px;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 2px dashed var(--desk-ink);
  background: rgb(255 253 247 / 88%);
}

.reunion-travel-border-appeal-save p { min-height: 2.8em; color: #365b53; font: 800 0.62rem/1.4 system-ui, sans-serif; }
.reunion-travel-border-appeal-save button { padding: 10px 13px; color: #fffdf7; background: var(--desk-red); }
.reunion-travel-border-appeal-save button:disabled { color: #45635c; background: #d7d5c9; cursor: not-allowed; }
.reunion-travel-border-appeal[data-appeal-state="error"] .reunion-travel-border-appeal-save { border-color: var(--desk-red); background: #fff0e7; }

.reunion-travel-border-appeal-return {
  display: grid;
  padding: clamp(13px, 2vw, 19px);
  grid-template-columns: auto minmax(0, 1fr);
  gap: 13px;
  align-items: center;
  border: 3px solid var(--desk-ink);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 3% 100%, 0 91%, 3% 82%, 0 72%, 3% 61%, 0 50%, 3% 39%, 0 27%, 3% 16%, 0 7%);
  background: linear-gradient(105deg, #ffcf42 0 18%, #d8e8e3 18.2% 100%);
  box-shadow: 4px 5px 0 rgb(20 47 42 / 30%);
}

.reunion-travel-border-appeal-speaker {
  display: grid;
  width: 62px;
  height: 62px;
  place-items: center;
  border: 4px double var(--desk-red);
  border-radius: 50%;
  color: var(--desk-red);
  background: #fffdf7;
  font: 950 0.48rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-8deg);
}

.reunion-travel-border-appeal-return > div { display: grid; min-width: 0; gap: 4px; }
.reunion-travel-border-appeal-return small { font: 950 0.45rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.05em; }
.reunion-travel-border-appeal-return p { max-width: 740px; color: #365b53; font: 700 0.65rem/1.4 Georgia, serif; }
.reunion-travel-border-appeal-return .reunion-travel-border-appeal-ruling { width: fit-content; margin-top: 4px; padding: 4px 7px; border: 2px solid var(--desk-red); color: var(--desk-red); background: #fffdf7; font: 950 0.42rem/1.15 ui-monospace, "SFMono-Regular", Menlo, monospace; transform: rotate(0.7deg); }
.reunion-travel-border-appeal-return #reunion-travel-border-hearing-open-action { justify-self: start; margin-top: 6px; padding: 9px 12px; color: var(--desk-ink); background: #ff8eb1; }

.reunion-travel-border-appeal[data-appeal-state="saved"] .reunion-travel-border-appeal-return {
  animation: reunion-travel-border-appeal-redraw 520ms cubic-bezier(0.16, 0.88, 0.26, 1.12) both;
}

.reunion-travel-border-hearing {
  position: relative;
  display: grid;
  min-width: 0;
  padding: clamp(15px, 2.7vw, 24px);
  gap: 14px;
  overflow: hidden;
  border: 4px double var(--desk-ink);
  background:
    linear-gradient(90deg, transparent 0 44px, rgb(207 78 64 / 20%) 44px 46px, transparent 46px),
    repeating-linear-gradient(0deg, #f7f0dc 0 31px, #b9d4ce 31px 32px);
  box-shadow: 6px 7px 0 rgb(20 47 42 / 35%);
}

.reunion-travel-border-hearing::before {
  position: absolute;
  top: 12px;
  right: -23px;
  width: 116px;
  padding: 5px 22px;
  border-block: 2px solid var(--desk-red);
  content: "FINAL";
  color: var(--desk-red);
  background: #fffdf7;
  font: 950 0.45rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  letter-spacing: 0.12em;
  text-align: center;
  transform: rotate(35deg);
  pointer-events: none;
}

.reunion-travel-border-hearing > header {
  display: grid;
  padding-right: 42px;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.reunion-travel-border-hearing > header > span {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border: 4px double var(--desk-red);
  border-radius: 50%;
  color: var(--desk-red);
  background: #fffdf7;
  font: 950 0.42rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace;
  text-align: center;
  transform: rotate(-6deg);
}

.reunion-travel-border-hearing > header > div { display: grid; min-width: 0; gap: 3px; }
.reunion-travel-border-hearing small,
.reunion-travel-border-hearing dt { font: 950 0.44rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.06em; }
.reunion-travel-border-hearing h6 { margin: 0; font-size: clamp(1.12rem, 2.7vw, 1.8rem); letter-spacing: -0.04em; line-height: 1.02; }
.reunion-travel-border-hearing > header p { max-width: 680px; color: #45635c; font: 700 0.64rem/1.4 Georgia, serif; }

.reunion-travel-border-hearing-file {
  display: grid;
  margin: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 2px solid var(--desk-ink);
  background: #fffdf7;
}

.reunion-travel-border-hearing-file > div { display: grid; min-width: 0; padding: 10px; gap: 5px; align-content: start; border-right: 2px dashed rgb(20 47 42 / 35%); }
.reunion-travel-border-hearing-file > div:last-child { border-right: 0; }
.reunion-travel-border-hearing-file dt { color: var(--desk-red); }
.reunion-travel-border-hearing-file dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: 0.68rem; font-weight: 850; line-height: 1.25; }

.reunion-travel-border-hearing-verdicts {
  display: grid;
  min-width: 0;
  margin: 0;
  padding: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  border: 2px dashed var(--desk-ink);
  background: rgb(255 253 247 / 76%);
}

.reunion-travel-border-hearing-verdicts legend { padding: 0 7px; font: 950 0.5rem/1.3 ui-monospace, "SFMono-Regular", Menlo, monospace; letter-spacing: 0.04em; }
.reunion-travel-border-hearing-verdicts button {
  display: grid;
  min-width: 0;
  min-height: 92px;
  padding: 11px;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 3px 10px;
  align-content: center;
  border: 2px solid var(--desk-ink);
  color: var(--desk-ink);
  background: #fff8e8;
  text-align: left;
}
.reunion-travel-border-hearing-verdicts button > span { display: grid; width: 40px; height: 40px; grid-row: 1 / 3; place-items: center; border: 3px double var(--desk-red); border-radius: 50%; color: var(--desk-red); font-weight: 950; }
.reunion-travel-border-hearing-verdicts button strong { font-size: 0.74rem; line-height: 1.15; }
.reunion-travel-border-hearing-verdicts button small { color: #45635c; font: 700 0.55rem/1.3 Georgia, serif; letter-spacing: 0; }
.reunion-travel-border-hearing-verdicts button:hover { background: #ffdce7; }
.reunion-travel-border-hearing-verdicts button[aria-pressed="true"] { background: #ffb4cb; box-shadow: inset 0 0 0 3px #fffdf7, 3px 3px 0 var(--desk-ink); transform: translateY(-2px) rotate(-0.4deg); }
.reunion-travel-border-hearing-verdicts button:disabled { cursor: default; opacity: 1; }

.reunion-travel-border-hearing-save {
  display: grid;
  padding: 11px;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border: 2px solid var(--desk-ink);
  background: #d8e8e3;
}
.reunion-travel-border-hearing-save p { min-height: 2.8em; color: #365b53; font: 800 0.62rem/1.4 system-ui, sans-serif; }
.reunion-travel-border-hearing-save button { padding: 10px 13px; color: #fffdf7; background: var(--desk-red); }
.reunion-travel-border-hearing-save button:disabled { color: #45635c; background: #d7d5c9; cursor: not-allowed; }
.reunion-travel-border-hearing[data-hearing-state="error"] .reunion-travel-border-hearing-save { border-color: var(--desk-red); background: #fff0e7; }

.reunion-travel-border-hearing-result {
  display: grid;
  padding: clamp(13px, 2vw, 19px);
  grid-template-columns: auto minmax(0, 1fr);
  gap: 13px;
  align-items: center;
  border: 3px solid var(--desk-ink);
  background: linear-gradient(105deg, #ff8eb1 0 18%, #fffdf7 18.2% 100%);
  box-shadow: 4px 5px 0 var(--desk-ink);
}
.reunion-travel-border-hearing-seal { display: grid; width: 64px; height: 64px; place-items: center; border: 4px double var(--desk-red); border-radius: 50%; color: var(--desk-red); background: #fffdf7; font: 950 0.46rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; transform: rotate(-9deg); }
.reunion-travel-border-hearing-result > div { display: grid; min-width: 0; gap: 4px; }
.reunion-travel-border-hearing-result p { max-width: 740px; color: #365b53; font: 700 0.65rem/1.4 Georgia, serif; }
.reunion-travel-border-hearing[data-hearing-state="saved"] .reunion-travel-border-hearing-result { animation: reunion-travel-border-hearing-files 520ms cubic-bezier(0.16, 0.88, 0.26, 1.12) both; }
.reunion-travel-border-parcel[data-verdict-state="pink-escort-clearance"] .reunion-travel-border-rejected-item { border-style: solid; background: #ffdce7; box-shadow: inset 8px 0 0 #ff8eb1; }
.reunion-travel-border-parcel[data-verdict-state="witness-loop-return"] .reunion-travel-border-rejected-item { background: #e7ddf1; box-shadow: inset 8px 0 0 #8e68a0; }

@keyframes reunion-travel-border-parcel {
  from { opacity: 0; transform: translateX(-22px) rotate(-1deg); }
  68% { transform: translateX(4px) rotate(0.6deg); }
  to { opacity: 1; transform: translateX(0) rotate(0); }
}

@keyframes reunion-travel-border-claim-arrives {
  from { opacity: 0; transform: translateX(18px) rotate(5deg); }
  to { opacity: 1; transform: translateX(0) rotate(-1.3deg); }
}

@keyframes reunion-travel-border-appeal-redraw {
  from { opacity: 0; transform: scaleX(0.82) skewX(-5deg); transform-origin: left center; }
  70% { transform: scaleX(1.015) skewX(1deg); transform-origin: left center; }
  to { opacity: 1; transform: scaleX(1) skewX(0); transform-origin: left center; }
}

@keyframes reunion-travel-border-hearing-files {
  from { opacity: 0; transform: translateY(12px) rotate(0.6deg); }
  70% { transform: translateY(-2px) rotate(-0.2deg); }
  to { opacity: 1; transform: translateY(0) rotate(0); }
}

@keyframes reunion-travel-border-held-stamp {
  from { opacity: 0; transform: scale(1.35) rotate(-12deg); }
  to { opacity: 1; transform: scale(1) rotate(-7deg); }
}

@keyframes reunion-travel-paper-bridge-opens {
  from { opacity: 0; transform: perspective(380px) rotateY(74deg) rotate(-3deg); }
  to { opacity: 1; transform: perspective(380px) rotateY(0) rotate(-1deg); }
}

@keyframes reunion-travel-paper-bridge-ending {
  from { opacity: 0; transform: translateY(-10px) rotate(-0.7deg); }
  to { opacity: 1; transform: translateY(0) rotate(0); }
}

.reunion-travel-caravan-body {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(280px, 1.2fr) minmax(280px, 0.8fr);
  gap: clamp(18px, 4vw, 44px);
  align-items: end;
}

.reunion-travel-caravan-scene { position: relative; min-height: 255px; }
.reunion-travel-caravan-scene .is-caravan { position: absolute; right: 7%; bottom: 48px; left: 4%; height: 150px; border: 4px solid var(--caravan-ink); border-radius: 65px 16px 10px 10px; background: #e56e50; box-shadow: 9px 10px 0 rgb(23 57 52 / 24%); }
.reunion-travel-caravan-scene .is-caravan::before { position: absolute; inset: 18px auto auto 28px; width: 70px; height: 64px; border: 4px solid var(--caravan-ink); background: #fff8e8; content: ""; }
.reunion-travel-caravan-scene .is-caravan::after { position: absolute; right: -34px; bottom: -4px; width: 45px; height: 78px; border: 4px solid var(--caravan-ink); border-left: 0; background: #f4c94e; content: ""; }
.reunion-travel-caravan-scene .is-caravan i { position: absolute; top: -42px; right: 22%; width: 45%; height: 40px; border: 4px solid var(--caravan-ink); border-bottom: 0; border-radius: 80% 80% 0 0; background: repeating-linear-gradient(90deg, #fff8e8 0 28px, #cf4e40 28px 56px); }
.reunion-travel-caravan-scene .is-caravan b { position: absolute; right: 20px; bottom: 24px; padding: 7px; border: 2px solid var(--caravan-ink); color: var(--caravan-ink); background: #fff8e8; font: 950 0.52rem/1.05 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; transform: rotate(4deg); }
.reunion-travel-caravan-scene .is-wheel { position: absolute; bottom: 15px; width: 72px; height: 72px; border: 8px double var(--caravan-ink); border-radius: 50%; background: var(--desk-yellow); }
.reunion-travel-caravan-scene .is-wheel-one { left: 17%; }
.reunion-travel-caravan-scene .is-wheel-two { right: 17%; }
.reunion-travel-caravan-scene .is-sign { position: absolute; top: 0; right: 0; padding: 8px; border: 3px solid var(--caravan-ink); background: #fff8e8; font: 950 0.52rem/1.1 ui-monospace, "SFMono-Regular", Menlo, monospace; text-align: center; transform: rotate(8deg); }

.reunion-travel-caravan-destination[data-destination-state="open"] .is-caravan {
  animation: reunion-travel-caravan-arrives 560ms cubic-bezier(0.2, 0.78, 0.28, 1) both;
}

.reunion-travel-caravan-ledger { display: grid; padding: 17px; gap: 9px; border: 3px solid var(--caravan-ink); border-radius: 4px 24px 4px 4px; background: #fff8e8; box-shadow: 7px 8px 0 var(--caravan-ink); }
.reunion-travel-caravan-ledger h2,
.reunion-travel-caravan-ledger p { margin: 0; }
.reunion-travel-caravan-ledger h2 { font-size: 1.25rem; letter-spacing: -0.035em; }
.reunion-travel-caravan-ledger p { color: #45635c; font-size: 0.64rem; font-weight: 750; line-height: 1.4; }
.reunion-travel-caravan-stall-history { grid-template-columns: 1fr; }

@keyframes reunion-travel-key-assembles {
  from { opacity: 0; transform: translateY(15px) rotate(18deg) scale(0.7); }
  68% { transform: translateY(-3px) rotate(-9deg) scale(1.06); }
  to { opacity: 1; transform: rotate(-5deg) scale(1); }
}

@keyframes reunion-travel-caravan-arrives {
  from { opacity: 0; transform: translateX(-48px) rotate(-2deg); }
  to { opacity: 1; transform: translateX(0) rotate(0); }
}

@keyframes reunion-travel-postcard-stamp {
  from { opacity: 0; transform: scale(1.65) rotate(24deg); }
  to { opacity: 1; transform: scale(1) rotate(8deg); }
}

@keyframes reunion-travel-bridge-mark {
  from { opacity: 0; transform: scale(1.45) rotate(7deg); }
  70% { opacity: 1; transform: scale(0.96) rotate(-8deg); }
  to { opacity: 1; transform: scale(1) rotate(-6deg); }
}

@keyframes reunion-travel-postcard-unfold {
  from { opacity: 0; transform: translateY(-18px) scaleY(0.18) rotate(-2deg); transform-origin: 50% 0; }
  68% { transform: translateY(2px) scaleY(1.025) rotate(0.2deg); transform-origin: 50% 0; }
  to { opacity: 1; transform: translateY(0) scaleY(1) rotate(-0.45deg); transform-origin: 50% 0; }
}

@keyframes reunion-travel-postcard-fold {
  from { transform: scaleY(1.08) rotate(0.8deg); transform-origin: 50% 0; }
  55% { transform: scaleY(0.78) rotate(-1.1deg); transform-origin: 50% 0; }
  to { transform: scaleY(1) rotate(-0.45deg); transform-origin: 50% 0; }
}

.reunion-travel-ticket-tray > header {
  display: flex;
  gap: 16px;
  align-items: end;
  justify-content: space-between;
}

.reunion-travel-ticket-tray > header div { display: grid; gap: 2px; }
.reunion-travel-ticket-tray > header strong { font-size: 1rem; }
.reunion-travel-ticket-tray > header > span { font-size: 0.6rem; font-weight: 850; }

.reunion-travel-ticket-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.reunion-travel-ticket-card {
  display: grid;
  min-width: 0;
  min-height: 78px;
  padding: 10px;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 5px 9px;
  text-align: left;
}

.reunion-travel-ticket-card > span {
  display: grid;
  width: 28px;
  height: 28px;
  grid-row: 1 / 5;
  place-items: center;
  border: 2px solid var(--desk-ink);
  border-radius: 50%;
  background: var(--desk-blue);
}

.reunion-travel-ticket-card strong,
.reunion-travel-ticket-card code {
  min-width: 0;
  overflow-wrap: anywhere;
}

.reunion-travel-ticket-card code { font-size: 0.46rem; }
.reunion-travel-ticket-card small { color: #45635c; }
.reunion-travel-ticket-card em {
  color: #366158;
  font: 950 0.42rem/1.25 ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-style: normal;
  letter-spacing: 0.035em;
}
.reunion-travel-ticket-card[data-ticket-state="reserved"] {
  position: relative;
  background: repeating-linear-gradient(-45deg, #fff0b5 0 9px, #ffdce7 9px 18px);
}
.reunion-travel-ticket-card[data-ticket-state="reserved"]::after {
  position: absolute;
  top: 4px;
  right: 5px;
  padding: 2px 5px;
  border: 1px solid var(--desk-red);
  content: "HELD";
  color: var(--desk-red);
  background: #fffdf7;
  font: 950 0.34rem/1 ui-monospace, "SFMono-Regular", Menlo, monospace;
  transform: rotate(2deg);
}
.reunion-travel-ticket-card[aria-pressed="true"] { background: var(--desk-yellow); }
.reunion-travel-ticket-card[data-ticket-state="reserved"][aria-pressed="true"] { background: #ffdce7; }

#reunion-travel-ticket-detail {
  min-height: 1.4em;
  margin: 0;
  color: #365b53;
  font-size: 0.62rem;
  font-weight: 800;
}

@media (max-width: 900px) {
  .reunion-travel-desk { position: relative; top: auto; }
  .reunion-travel-desk-header { grid-template-columns: auto minmax(0, 1fr); }
  .reunion-travel-controls { grid-column: 1 / -1; grid-template-columns: 112px repeat(2, minmax(0, 1fr)); }
  .reunion-travel-findings { grid-template-columns: 1fr; }
  .reunion-travel-log { grid-template-columns: 1fr; }
  .reunion-travel-postcard { grid-template-columns: minmax(100px, 0.32fr) minmax(240px, 1fr); }
  .reunion-travel-postcard-choice,
  .reunion-travel-postcard-result { grid-column: 1 / -1; }
  .reunion-travel-postcard-actions { grid-column: 1 / -1; grid-template-columns: auto minmax(180px, 0.55fr) minmax(180px, 0.45fr); align-items: center; }
  .reunion-travel-paper-bridge-ending { grid-template-columns: auto minmax(0, 1fr); }
  .reunion-travel-paper-bridge-next { grid-column: 1 / -1; border-top: 2px dashed var(--desk-ink); border-left: 0; }
  .reunion-travel-border-form { grid-template-columns: 1fr; }
  .reunion-travel-border-save { grid-template-columns: minmax(0, 1fr) minmax(190px, 0.45fr); align-items: center; }
  .reunion-travel-border-save p { min-height: 0; }
  .reunion-travel-caravan-body { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .reunion-travel-desk { margin: 0 8px 14px; box-shadow: 4px 5px 0 rgb(20 47 42 / 28%); }
  .reunion-travel-desk-header { padding: 10px; gap: 10px; }
  .reunion-travel-desk-heading > span { display: none; }
  .reunion-travel-controls { grid-template-columns: 94px repeat(2, minmax(0, 1fr)); gap: 6px; }
  .reunion-travel-compass { width: 90px; height: 78px; }
  #reunion-travel-last-place-action { inset: 20px 21px 17px; }
  .reunion-travel-map-action,
  .reunion-travel-tray-toggle { padding: 7px; grid-template-columns: 1fr; place-items: center; text-align: center; }
  .reunion-travel-map-action > span:first-child,
  .reunion-travel-tray-toggle > span:first-child,
  .reunion-travel-tray-toggle > b { display: none; }
  .reunion-travel-ticket-list { grid-template-columns: 1fr; }
  .reunion-travel-ticket-tray { max-height: 52vh; padding: 12px 10px; }
  .reunion-travel-findings { padding: 9px 10px 11px; }
  .reunion-travel-log { padding: 10px; grid-template-columns: 1fr; }
  .reunion-travel-log-current { padding: 9px; }
  .reunion-travel-caravan-key { grid-template-columns: 58px minmax(0, 1fr); }
  .reunion-travel-caravan-key-shape { width: 56px; transform: scale(0.82) rotate(-5deg); transform-origin: left center; }
  .reunion-travel-caravan-key button { grid-column: 1 / -1; width: 100%; }
  .reunion-travel-market-return { padding: 13px 10px; }
  .reunion-travel-market-return-shelf { grid-template-columns: 1fr; }
  .reunion-travel-market-third-offer { grid-template-columns: auto minmax(0, 1fr); }
  .reunion-travel-market-third-offer button { grid-column: 1 / -1; width: 100%; }
  .reunion-travel-postcard { margin: 0 8px 12px; padding: 14px 12px; grid-template-columns: 1fr; gap: 13px; transform: none; }
  .reunion-travel-postcard-goods { max-width: 220px; }
  .reunion-travel-postcard-goods > span { min-height: 60px; }
  .reunion-travel-postcard-bridge-mark { min-height: 76px; }
  .reunion-travel-postcard-actions { grid-column: auto; grid-template-columns: auto 1fr; }
  .reunion-travel-postcard-choice,
  .reunion-travel-postcard-result { grid-column: auto; }
  .reunion-travel-postcard-actions button,
  .reunion-travel-postcard-actions p { grid-column: 1 / -1; }
  .reunion-travel-postcard-stamp { grid-column: 2; }
  .reunion-travel-paper-bridge { padding: 17px 11px 22px; }
  .reunion-travel-paper-bridge-heading { grid-template-columns: 48px minmax(0, 1fr); }
  .reunion-travel-paper-bridge-heading > span { width: 46px; height: 46px; }
  .reunion-travel-paper-bridge-parts { min-height: 96px; grid-template-columns: minmax(110px, 1.25fr) minmax(58px, 0.58fr) 72px; }
  .reunion-travel-paper-bridge-half { min-height: 70px; padding: 7px; }
  .reunion-travel-paper-bridge-half b { padding: 4px; font-size: 0.4rem; }
  .reunion-travel-paper-bridge-water { height: 58px; }
  .reunion-travel-paper-bridge-crossing { grid-template-columns: 1fr; }
  .reunion-travel-paper-bridge-crossing button { width: 100%; min-width: 0; }
  .reunion-travel-paper-bridge-ending { padding: 13px 10px; grid-template-columns: 52px minmax(0, 1fr); gap: 10px; box-shadow: 4px 5px 0 var(--desk-ink); }
  .reunion-travel-paper-bridge-stamp { width: 50px; height: 50px; font-size: 0.39rem; }
  .reunion-travel-paper-bridge-next button { width: 100%; }
  .reunion-travel-border-station { padding: 17px 10px 22px; border-radius: 14px 3px 14px 3px; box-shadow: 4px 5px 0 var(--desk-ink); }
  .reunion-travel-border-heading { grid-template-columns: 50px minmax(0, 1fr); gap: 10px; }
  .reunion-travel-border-heading > span { width: 48px; height: 48px; }
  .reunion-travel-border-ticket-stamps { grid-template-columns: 1fr; }
  .reunion-travel-border-ticket-stamps > span:nth-child(2) { transform: none; }
  .reunion-travel-border-form fieldset { grid-template-columns: 1fr; }
  .reunion-travel-border-form fieldset button { min-height: 78px; }
  .reunion-travel-border-save { grid-template-columns: 1fr; }
  .reunion-travel-border-save button { width: 100%; }
  .reunion-travel-border-parcel { padding: 13px 10px 18px; grid-template-columns: 1fr; gap: 10px; box-shadow: 4px 5px 0 var(--desk-ink); }
  .reunion-travel-border-parcel-theatre { min-height: 152px; }
  .reunion-travel-border-parcel-copy button { width: 100%; justify-self: stretch; }
  .reunion-travel-border-costs { grid-template-columns: 1fr; }
  .reunion-travel-border-protected-item,
  .reunion-travel-border-rejected-item { padding: 10px; gap: 8px; }
  .reunion-travel-border-item-mark { width: 39px; height: 39px; }
  .reunion-travel-border-claim-tag { width: 100%; min-height: 86px; }
  .reunion-travel-border-route { padding: 13px 10px; grid-template-columns: 54px minmax(0, 1fr); gap: 10px; box-shadow: 4px 5px 0 var(--desk-ink); }
  .reunion-travel-border-route-ribbon { width: 52px; height: 52px; font-size: 0.36rem; }
  .reunion-travel-border-refused-route { padding: 13px 10px; grid-template-columns: 54px minmax(0, 1fr); gap: 10px; box-shadow: 4px 5px 0 var(--desk-ink); }
  .reunion-travel-border-refused-arrow { width: 52px; height: 52px; font-size: 1.35rem; }
  .reunion-travel-border-appeal { padding: 13px 9px 17px; }
  .reunion-travel-border-appeal > header { grid-template-columns: 48px minmax(0, 1fr); }
  .reunion-travel-border-appeal > header > span { width: 46px; height: 46px; font-size: 0.34rem; }
  .reunion-travel-border-dockets > header,
  .reunion-travel-border-docket-racks { grid-template-columns: 1fr; }
  .reunion-travel-border-docket ol { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .reunion-travel-border-docket-case > header { grid-template-columns: 46px minmax(0, 1fr); }
  .reunion-travel-border-docket-case > header > span { width: 44px; height: 44px; font-size: 0.32rem; }
  .reunion-travel-border-docket-case dl { grid-template-columns: 1fr; }
  .reunion-travel-border-docket-case dl > div { border-right: 0; border-bottom: 1px dashed rgb(20 47 42 / 38%); }
  .reunion-travel-border-docket-case dl > div:last-child { border-bottom: 0; }
  .reunion-travel-border-case-compass { padding: 11px 9px 14px; }
  .reunion-travel-border-case-compass > header { grid-template-columns: 48px minmax(0, 1fr); gap: 9px; }
  .reunion-travel-border-case-compass-needle { width: 46px; height: 46px; }
  .reunion-travel-border-case-compass-choices,
  .reunion-travel-border-case-compass-files { grid-template-columns: 1fr; }
  .reunion-travel-border-case-compass-result { grid-template-columns: 46px minmax(0, 1fr); gap: 8px; }
  .reunion-travel-border-case-compass-result > span { width: 42px; height: 42px; font-size: 0.3rem; }
  .reunion-travel-border-case-compass-result button,
  #reunion-travel-border-case-compass-open-action { width: 100%; justify-self: stretch; }
  .reunion-travel-border-appeal-witnesses { grid-template-columns: 1fr; }
  .reunion-travel-border-appeal-witnesses button { min-height: 84px; }
  .reunion-travel-border-appeal-save { grid-template-columns: 1fr; }
  .reunion-travel-border-appeal-save button { width: 100%; }
  .reunion-travel-border-appeal-return { padding: 12px 10px 15px; grid-template-columns: 48px minmax(0, 1fr); gap: 9px; }
  .reunion-travel-border-appeal-speaker { width: 46px; height: 46px; font-size: 0.38rem; }
  .reunion-travel-border-appeal::after { display: none; }
  .reunion-travel-border-appeal-return #reunion-travel-border-hearing-open-action { width: 100%; justify-self: stretch; }
  .reunion-travel-border-hearing { padding: 13px 9px 17px; }
  .reunion-travel-border-hearing::before { display: none; }
  .reunion-travel-border-hearing > header { padding-right: 0; grid-template-columns: 48px minmax(0, 1fr); }
  .reunion-travel-border-hearing > header > span { width: 46px; height: 46px; font-size: 0.33rem; }
  .reunion-travel-border-hearing-file { grid-template-columns: 1fr; }
  .reunion-travel-border-hearing-file > div { border-right: 0; border-bottom: 2px dashed rgb(20 47 42 / 35%); }
  .reunion-travel-border-hearing-file > div:last-child { border-bottom: 0; }
  .reunion-travel-border-hearing-verdicts { grid-template-columns: 1fr; }
  .reunion-travel-border-hearing-verdicts button { min-height: 84px; }
  .reunion-travel-border-hearing-save { grid-template-columns: 1fr; }
  .reunion-travel-border-hearing-save button { width: 100%; }
  .reunion-travel-border-hearing-result { padding: 12px 10px 15px; grid-template-columns: 48px minmax(0, 1fr); gap: 9px; }
  .reunion-travel-border-hearing-seal { width: 46px; height: 46px; font-size: 0.34rem; }
  .reunion-travel-caravan-destination { min-height: 620px; padding: 30px 14px 45px; }
  .reunion-travel-caravan-destination h1 { font-size: clamp(2.25rem, 15vw, 4rem); }
  .reunion-travel-caravan-scene { min-height: 218px; }
  .reunion-travel-caravan-scene .is-caravan { right: 10%; height: 125px; }
  .reunion-travel-caravan-scene .is-wheel { width: 58px; height: 58px; }
}

@media (prefers-reduced-motion: reduce) {
  .reunion-travel-compass-face b { transition: none; }
  .reunion-travel-market-item,
  .reunion-travel-market-return > header > span,
  .reunion-travel-caravan-key-shape,
  .reunion-travel-caravan-key[data-key-state="earned"] .reunion-travel-caravan-key-shape,
  .reunion-travel-caravan-destination[data-destination-state="open"] .is-caravan,
  .reunion-travel-caravan-destination > header span,
  .reunion-travel-caravan-scene .is-sign,
  .reunion-travel-postcard,
  .reunion-travel-postcard::before,
  .reunion-travel-postcard::after,
  .reunion-travel-postcard-goods > span,
  .reunion-travel-postcard-bridge-mark,
  .reunion-travel-postcard-stamp,
  .reunion-travel-postcard-result,
  .reunion-travel-postcard-route-stamp { transform: none; }
  .reunion-travel-paper-bridge::before,
  .reunion-travel-paper-bridge-heading > span,
  .reunion-travel-paper-bridge-half,
  .reunion-travel-paper-bridge-half.is-folded,
  .reunion-travel-paper-bridge-half.is-folded::after,
  .reunion-travel-paper-bridge-stamp,
  .reunion-travel-border-station::before,
  .reunion-travel-border-heading > span,
  .reunion-travel-border-ticket-stamps > span,
  .reunion-travel-border-form fieldset button[aria-pressed="true"],
  .reunion-travel-border-parcel-box,
  .reunion-travel-border-parcel-stamp,
  .reunion-travel-border-parcel-flap,
  .reunion-travel-border-route-ribbon,
  .reunion-travel-border-item-mark,
  .reunion-travel-border-claim-tag,
  .reunion-travel-border-refused-arrow,
  .reunion-travel-border-refused-route .reunion-travel-border-refused-stamp,
  .reunion-travel-border-appeal::after,
  .reunion-travel-border-appeal > header > span,
  .reunion-travel-border-appeal-witnesses button[aria-pressed="true"],
  .reunion-travel-border-appeal-speaker,
  .reunion-travel-border-appeal-return .reunion-travel-border-appeal-ruling,
  .reunion-travel-border-hearing::before,
  .reunion-travel-border-docket li[data-slot-state="filed"],
  .reunion-travel-border-docket-case > header > span,
  .reunion-travel-border-case-compass-needle,
  .reunion-travel-border-case-compass-result > span,
  .reunion-travel-border-hearing > header > span,
  .reunion-travel-border-hearing-verdicts button[aria-pressed="true"],
  .reunion-travel-border-hearing-seal { transform: none; }
  .reunion-travel-border-case-compass[data-compass-state="matched"] .reunion-travel-border-case-compass-needle i { animation: none; }
  .reunion-travel-log-stamp { transform: none; }
  .reunion-travel-caravan-key[data-key-state="earned"] .reunion-travel-caravan-key-shape,
  .reunion-travel-caravan-destination[data-destination-state="open"] .is-caravan,
  .reunion-travel-postcard[data-choice-state="open"],
  .reunion-travel-postcard[data-choice-state="saved"],
  .reunion-travel-postcard[data-bridge-mark="route-2"] .reunion-travel-postcard-bridge-mark,
  .reunion-travel-postcard[data-copy-state="copied"] .reunion-travel-postcard-stamp { animation: none; }
  .reunion-travel-paper-bridge[data-bridge-state="open"] .is-crossing,
  .reunion-travel-paper-bridge[data-bridge-state="saved"] .reunion-travel-paper-bridge-ending,
  .reunion-travel-border-station[data-rule-state="saved"] .reunion-travel-border-parcel,
  .reunion-travel-border-parcel[data-parcel-state="claim-sealed"] .reunion-travel-border-claim-tag,
  .reunion-travel-border-parcel[data-parcel-state="claim-ready"] .reunion-travel-border-claim-tag,
  .reunion-travel-border-appeal[data-appeal-state="saved"] .reunion-travel-border-appeal-return,
  .reunion-travel-border-docket-case[data-case-state="active"] > header > span,
  .reunion-travel-border-hearing[data-hearing-state="saved"] .reunion-travel-border-hearing-result { animation: none; }
  .reunion-travel-log[data-log-state="ready"] .reunion-travel-log-stamp { animation: none; }
  .reunion-travel-desk button:hover,
  .reunion-travel-postcard-actions button:hover,
  .reunion-travel-tray-toggle[aria-expanded="true"] { transform: none; }
}
