You are an expert fantasy cartographer and Python visualization engineer. I have a working map generator script that produces a parchment-style nautical map of "The Convergence Archipelago" (a D&D pirate campaign setting). The script works but the output looks flat and amateurish. I need you to rewrite the rendering layer to produce a gorgeous, professional-quality fantasy map.

## Current State
- 2400x1600 PNG, parchment noise background, irregular island polygons, coastal glow, faction territory shading, dashed routes, 15 icon types, compass rose, legend, scale bar, title banner
- The script is at /home/thesage/pirate-map/generate_map.py — read it first to understand the data model and coordinate system
- All locations use an abstract 0–1000 coordinate space converted to pixels via cx()/cy()/cs() helpers

## Visual Target
Make it look like a hand-drawn antique nautical chart — the kind a pirate captain would unfold across a table. Reference the aesthetic of:
- 17th-century portolan charts (rhumb lines radiating from compass roses, coastal detail, decorative cartouches)
- Fantasy maps like those in D&D sourcebooks or the "Grand Archipelago of the Black Reach" style
- Parchment with character: stains, edge darkening, subtle fold creases, maybe a torn/burned edge effect

## Specific Improvements Required

### 1. Ocean & Water
- Replace the flat noise-based ocean with a richer treatment:
  - Subtle wave-line patterns (horizontal-ish wavy lines at varying opacity across open water)
  - Rhumb lines: 2-3 sets of radiating lines from different compass points across the map (very faint, 10-15% opacity)
  - A few decorative sea monster illustrations (simple line-art style: a sea serpent, a whale, a kraken tentacle breaking the surface) — these can be drawn with PIL arcs, bezier-like curves, and simple shapes
  - Small ship illustrations along trade routes (tiny triangles with square sails)
  - Depth suggestion: slightly darker water in the deepest ocean, lighter near island chains

### 2. Parchment & Aging
- Richer noise: more octaves, larger-scale variation for "stain clouds"
- Add 2-3 darker "stain rings" (like coffee cup rings) at random positions
- Edge burn: darken the outer 30-40 pixels progressively toward the edges
- Optional: subtle horizontal and vertical fold-line shadows (very faint dark lines with a slight highlight beside them)
- The parchment base color should be warmer and more varied — not just one flat tan

### 3. Islands & Terrain
- Instead of flat-filled polygons, give islands interior detail:
  - A slightly lighter "coastal shelf" ring inside each island
  - Small mountain/hill symbols on larger islands: tiny triangles or ^ shapes clustered in the center
  - Tiny tree symbols (small circles on sticks, or clustered dots) on forested islands
  - Rivers as thin blue/brown lines from island center to coast on the largest islands
- Island outlines should look hand-drawn: slightly wobbly, variable width (thicker on the "shadow" side for a pseudo-3D effect)
- The coastal glow should be more pronounced — a brighter turquoise/cyan that fades out over 25-30 pixels with a non-linear ease

### 4. Typography & Labels
- Use a hierarchy of label styles:
  - **Region names** (The Shifting, The Hollow, Harrowed Territory): large, spaced-out, low-opacity, angled or curved if possible
  - **Major cities** (Port Veridian): bold, dark brown, slightly larger
  - **Towns & landmarks**: regular weight, medium brown
  - **Hazards & minor features**: small, italic, lighter brown
- Add banner/ribbon backgrounds behind the most important labels (Port Veridian, The Convergence Spire, Kraken's Lair)
- Curve at least 2-3 labels along gentle arcs (can approximate with per-character positioning)

### 5. Compass Rose
- Make it much more ornate:
  - Outer ring with degree tick marks
  - 8-point star (cardinal + intercardinal) with alternating light/dark fills
  - A smaller inner 4-point star
  - Decorative fleur-de-lis or arrowhead on the North point
  - A second, smaller compass rose in another corner (different style, simpler)

### 6. Cartouches & Decorations
- Title in an ornate cartouche (scrolled banner with curled ends) instead of a plain rectangle
- Legend in a smaller cartouche or scroll shape
- Decorative corner elements: small nautical motifs (anchor, ship wheel, crossed cutlasses, skull) in 2-3 corners
- A "Here Be Monsters" or "Unknown Waters" decorative text element in an empty ocean area

### 7. Routes & Lines
- Trade routes: dashed but with a subtle glow/halo behind them so they pop against the ocean
- Add a "hazardous path" through Shattered Reefs: zigzag or dotted line in red
- Patrol routes for rival captains (dashed, faction-colored) with small ship icons at intervals

### 8. Faction Territories
- Instead of plain ellipses, use irregular, hand-drawn-looking boundary lines (dashed or dotted) with the faction color
- Add the faction name curved along the boundary
- Territory fills should be very subtle watercolor-like blobs, not hard-edged ellipses

### 9. Marginalia
- Add a "cartographer's notes" box in a bottom corner: small italic text like "Chart compiled by the Cartographer's Guild, Year of the Convergence" with a decorative initial capital
- Small compass bearing notes near key locations (e.g. "NW by N" near Silver Outpost)
- A few tiny anchor symbols marking "safe anchorage" points

### 10. Color Palette
Use a cohesive, muted palette:
- Parchment base: warm cream to tan (#E8D5B7 to #D4B896)
- Ink: dark sepia brown (#3E2723, #4E342E)
- Faction red (Reef Lords): muted crimson (#8B3A3A)
- Faction silver (Silver Navy): warm gray (#8D8D8D)
- Faction purple (Displaced): dusty violet (#7B5E9E)
- Faction dark blue (Harrowed): deep indigo (#2C3E50)
- Faction green (Free Ports): olive-sage (#5D8A4C)
- Ocean: muted teal-blue (#5B8A9A) fading to deeper navy in open water
- Coastal glow: bright cyan-teal (#4ECDC4)
- Hazard/danger: rust red (#A0522D)
- Treasure: faded crimson (#C0392B)

## Technical Constraints
- Use only Pillow (PIL), numpy, and scipy (for distance transforms)
- Keep the same coordinate system (0–1000 abstract, cx/cy/cs helpers)
- Keep the same data structures for LOCATIONS, FACTIONS, ROUTES, etc.
- The script must remain self-contained and produce convergence_map.png in one run
- Output resolution: 2400x1600 (can go to 3200x2133 if needed for detail)
- All drawing must be procedural — no external image assets

## Deliverable
Rewrite /home/thesage/pirate-map/generate_map.py with all the improvements above. Keep the existing data model intact but completely overhaul the rendering. The result should look like something you'd frame and hang on a wall.
