- Remove hermes-plan.md, hermes-progress-log.md, .hermes-commit-approved from git tracking
- dark_theme.py: remove CSS @media fallback + JS polling, first card auto-expand on stack
- streamlit_app.py: default city changed to Tokyo
Add polling fallback for stacking on HF Spaces embedded view
- setInterval every 1s checks if narrow/wide state changed
- Catches cases where resize/MutationObserver events don't propagate
through nested iframe sandbox on huggingface.co/spaces/...
- Only triggers update when state actually changes (no unnecessary work)
Add @media (max-width: 768px) fallback for HF Spaces iframe stacking
- Stacking JS uses window.parent which fails when app is embedded
in a sandboxed cross-origin iframe (HF Spaces)
- Added CSS @media fallback to stack columns + hide map at ≤768px
- JS still handles card collapsing, search controls 4-row layout,
and responsive panel heights when it can reach the parent
- Added [data-testid="stAppViewContainer"] padding/margin: 0
- Added section.main margin/padding: 0
- Increased .main > div:first-child margin-top from -8px to -20px
- This removes the ~25px gap Streamlit inserts at the page top
Fix card images showing grey bottom 1/3 on iPhone
- Removed max-height: 120px on .card-img in @media (max-width: 480px)
- The 16/9 aspect-ratio container was ~219px tall at full-width on iPhone
but the image was capped at 120px, revealing grey background below
- Images now fill the full aspect-ratio container correctly
- Separated collapseCards() from updateStack()
- MutationObserver now only calls updateStack() (layout: map hide/show,
search controls) — NEVER collapses cards
- collapseCards() only fires on load and resize, not on every DOM mutation
- This prevents the MutationObserver from instantly re-collapsing a card
the user just tapped to expand
- FLEX_PANELS_JS now checks for stack-columns class on body
- In narrow mode, cards container height set to 'auto' (no scroll cap)
- In narrow mode, max-height set to 'none' so all 6 cards are visible
- Parent LayoutWrapper height also cleared for consistency
- Changed stacking threshold from screen.width*0.50 to fixed 768px
breakpoint (old formula gave ~195px on iPhone — stacking never fired)
- Added MutationObserver to re-run stacking when Streamlit injects cards
and map via websocket after page load
- Map now hidden via inline JS style.setProperty in addition to CSS
- Card collapse retriggers on DOM mutations, not just window.load