Infographic: Seamless Arrival at Cam Ranh Airport (CXR)
https://cdn.tailwindcss.com
https://cdn.jsdelivr.net/npm/chart.js
Goal: Organize & Compare -> Viz/Method: An interactive, button-driven visual flowchart built with Tailwind Flexbox and Borders. Wait times are shown as a “Single Big Number” within the flow. -> Interaction: User clicks a button to dynamically render the relevant flowchart. -> Justification: Far more engaging and easy to understand than static text. Visually separates two complex processes. -> Library/Method: HTML/CSS/Tailwind, Vanilla JS. NO SVG/Mermaid.
– Transportation Data (Report Info) -> Goal: Compare -> Viz/Method: A responsive Bar Chart. -> Interaction: Toggles allow the user to switch the view between ‘Cost’ and ‘Time’ data. -> Justification: The best way to visually compare quantitative data across multiple categories. -> Library/Method: Chart.js (Canvas).
– Service Benefits & Trust Factors (Report Info) -> Goal: Inform -> Viz/Method: Icon-driven cards laid out in a grid. -> Interaction: Subtle hover effects. -> Justification: Breaks down qualitative information into scannable, visually appealing, and memorable points. -> Library/Method: HTML/CSS/Tailwind.
–>
body { font-family: ‘Inter’, sans-serif; background-color: #f8fafc; }
.chart-container { position: relative; width: 100%; max-width: 800px; margin: auto; height: 300px; max-height: 50vh; }
@media (min-width: 768px) { .chart-container { height: 400px; } }
.stat-card { background-color: white; border-radius: 0.75rem; box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); padding: 1.5rem; text-align: center; }
.flow-step { border-left: 3px solid #cbd5e1; padding-left: 1.5rem; position: relative; }
.flow-step::before { content: ”; position: absolute; left: -11px; top: 0; width: 20px; height: 20px; border-radius: 9999px; background-color: white; border: 3px solid #cbd5e1; }
.flow-step.pain-point { border-left-color: #fecaca; }
.flow-step.pain-point::before { border-color: #ef4444; background-color: #fecaca; }
.active-btn { background-color: #2563eb !important; color: white !important; }
A data-driven look at arriving at Cam Ranh Airport (CXR) and how to reclaim your time.
Pre-flight Checklist & Arrival Tips
🛂
Passport Validity
Must be valid for at least 6 months from your entry date. No exceptions.
📄
Visa Documents
Have your printed E-Visa or VOA Approval Letter ready before you land.
💵
Cash for VOA
If using Visa on Arrival, bring clean USD bills ($25 or $50) for the stamping fee. There are no ATMs in the VOA area.
📸
VOA Photo
Bring one passport-sized photo (4×6 cm) to attach to your NA1 form.
🏨
Accommodation Details
Keep your hotel address handy for the arrival form.
📱
Download Offline Maps
Save a map of the Nha Trang area in case you lose connectivity.
The Two Paths of Arrival
Your journey through the airport is determined by your visa. Select your path to see the process and potential delays.
E-Visa / Visa-Free
Visa on Arrival (VOA)
The Smart Solution: Arrival Fast Track
Bypass the queues and complexity with a dedicated agent.
Minutes to Exit
Fast track users are typically through all formalities in under 20 minutes.
Minutes Standard Wait
Standard process can take over 90 minutes during peak times.
Stress Reduction
An agent handles all paperwork, payments, and navigation for you. (Metric illustrative)
Service Trust & Reliability
🗓️
Since 2008
Over 15 years of specialized experience in Vietnam immigration.
🛡️
Money-Back Guarantee
A service promise you can count on. Your satisfaction is guaranteed.
🔒
Secure PayPal Payments
Industry-standard payment security with Buyer Protection.
Let our experts handle your E-Visa or Visa on Arrival application for a fast, hassle-free process.
100% Success Rate or Your Money Back!
const flowData = {
evisa: {
title: ‘E-Visa / Visa-Free Arrival Flow’,
steps: [
{ name: ‘Disembark & Walk to Immigration’, detail: ‘Follow “Arrivals” signs.’ },
{ name: ‘Immigration Checkpoint Queue’, detail: ‘Present passport & printed E-Visa.’, painPoint: true, waitTime: ’30-60+ min’ },
{ name: ‘Baggage Claim’, detail: ‘Collect your luggage.’ },
{ name: ‘Customs Check’, detail: ‘Use the green channel if nothing to declare.’ },
{ name: ‘Exit to Arrivals Hall’, detail: ‘Your adventure begins!’ }
]
},
voa: {
title: ‘Visa On Arrival (VOA) Flow’,
steps: [
{ name: ‘Disembark & Find “Landing Visa” Counter’, detail: ‘Do NOT go to main immigration.’ },
{ name: ‘VOA Counter Queue & Processing’, detail: ‘Submit Approval Letter, form, photo, passport.’, painPoint: true, waitTime: ’20-45+ min’ },
{ name: ‘Pay Stamping Fee & Collect Passport’, detail: ‘US$25 or US$50 in cash required.’ },
{ name: ‘Immigration Checkpoint Queue’, detail: ‘Get the final entry stamp.’, painPoint: true, waitTime: ’15-30+ min’ },
{ name: ‘Baggage Claim’, detail: ‘Collect your luggage.’ },
{ name: ‘Exit to Arrivals Hall’, detail: ‘Your adventure begins!’ }
]
}
};
function renderFlow(type) {
const container = document.getElementById(‘flow-container’);
const data = flowData[type];
document.getElementById(‘evisa-btn’).classList.toggle(‘active-btn’, type === ‘evisa’);
document.getElementById(‘voa-btn’).classList.toggle(‘active-btn’, type === ‘voa’);
let content = `
${data.title} `;
data.steps.forEach(step => {
const painClass = step.painPoint ? ‘pain-point’ : ”;
content += `
${step.name}
${step.detail}
${step.painPoint ? `
${step.waitTime}
WAIT TIME
` : ”}
`;
});
content += ‘
‘;
container.innerHTML = content;
}
window.onload = function () {
renderFlow(‘evisa’);
document.getElementById(‘evisa-btn’).classList.add(‘active-btn’);
};