/* Public introduction and the proposed member entry journey. */
[hidden], .app-header[hidden], .public-header[hidden], .app-footer[hidden] { display: none !important; }
.public-header { height: 94px; padding: 0 4.6%; display: flex; align-items: center; justify-content: space-between; gap: 30px; border-bottom: 1px solid #dedede; background: rgba(247,247,247,.97); position: sticky; top: 0; z-index: 20; backdrop-filter: blur(12px); }
.public-nav { display: flex; gap: 30px; margin-left: auto; margin-right: 35px; }
.public-nav button, .entry-login { font-size: 11px; }
.public-nav button:hover, .entry-login:hover { text-decoration: underline; text-underline-offset: 5px; }
.entry-header-actions { display: flex; gap: 25px; align-items: center; }
.entry-header-actions .button { min-height: 43px; padding: 11px 22px; }
.entry-header-actions svg { width: 14px; }
body[data-surface="public"] #screen { max-width: none; padding: 0; }
body[data-surface="public"] { padding-bottom: 0; }
.entry-width { max-width: 1400px; padding-left: 4.6%; padding-right: 4.6%; margin-left: auto; margin-right: auto; }
.landing-hero { text-align: center; padding-top: 68px; }
.landing-hero .eyebrow { margin-bottom: 21px; }
.landing-hero h1 { font-size: clamp(55px,6.4vw,86px); line-height: 1.08; letter-spacing: -3.3px; }
.landing-intro { max-width: 515px; margin: 24px auto 0; font-size: 12px; line-height: 1.95; }
.landing-hero-actions { display: flex; justify-content: center; align-items: center; gap: 30px; margin: 27px 0 42px; }
.landing-hero-actions .primary { padding: 13px 27px; }
.landing-hero-actions .text-link { font-size: 10px; }
.landing-cover { position: relative; height: 370px; border-radius: 7px; overflow: hidden; }
.landing-cover img { height: 100%; object-position: center; }
.cover-label { position: absolute; left: 23px; top: 23px; background: #fff; border-radius: 999px; padding: 10px 17px; font-size: 9px; }
.cover-caption { position: absolute; right: 24px; bottom: 24px; background: #fff; border-radius: 999px; padding: 10px 17px; font-size: 9px; }
.landing-world { padding-top: 77px; padding-bottom: 77px; scroll-margin-top: 125px; }
.landing-section-heading { display: flex; gap: 40px; align-items: end; justify-content: space-between; margin-bottom: 27px; }
.landing-section-heading .eyebrow { margin-bottom: 12px; }
.landing-section-heading h2 { font-size: 36px; line-height: 1.2; }
.landing-section-heading>p { max-width: 340px; font-size: 10px; line-height: 1.9; padding-bottom: 3px; }
.landing-cities { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 23px; }
.landing-city { min-width: 0; text-align: left; padding: 0; }
.landing-city-image { height: 285px; border-radius: 6px; overflow: hidden; position: relative; }
.landing-city-image>img { height: 100%; transition: transform .35s ease; }
.landing-city:nth-child(2) img { object-position: 19% center; }
.landing-city:nth-child(4) img { object-position: 68% center; }
.landing-city-image>span { position: absolute; right: 13px; bottom: 13px; display: grid; place-items: center; width: 33px; height: 33px; border-radius: 50%; background: #fff; }
.landing-city:hover img { transform: scale(1.035); }
.landing-city h3 { font-family: var(--serif); font-size: 25px; margin: 14px 0 6px; }
.landing-city p { font-size: 9px; line-height: 1.8; }
.landing-map-section { background: #efefed; padding: 65px 0; }
.landing-map-layout { display: grid; grid-template-columns: 1.15fr 1fr; gap: 65px; align-items: center; }
.landing-map-preview { position: relative; height: 370px; overflow: hidden; border: 1px solid #dddeda; border-radius: 8px; background: #f0f1ef; }
.landing-map-preview>svg { height: 100%; width: 100%; }
.landing-map-label, .landing-map-credit { position: absolute; left: 20px; font-size: 9px; }
.landing-map-label { top: 20px; background: #fff; border-radius: 999px; padding: 9px 14px; }
.landing-map-credit { bottom: 16px; color: #70746c; font-size: 7px; }
.landing-map-dot { position: absolute; background: #1a1a1a; color: white; display: inline-flex; align-items: center; gap: 5px; padding: 7px 12px; border-radius: 999px; font-size: 8px; box-shadow: 0 3px 9px #0002; transform: translate(-50%,-50%); }
.landing-map-dot:hover { background: #444; }
.map-paris { left: 51%; top: 23%; }
.map-accra { left: 49%; top: 41%; }
.map-tokyo { left: 83%; top: 32%; }
.landing-map-copy h2, .landing-editorial-copy h2 { font-size: 43px; line-height: 1.2; margin: 13px 0 18px; }
.landing-map-copy>p:not(.eyebrow), .landing-editorial-copy>p:not(.eyebrow) { max-width: 380px; font-size: 11px; line-height: 1.95; }
.landing-category-links { display: flex; flex-wrap: wrap; gap: 7px; margin: 22px 0 26px; max-width: 415px; }
.landing-category-links button { border: 1px solid #d3d3ce; border-radius: 999px; padding: 7px 12px; font-size: 8px; background: #f7f7f7; }
.landing-category-links button:hover { border-color: #777; }
.landing-how { padding-top: 79px; padding-bottom: 78px; scroll-margin-top: 125px; }
.landing-centered-heading { text-align: center; }
.landing-centered-heading h2 { font-size: 39px; line-height: 1.3; margin-top: 13px; }
.landing-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 45px; margin-top: 45px; }
.landing-steps article { border-top: 1px solid #d8d8d8; padding-top: 23px; }
.step-number { color: #8c8c86; font-size: 9px; letter-spacing: 1px; }
.landing-steps h3 { font-family: var(--serif); font-size: 27px; line-height: 1.3; margin: 16px 0 12px; }
.landing-steps p { font-size: 11px; line-height: 1.9; max-width: 305px; }
.landing-editorial { display: grid; grid-template-columns: 1.15fr 1fr; gap: 65px; align-items: center; }
.landing-editorial-image { height: 390px; position: relative; border-radius: 7px; overflow: hidden; }
.landing-editorial-image img { height: 100%; object-position: 45% center; }
.landing-editorial-image>span { position: absolute; bottom: 22px; left: 22px; background: #fff; border-radius: 999px; padding: 9px 15px; font-size: 8px; }
.landing-editorial-copy>p+p { margin-top: 13px; }
.landing-editorial-copy .text-link { margin-top: 24px; font-size: 11px; }
.landing-final { padding-top: 95px; padding-bottom: 85px; text-align: center; }
.landing-final h2 { font-size: 55px; line-height: 1.16; letter-spacing: -1.7px; margin: 20px 0 28px; }
.landing-final .button { padding: 13px 26px; }
.landing-final>p:last-child { margin-top: 15px; font-size: 9px; }
.landing-footer { border-top: 1px solid #ddd; padding-top: 28px; padding-bottom: 24px; display: grid; grid-template-columns: auto 1fr auto; gap: 18px 30px; align-items: center; }
.landing-footer .wordmark { font-size: 31px; }
.landing-footer p { font-size: 9px; }
.landing-footer>div { display: flex; gap: 24px; font-size: 9px; }
.landing-footer button { padding: 0; }
.landing-footer small { grid-column: 1/-1; font-size: 8px; color: #777; }
.member-exit { margin-left: 14px; font-size: 8px; color: #777; padding: 10px 0; }
.member-exit:hover { color: #111; text-decoration: underline; }

/* Join and sign in remain explicitly labelled preview flows. */
.entry-auth { display: grid; grid-template-columns: 1.12fr 1fr; gap: 80px; padding-top: 60px; padding-bottom: 80px; align-items: center; min-height: calc(100vh - 94px); }
.entry-auth-image { position: relative; height: 585px; overflow: hidden; border-radius: 8px; }
.entry-auth-image>img { height: 100%; object-position: 24% center; }
.entry-auth-image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 30%,rgba(0,0,0,.68)); }
.entry-auth-image>div { position: absolute; z-index: 1; left: 35px; right: 25px; bottom: 38px; color: white; }
.entry-auth-image .eyebrow { color: #f0eeeb; font-size: 8px; }
.entry-auth-image h2 { font-size: 41px; margin: 16px 0; line-height: 1.16; }
.entry-auth-image p:last-child { color: #eee; font-size: 10px; }
.entry-auth-content { max-width: 400px; width: 100%; }
.entry-back { font-size: 9px; margin-bottom: 46px; }
.entry-back svg { transform: rotate(180deg); }
.entry-auth-content h1 { font-size: 41px; letter-spacing: -1.2px; margin: 15px 0 19px; line-height: 1.23; }
.entry-auth-intro { font-size: 11px; line-height: 1.9; }
.entry-form { margin-top: 28px; display: grid; gap: 21px; }
.entry-form label { display: flex; flex-direction: column; gap: 9px; font-size: 10px; }
.entry-form input:not([type="checkbox"]), .entry-form select { width: 100%; height: 46px; padding: 12px 15px; background: #fff; color: #222; border: 1px solid #dcdcdc; border-radius: 6px; font-size: 11px; }
.entry-form .primary { width: 100%; min-height: 45px; }
.signup-preview-note { background: #edeeea; border-radius: 6px; padding: 12px 14px; font-size: 9px; line-height: 1.8; color: #64675f; }
.signup-preview-note span { display: block; color: #35382f; font-size: 8px; text-transform: uppercase; letter-spacing: .8px; margin-bottom: 3px; }
.entry-switch { font-size: 10px; text-align: center; margin-top: 22px; }
.entry-switch a { color: #222; text-decoration: underline; text-underline-offset: 3px; margin-left: 4px; }
.entry-member-benefits { display: flex; flex-wrap: wrap; justify-content: center; gap: 17px; border-top: 1px solid #ddd; margin-top: 30px; padding-top: 23px; font-size: 8px; color: #646464; }
.entry-member-benefits span { display: inline-flex; align-items: center; gap: 5px; }
.entry-welcome { max-width: 810px; padding-top: 50px; padding-bottom: 70px; text-align: center; min-height: calc(100vh - 94px); }
.welcome-step { display: flex; gap: 25px; justify-content: center; font-size: 8px; color: #909090; padding-bottom: 34px; }
.welcome-step span.active { color: #222; }
.entry-welcome h1 { font-size: 43px; margin: 13px 0 20px; }
.entry-welcome>p:not(.eyebrow) { font-size: 11px; line-height: 1.9; max-width: 400px; margin-left: auto; margin-right: auto; }
.welcome-form { gap: 28px; }
.welcome-form fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.welcome-form legend { padding: 0; margin-bottom: 17px; width: 100%; font-size: 11px; text-align: center; }
.welcome-interests { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.welcome-interest { position: relative; }
.welcome-interest>input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.welcome-interest>span { background: #fff; min-height: 60px; border: 1px solid #ddd; border-radius: 8px; padding: 13px 8px; display: flex; align-items: center; justify-content: center; gap: 9px; cursor: pointer; font-size: 9px; }
.welcome-interest input:checked+span { border-color: #222; background: #eeefeb; }
.welcome-interest input:focus-visible+span { outline: 2px solid #222; outline-offset: 3px; }
.welcome-city-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; text-align: left; }
.welcome-form>.button { max-width: 280px; justify-self: center; }
.welcome-skip { justify-self: center; font-size: 9px; margin-top: -9px; }
.entry-welcome .welcome-preview { margin-top: 26px; font-size: 8px; color: #777; }

@media (max-width:1000px) {
  .public-nav { margin-right: 10px; gap: 18px; }
  .landing-map-layout, .landing-editorial { gap: 35px; }
  .landing-city-image { height: 230px; }
  .landing-cover { height: 320px; }
  .entry-auth { gap: 40px; }
  .entry-auth-image { height: 550px; }
  .entry-auth-image h2 { font-size: 33px; }
}
@media (max-width:680px) {
  .public-header { height: 76px; gap: 12px; }
  .public-header .wordmark { font-size: 33px; }
  .public-nav { display: none; }
  .entry-header-actions { gap: 15px; }
  .entry-header-actions .button { font-size: 9px; padding: 9px 14px; min-height: 37px; }
  .entry-header-actions svg { display: none; }
  .entry-login { font-size: 9px; }
  .landing-hero { padding-top: 44px; }
  .landing-hero .eyebrow { font-size: 8px; margin-bottom: 19px; }
  .landing-hero h1 { font-size: 52px; line-height: 1.13; letter-spacing: -2.2px; }
  .landing-intro { font-size: 10px; max-width: 310px; margin-top: 19px; }
  .landing-hero-actions { gap: 22px; margin: 24px 0 30px; }
  .landing-hero-actions .button { font-size: 10px; padding: 11px 23px; }
  .landing-hero-actions .text-link { font-size: 9px; }
  .landing-cover { height: 280px; }
  .landing-cover img { object-position: 28% center; }
  .cover-label { left: 12px; top: 12px; padding: 8px 12px; font-size: 8px; }
  .cover-caption { display: none; }
  .landing-world { padding-top: 43px; padding-bottom: 44px; scroll-margin-top: 95px; }
  .landing-section-heading { display: block; margin-bottom: 22px; }
  .landing-section-heading h2 { font-size: 29px; max-width: 300px; }
  .landing-section-heading>p { margin-top: 13px; max-width: 310px; font-size: 10px; }
  .landing-cities { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 23px 13px; }
  .landing-city-image { height: 210px; }
  .landing-city h3 { font-size: 22px; margin: 12px 0 5px; }
  .landing-city p { font-size: 8px; }
  .landing-city-image>span { width: 27px; height: 27px; right: 10px; bottom: 10px; }
  .landing-city-image svg { width: 14px; }
  .landing-map-section { padding: 33px 0; }
  .landing-map-layout { grid-template-columns: 1fr; gap: 27px; }
  .landing-map-preview { height: 240px; }
  .landing-map-label { top: 13px; left: 13px; font-size: 8px; }
  .landing-map-dot { font-size: 7px; padding: 6px 9px; }
  .landing-map-credit { bottom: 12px; left: 13px; }
  .landing-map-copy h2, .landing-editorial-copy h2 { font-size: 35px; margin: 12px 0 15px; }
  .landing-map-copy>p:not(.eyebrow), .landing-editorial-copy>p:not(.eyebrow) { font-size: 10px; }
  .landing-category-links { margin: 19px 0 23px; gap: 6px; }
  .landing-how { padding-top: 45px; padding-bottom: 45px; scroll-margin-top: 95px; }
  .landing-centered-heading h2 { font-size: 29px; margin-top: 12px; }
  .landing-steps { grid-template-columns: 1fr; gap: 24px; margin-top: 27px; }
  .landing-steps article { padding-top: 19px; }
  .landing-steps h3 { font-size: 24px; margin: 12px 0 9px; }
  .landing-steps p { font-size: 10px; max-width: none; }
  .landing-editorial { grid-template-columns: 1fr; gap: 26px; }
  .landing-editorial-image { height: 280px; }
  .landing-editorial-image>span { font-size: 7px; bottom: 14px; left: 13px; }
  .landing-editorial-copy .text-link { font-size: 10px; margin-top: 20px; }
  .landing-final { padding-top: 57px; padding-bottom: 48px; }
  .landing-final h2 { font-size: 39px; margin: 16px 0 23px; }
  .landing-footer { grid-template-columns: auto 1fr; gap: 20px; padding-top: 22px; }
  .landing-footer>div { grid-column: 1/-1; gap: 23px; }
  .member-exit { margin-left: 12px; font-size: 7px; }
  .entry-auth { display: block; padding-top: 30px; padding-bottom: 44px; min-height: calc(100vh - 76px); }
  .entry-auth-image { display: none; }
  .entry-auth-content { max-width: 420px; margin: auto; }
  .entry-back { margin-bottom: 32px; }
  .entry-auth-content h1 { font-size: 36px; }
  .entry-auth-intro { font-size: 10px; }
  .entry-form { margin-top: 25px; }
  .entry-member-benefits { font-size: 7px; gap: 14px; }
  .entry-welcome { padding-top: 32px; padding-bottom: 45px; min-height: calc(100vh - 76px); }
  .welcome-step { gap: 19px; padding-bottom: 30px; font-size: 7px; }
  .entry-welcome h1 { font-size: 35px; }
  .entry-welcome>p:not(.eyebrow) { font-size: 10px; }
  .welcome-interests { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .welcome-interest>span { min-height: 54px; font-size: 8px; }
  .welcome-city-fields { grid-template-columns: 1fr; gap: 20px; }
  body[data-surface="public"] .toast { bottom: 24px; }
}

.entry-auth-media-loading{display:block;width:100%;height:100%;background:#e7e7e1}
/* Route focus stays available to screen readers without a full-page browser ring. */
#screen:focus{outline:none}
.destination-field{display:grid;gap:9px;min-width:0}.destination-field-label{font-size:10px}
.destination-picker{min-width:0;position:relative;font-size:11px}
.destination-picker summary{min-height:46px;padding:12px 15px;border:1px solid #dcdcdc;border-radius:6px;background:#fff;color:#222;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}
.destination-picker summary::-webkit-details-marker{display:none}.destination-picker summary svg{transform:rotate(90deg);flex:none}.destination-picker[open] summary svg{transform:rotate(-90deg)}
.destination-picker summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.destination-picker summary:focus-visible,.destination-picker input:focus-visible{outline:2px solid #76220b;outline-offset:3px}
.destination-options{margin-top:8px;border:1px solid #dedfd7;border-radius:7px;padding:12px;background:#fff}
.destination-city-list{max-height:220px;overflow:auto;overscroll-behavior:contain;margin-top:10px}
.entry-form .destination-city{display:flex;flex-direction:row;align-items:center;gap:10px;padding:10px 4px;min-height:40px;color:#222;cursor:pointer}
.entry-form .destination-city[hidden]{display:none}.destination-city input[type="checkbox"]{width:17px;height:17px;min-height:17px;margin:0;flex:0 0 17px;accent-color:#76220b}
.destination-options>.form-help{font-size:10px;margin-top:12px;line-height:1.7}
@media(max-width:680px){.destination-picker summary,.entry-form .destination-search{font-size:16px}.destination-city-list{max-height:235px}}
