.harbor-reveal .ceremony-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.revealing-harbor .game-hud, .revealing-harbor .island-weather { opacity: 0; pointer-events: none; }
.travel-dialog { width: min(830px, calc(100% - 32px)); padding: 0; max-height: 88dvh; background: #fff8e9; }
.travel-dialog[open] { display: flex; flex-direction: column; }
.travel-dialog .journal-header { flex: 0 0 auto; }
.travel-dialog .journal-header h2 { font-size: clamp(25px, 4vw, 37px); }
.travel-body { overflow: auto; min-height: 0; padding: 22px 28px 26px; overscroll-behavior: contain; }
.travel-greeting { margin: 0 0 18px; line-height: 1.6; font-size: 14px; }
.travel-greeting strong { color: #645aa5; }
.travel-routes { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.travel-ticket { display: grid; grid-template-columns: 43px 1fr; gap: 13px; border: 1px solid #d9dac9; border-radius: 16px; padding: 17px; background: #fffef6; }
.travel-ticket:last-child { grid-column: 1 / -1; }
.travel-symbol { display: grid; place-items: center; border-radius: 50%; height: 43px; color: #fffef6; background: var(--route-color); font-size: 25px; }
.travel-ticket h3 { margin: 0; font: 600 22px/1.1 Fredoka, sans-serif; color: var(--route-color); }
.travel-ticket small { display: block; font-size: 11px; margin-top: 6px; font-weight: 800; }
.travel-ticket p { font-size: 12px; line-height: 1.6; margin: 9px 0 12px; }
.travel-ticket a { display: inline-flex; align-items: center; min-height: 42px; font-size: 12px; font-weight: 800; color: var(--route-color); text-underline-offset: 4px; }
.travel-ticket a:focus-visible { outline: 3px solid #5c5cde; outline-offset: 4px; border-radius: 4px; }
.travel-foot { border-top: 1px dashed #cfcab6; padding-top: 16px; margin: 18px 0 0; font-size: 12px; line-height: 1.6; }
.travel-foot small { display: block; color: #687564; margin-top: 6px; }
@media (max-width: 699px) {
  .revealing-harbor #world { top: 72px; height: 53dvh; bottom: auto; }
  .harbor-reveal { max-height: 39dvh; overflow-y: auto; }
  .travel-dialog { width: calc(100% - 20px); max-height: 90dvh; }
  .travel-dialog .journal-header { padding: 18px; }
  .travel-body { padding: 18px; }
  .travel-routes { grid-template-columns: 1fr; }
  .travel-ticket { padding: 15px; }
  .travel-ticket:last-child { grid-column: auto; }
}
