#travel-fairy{position:fixed;left:0;top:0;width:52px;height:52px;z-index:80;padding:0;border:0;background:none;border-radius:50%;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 0 7px #b9caff55)}
#travel-fairy svg{display:block;width:100%;height:100%;pointer-events:none}#travel-fairy:focus-visible{outline:2px solid #e6ebff;outline-offset:3px}#travel-fairy:hover{filter:drop-shadow(0 0 10px #d5e2ff99)}
#travel-dialog{width:min(700px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:0;border:1px solid #c8b885aa;border-radius:16px;background:linear-gradient(145deg,#0d2338f5,#081522fa);color:#e7e5d3;box-shadow:0 18px 80px #000c,0 0 0 4px #0a1728,0 0 0 5px #66809055;font:16px/1.5 Georgia,serif;overflow:auto;overscroll-behavior:contain}
#travel-dialog::backdrop{background:#030b18aa;backdrop-filter:blur(3px)}
.travel-conversation{position:relative;display:grid;grid-template-columns:160px 1fr;gap:16px;padding:24px 26px 18px;border-bottom:1px solid #b9ad7c33;background:radial-gradient(ellipse at 16% 52%,#4b608944,transparent 45%)}
.travel-portrait{width:160px;height:160px;align-self:center}.travel-portrait svg{width:100%;height:100%}.travel-name{margin:0 0 4px;font:12px system-ui;letter-spacing:.12em;text-transform:uppercase;color:#b5c7e5}.travel-conversation h2{margin:0 0 9px;font-size:25px;font-weight:400;color:#f2e6bc}.travel-conversation p{margin:0;color:#c6d2df;font-size:16px}.travel-close{position:absolute;right:10px;top:8px;width:44px;height:44px;border:0;background:none;color:#dce1de;font:24px system-ui;cursor:pointer}
.travel-places{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:18px 24px 24px}.travel-place{display:flex;gap:12px;align-items:center;min-height:62px;padding:9px;border:1px solid #a7b9b544;border-radius:8px;color:#e3e7dc;background:#18304455;text-decoration:none;font:14px/1.3 system-ui}.travel-place img{width:65px;height:44px;object-fit:cover;border:1px solid #ae9d6b77;border-radius:3px}.travel-place:hover,.travel-place:focus-visible{background:#28506a88;border-color:#dfd4a5;outline:1px solid #dfd4a5;outline-offset:2px}.travel-place small{display:block;color:#aebdcd;font-size:11px;margin-top:4px}.travel-close:focus-visible{outline:2px solid #eadbaa;border-radius:50%}
html[data-travel-fairy=ready] .return-selector,html[data-travel-fairy=ready] #wake{display:none!important}
@media(max-width:520px){.travel-conversation{grid-template-columns:90px 1fr;padding:28px 16px 15px;gap:8px}.travel-portrait{width:90px;height:120px}.travel-conversation h2{font-size:21px}.travel-conversation p{font-size:14px}.travel-places{padding:12px 14px 18px;gap:8px}.travel-place{display:block;text-align:center;font-size:12px;padding:9px 5px;min-height:90px}.travel-place img{width:64px;height:42px;display:block;margin:0 auto 7px}}
@media(max-height:480px){.travel-conversation{grid-template-columns:70px 1fr;padding:14px 22px;gap:12px}.travel-portrait{width:70px;height:70px}.travel-conversation h2{font-size:21px}.travel-places{grid-template-columns:repeat(3,1fr);padding:10px 18px;gap:8px}.travel-place{min-height:52px;font-size:12px;padding:6px}.travel-place img{width:44px;height:32px}}
/* The new guide has a real silhouette; its feet are the flight/landing anchor. */
#travel-fairy{width:64px;height:75px;filter:drop-shadow(0 0 4px #d5ecb644)}
#travel-fairy[hidden]{display:none!important}
.travel-call{position:fixed;left:16px;bottom:16px;z-index:100;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);border:0}
.travel-call:focus-visible{width:auto;height:auto;min-height:44px;padding:10px 16px;clip-path:none;border:1px solid #dfd4a5;border-radius:8px;background:#0d2338;color:#f3e7be;font:14px system-ui}
#travel-dialog .travel-places{position:static;left:auto;bottom:auto;z-index:auto}
#travel-fairy,#travel-dialog .travel-close{opacity:1}


/* Artwork-scaled visible sprite; independent 44px touch target with feet at its base. */
#travel-fairy{width:44px;height:44px}
/* Pointer taps keep focus for access without leaving a ring around the fairy. */
#travel-fairy[data-pointer-focus]:focus{outline:none}
