:root { color-scheme: light; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang HK", "Microsoft YaHei", sans-serif; color: #142b43; background: #f7f9fc; font-synthesis: none; }
* { box-sizing: border-box; }
body { margin: 0; background: radial-gradient(ellipse at 85% 0, #e9f0fc 0, transparent 47%); }
a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 3px solid #175cd3; outline-offset: 6px; }
.page { max-width: 1192px; padding: 0 48px; margin: auto; }
.masthead { min-height: 104px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid #dfe6ee; }
.brand { display: inline-flex; align-items: center; gap: 12px; font-size: 23px; font-weight: 750; letter-spacing: -.8px; }
.brand-icon { width: 40px; height: 40px; color: #175cd3; }
.brand-light { font-weight: 450; }
.masthead-caption { font-size: 13px; color: #687b90; letter-spacing: 2px; }
.intro { padding: 38px 0 28px; }
.eyebrow { display: flex; align-items: center; gap: 9px; margin: 0 0 24px; color: #57708b; font-size: 11px; font-weight: 650; letter-spacing: 2px; }
.eyebrow > span { width: 7px; height: 7px; border-radius: 50%; background: #2ba986; box-shadow: 0 0 0 4px #e0f3ec; }
h1 { margin: 0; font-size: clamp(42px, 5.2vw, 66px); line-height: 1.08; letter-spacing: -2.8px; font-weight: 650; }
.blue { color: #175cd3; }
.intro-copy { margin: 22px 0 0; color: #62758b; font-size: 16px; line-height: 1.7; }
.intro-chinese { margin: 10px 0 0; font-size: 13px; color: #6a7d91; letter-spacing: .5px; }
.destinations { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 28px; }
.android-download{display:flex;align-items:center;gap:18px;border:1px solid #d8e3f5;border-radius:20px;padding:24px;background:#fff;margin:0 0 28px;scroll-margin-top:20px}
.android-download-icon{display:grid;place-items:center;background:#edf3ff;color:#175cd3;width:52px;height:64px;border-radius:16px;flex-shrink:0}.android-download-icon svg{width:28px;height:32px}
.android-download-copy{flex:1;min-width:0}.android-download-copy p{font-size:9px;letter-spacing:1.6px;color:#627a96;margin:0 0 7px}.android-download-copy h2{font-size:20px;letter-spacing:-.3px;line-height:1.4}.android-download-copy>span{display:block;font-size:11px;line-height:1.8;color:#718298;margin-top:7px}
.android-download-button{padding:13px 18px;border-radius:12px;background:#175cd3;color:white;font-weight:600;font-size:13px;white-space:nowrap;text-align:center}.android-download-button>span{padding-left:12px}.android-download-button small{display:block;font-size:10px;font-weight:400;opacity:.85;margin-top:4px}.android-download-button:hover{background:#134cae}
@media(max-width:640px){.android-download{flex-wrap:wrap;padding:20px;gap:14px}.android-download-icon{width:42px;height:54px}.android-download-copy h2{font-size:17px}.android-download-copy>span{font-size:10px}.android-download-button{width:100%;padding:12px 14px}}
.destination { --accent: #175cd3; --soft: #edf4ff; --faint: #cddff9; background: #fff; border: 1px solid #dde5ef; border-radius: 22px; overflow: hidden; transition: transform .2s, box-shadow .2s, border-color .2s; }
.destination:hover { transform: translateY(-4px); box-shadow: 0 16px 34px #152d4b0c; border-color: var(--accent); }
.crossborder { --accent: #147d71; --soft: #eaf7f2; --faint: #c9e7df; }
.card-top { display: flex; align-items: center; justify-content: space-between; padding: 26px 28px 0; background: var(--soft); }
.region-label { color: var(--accent); font-size: 10px; font-weight: 750; letter-spacing: 1.7px; }
.region-number { color: var(--accent); font: 12px ui-monospace, monospace; opacity: .65; }
.route-art { height: 142px; position: relative; background: var(--soft); overflow: hidden; }
.route-art svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.route-main { stroke: var(--accent); stroke-width: 5; }
.route-faint { stroke: var(--faint); stroke-width: 3; }
.route-art circle { fill: white; stroke: var(--accent); stroke-width: 3; }
.city-tag { position: absolute; color: var(--accent); font-size: 12px; font-weight: 650; letter-spacing: 1px; background: var(--soft); padding: 2px 6px; }
.tag-first { left: 15%; top: 34%; }
.tag-last { right: 9%; top: 47%; }
.crossborder .tag-first { top: 43%; }
.crossborder .tag-last { top: 50%; }
.card-content { padding: 28px; }
.app-name { margin: 0 0 10px; color: var(--accent); font-size: 12px; font-weight: 600; letter-spacing: .3px; }
h2 { margin: 0; font-size: clamp(23px, 2.35vw, 29px); font-weight: 650; line-height: 1.25; letter-spacing: -.9px; }
h2 span { display: block; }
.card-description { color: #6a7b8d; font-size: 13px; line-height: 1.85; margin: 16px 0 20px; }
.features { display: flex; flex-wrap: wrap; gap: 7px; }
.features > span { font-size: 10px; color: #63758a; background: #f5f7fa; border: 1px solid #e8edf3; padding: 6px 9px; border-radius: 6px; }
.card-action { margin-top: 26px; padding-top: 20px; border-top: 1px solid #e9edf3; color: var(--accent); font-size: 12px; font-weight: 650; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.card-action > span > span { display: block; font-size: 11px; font-weight: 450; margin-top: 5px; opacity: .8; }
.arrow { flex: 0 0 34px; height: 34px; display: grid; place-items: center; background: var(--soft); border-radius: 50%; font-size: 20px; }
footer { padding: 30px 0; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; font-size: 11px; line-height: 1.7; color: #718298; }
.footer-note { margin-left: 5px; color: #718298; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.travel-assistant { margin: 0 0 32px; padding: 30px; background: #fff; border: 1px solid #d8e3f2; border-radius: 22px; box-shadow: 0 8px 28px #175cd306; }
.assistant-heading { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; }
.assistant-eyebrow { margin: 0 0 10px; color: #175cd3; font-size: 10px; font-weight: 700; letter-spacing: 1.6px; }
.assistant-heading h2 { font-size: 25px; letter-spacing: -.5px; }
#assistant-subtitle { margin: 10px 0 0; color: #61758b; font-size: 13px; line-height: 1.7; }
.assistant-language select { max-width: 112px; border: 1px solid #dbe5f3; border-radius: 9px; padding: 8px; background: #f7f9fc; color: #365374; font: inherit; font-size: 12px; }
.assistant-prompts { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 18px; }
.travel-assistant button { font: inherit; cursor: pointer; }
.assistant-prompts button { border: 1px solid #dae6f5; background: #f3f7fd; color: #255486; border-radius: 18px; padding: 8px 12px; font-size: 12px; line-height: 1.5; text-align: left; }
.assistant-log { max-height: 380px; overflow-y: auto; overscroll-behavior: contain; display: flex; flex-direction: column; gap: 12px; margin-bottom: 22px; }
.assistant-message { max-width: 90%; padding: 14px 16px; background: #f4f7fb; border-radius: 13px; align-self: flex-start; min-width: 0; }
.assistant-message.user { background: #eaf2ff; align-self: flex-end; }
.assistant-speaker { margin: 0 0 5px; font-size: 10px; font-weight: 700; letter-spacing: .4px; color: #50708e; }
.assistant-message-text { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 13px; line-height: 1.85; color: #263f58; }
.assistant-references { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 12px; }
.assistant-references a { color: #175cd3; font-size: 11px; text-decoration: underline; text-underline-offset: 3px; }
#assistant-form > label { display: block; color: #334f6a; font-size: 12px; font-weight: 650; margin-bottom: 9px; }
#assistant-question { display: block; box-sizing: border-box; width: 100%; min-height: 82px; resize: vertical; padding: 13px 15px; border: 1px solid #cddbec; border-radius: 12px; background: #fff; font: inherit; font-size: 14px; line-height: 1.6; color: #142b43; }
.travel-assistant :is(button, select, textarea, input):focus-visible { outline: 3px solid #9dbfff; outline-offset: 3px; }
.assistant-form-bottom { display: flex; justify-content: space-between; align-items: end; flex-wrap: wrap; gap: 14px; margin-top: 12px; }
.assistant-departure { display: grid; gap: 6px; color: #6a7d91; font-size: 10px; }
.assistant-departure input { width: 202px; max-width: 100%; border: 1px solid #dbe5f3; border-radius: 7px; padding: 7px 8px; color: #365374; background: #f7f9fc; font: inherit; font-size: 12px; }
.assistant-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.assistant-actions button, #assistant-check { border: 0; border-radius: 9px; padding: 10px 12px; background: #edf3fc; color: #365374; font-size: 12px; }
#assistant-send { background: #175cd3; color: #fff; padding: 11px 18px; font-weight: 650; }
.travel-assistant button:disabled { opacity: .5; cursor: not-allowed; }
.assistant-status-row { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
#assistant-status { margin: 0; color: #147d71; font-size: 11px; line-height: 1.7; }
#assistant-status.is-error { color: #a44136; }
#assistant-check { padding: 5px 8px; font-size: 10px; }
.assistant-note, .assistant-privacy { margin: 9px 0 0; color: #718298; font-size: 10px; line-height: 1.8; }
@media (max-width: 640px) { .travel-assistant { padding: 22px 18px; margin-bottom: 24px; } .assistant-heading { gap: 10px; } .assistant-heading h2 { font-size: 22px; } .assistant-language select { font-size: 11px; width: 96px; } .assistant-eyebrow { font-size: 8px; letter-spacing: .9px; } .assistant-message { max-width: 100%; } .assistant-form-bottom { align-items: stretch; flex-direction: column; } .assistant-actions { justify-content: flex-end; } .assistant-departure input { width: 100%; min-height: 36px; } #assistant-question { font-size: 16px; } }
@media (min-width: 1000px) { .intro { position: relative; } .intro-copy { position: absolute; right: 0; bottom: 72px; width: 310px; } .intro-chinese { position: absolute; right: 0; bottom: 42px; width: 310px; } }
@media (max-width: 640px) { .page { padding: 0 22px; } .masthead { min-height: 82px; } .brand { font-size: 21px; gap: 9px; } .brand-icon { width: 34px; height: 34px; } .masthead-caption { font-size: 11px; letter-spacing: 1px; } .intro { padding: 40px 0 30px; } .eyebrow { font-size: 9px; letter-spacing: 1.3px; margin-bottom: 20px; } h1 { font-size: 43px; letter-spacing: -1.9px; } .intro-copy { font-size: 14px; margin-top: 18px; } .intro-chinese { font-size: 12px; } .destinations { grid-template-columns: 1fr; gap: 20px; } .card-top { padding: 23px 24px 0; } .card-content { padding: 25px 24px; } h2 { font-size: 28px; } footer { padding: 26px 0; font-size: 10px; } .footer-note { display: block; margin-left: 0; } }
@media (prefers-reduced-motion: reduce) { .destination { transition: none; } .destination:hover { transform: none; } }

.masthead-download{margin-left:auto;color:#175cd3;background:#eaf1fc;padding:9px 12px;border-radius:10px;font-size:11px;font-weight:650;white-space:nowrap}
@media(max-width:640px){.masthead-caption{display:none}.masthead-download{padding:8px 10px;font-size:10px}}

.site-language{display:flex;align-items:center;gap:10px;margin-left:auto;color:#365374;font-size:12px;white-space:nowrap}.site-language>span{font-weight:650}.site-language select{min-height:44px;max-width:150px;border:1px solid #b8cce9;border-radius:10px;padding:9px 12px;background:#fff;color:#183e6c;font:inherit;font-size:14px}.site-language select:focus-visible{outline:3px solid #9dbfff;outline-offset:3px}.masthead-download{margin-left:0}.intro-copy,.card-description{white-space:pre-line}.city-tag{max-width:45%;font-size:11px}.intro-chinese{letter-spacing:0}
@media(max-width:640px){.masthead{flex-wrap:wrap;padding:16px 0;gap:12px}.site-language{gap:6px}.site-language>span{display:none}.site-language select{max-width:135px;min-height:44px;font-size:14px}.masthead-download{display:none}.intro{padding:28px 0 24px}h1{font-size:clamp(32px,8.5vw,43px);letter-spacing:-1px}.destinations{margin-bottom:24px}.intro-copy{line-height:1.6}.intro-chinese{line-height:1.6}.card-action{font-size:14px}}

.footer-legal{flex-basis:100%;border-top:1px solid #dfe6ee;padding-top:16px;line-height:1.9}.footer-legal a{text-decoration:underline;text-underline-offset:3px}.assistant-consent{display:flex!important;align-items:flex-start;flex-wrap:wrap;gap:6px;font-size:11px!important;line-height:1.8;color:#61758b!important;margin-top:14px}.assistant-consent input{margin:4px 2px 0 0;min-width:16px;min-height:16px}.assistant-consent a{color:#175cd3;text-decoration:underline;text-underline-offset:3px}
