This commit enhances the visual quality of the soroban abacus cards with two key improvements:
1. Dynamic Rod Bounds:
- Rod (gray column indicator) now dynamically calculates its bounds based on actual bead positions
- No longer extends past outermost beads, creating a cleaner, more professional appearance
- Accounts for hide-inactive option to only span visible beads
- Handles edge cases like zero with hidden beads (rod spans just reckoning bar area)
2. Improved Inactive Bead Spacing:
- Increased inactive bead separation from 5pt to 8pt for better visual distinction
- Active beads maintain original 1pt spacing (close to reckoning bar)
- Creates clearer visual separation between active and inactive states
Technical Changes:
- Complete rewrite of rod positioning logic with dynamic bounds calculation
- Pre-calculates all bead positions before drawing rod
- Rod spans from outermost heaven bead to outermost earth bead
- Maintains physical abacus logic while improving aesthetics
Visual Impact:
- Cleaner, more professional appearance
- Better distinction between active/inactive beads
- Rod perfectly fits within bead boundaries for each column
- Consistent across all formats (PDF, SVG, web)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>