AI TRAVEL GUIDE
Personalized travel guides, generated by AI.
WEATHER
CONDITIONS
Mid-June in Monticello is warm and mostly clear with low humidity β ideal balloon conditions most mornings.
TEMPERATURE
14β28Β°C (57β82Β°F) with cool pre-dawn launch temps around 14Β°C
RAINFALL
Occasional afternoon thunderstorm possible β monsoon season edges in late June but is rarely a morning issue.
EXPECT
Expect bright blue skies at launch, rising warmth by noon, and keep an eye on clouds building southwest by 3pm.
LOCAL TIPS
TIPPING
Tip your balloon pilot $20β$30 per adult and $10 per kid β they work hard and it's expected.
SAFETY
Listen to every word during the pre-flight safety briefing; landing can be bumpy on uneven terrain and kids must know the brace position.
TRANSPORT
You'll need your own car β Monticello has zero rideshare coverage and the launch site is typically a rural field outside town.
ETIQUETTE
Don't lean over the basket edge for shots during launch or landing; your pilot will tell you when it's safe to move around freely.
WHAT TO PACK
Wide-angle lens for panoramic shots
Warm layer β mornings dip cool
Closed-toe shoes only
Motion sickness bands just in case
Extra memory cards, no exceptions
Sunscreen SPF 50+ minimum
YOUR ITINERARY
MORNING
Sunrise Hot Air Balloon Flight over Canyon Country β Float over juniper-dotted mesas as alpenglow turns the Abajo Mountains copper β bring your best lens.
3β4 hours including ground crew setup and post-flight Β· $150β$220 per adult, $100β$150 per child
LUNCH
Grab green chile cheeseburgers at MD Ranch Cookhouse in Monticello β locals eat here, tourists don't know it exists in Downtown Monticello
~$12β$18 per person
AFTERNOON
Edge of the Cedars State Park Museum β A surprisingly excellent Ancestral Puebloan ruin site with an actual kiva you can climb into β kids go nuts for it.
1.5β2 hours Β· $5 per adult, $3 per child
DINNER
Wagon Wheel Pizza in Monticello β thin crust, cold local root beer, and they're used to feeding hungry families post-adventure in Monticello Main Street
~$15β$25 per person
EVENING
Dark Sky Stargazing from Your Pullout β Monticello sits inside one of Utah's darkest sky corridors β pull over on Highway 491 south of town and let the kids find the Milky Way with zero equipment needed.
HIDDEN GEMS
π
The unmarked pull-off on Highway 46 east of Monticello overlooks a private canyon that most visitors drive past at 60mph β it's one of the best unobstructed sunrise compositions in San Juan County.
π
Lloyd's Lake off Blue Mountain Road is a local fishing and picnic spot with aspen groves that look impossibly lush for desert country β nobody goes here.
π
The mural on the side of the San Juan County courthouse depicts local Navajo and pioneer history in forensic detail β a five-minute stop that rewrites your whole understanding of the region.
WARNINGS
β οΈ
Balloon flights are weather-dependent and can cancel same-morning with little notice β build flexibility into your drive schedule and don't book non-refundable hotels assuming you'll fly.
β οΈ
Monticello sits at 7,000 feet elevation and June sun is brutal β altitude sunburn hits faster than you expect, especially with kids who think they're fine because it feels cool.
LOCAL LAWS
βοΈ
FAA rules prohibit drone flight near manned balloon airspace β leave the drone home.
βοΈ
Utah open container laws are strict β no alcohol in vehicles, even on rural roads.
and
// quote breakout) β never interpolate untrusted values raw into a script.
const DESTINATION = "Monticello Country Ballooning, Utah, USA";
// Apply a photo as background with dark overlay
function applyPhotoToEl(el, photo, overlayOpacity) {
if (!el || !photo) return;
const opacity = overlayOpacity || 0.55;
el.style.backgroundImage = `linear-gradient(rgba(0,0,0,${opacity}), rgba(0,0,0,${opacity})), url(${photo.url})`;
el.style.backgroundSize = 'cover';
el.style.backgroundPosition = 'center';
el.style.backgroundRepeat = 'no-repeat';
el.classList.add('has-photo');
}
// Add Unsplash attribution (required by guidelines)
function addAttribution(el, photo, className) {
const existing = el.querySelector('.' + className);
if (existing) existing.remove();
const attr = document.createElement('div');
attr.className = className;
attr.innerHTML = `Photo by