- seed: wire 6 licensed cosmic images (hero split art, episode cover, episode-card + about slots); kills the empty grey hero/cover boxes with real art
- theme fix: rich-section + episode_console render a labeled LCARS console-art readout for unset image slots instead of a bare grey rectangle
- dead space: home hero -> split layout (image fills post-CTA void); lengthen first-contact episode log to ~11 paragraphs (starfleet-log voice), warp/terraforming to 5
- SVG geometry guard: explicit width/height on all <use> icon SVGs; full shortcode sweep (::pack:name:size:: -> sized <svg><use>) across every override
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Layout/whitespace remediation (no redesign; LCARS persona intact):
- hero: styled-text reads used `field.text|default:field`, which HARD-ERRORS
in ninjatpl when the field is a bare string (resolveIdentifier errors on
reflect.String, and nodeFilteredVariable returns before the default filter
runs). The demo seed passes bare strings for eyebrow/headline/subheadline,
so the hero aborted on its first {% set %} and rendered nothing — a dead
band on the home page. Switch to `field|get:"text"|default:field` (the
global jutsu `get` filter tolerates non-maps), which resolves both the
{text,color} object and bare-string forms. Same defensive fix in navbar
logoText.
- hero split: guard the empty media frame so an image-less split hero drops to
a single column instead of leaving a blank muted panel.
- episode_console: empty cover rendered a full 1:1 square that ballooned to
~600px and, with align-items:stretch, stretched the text column to match,
leaving a large void beside the copy. Switch to align-items:start and render
a compact, capped, on-brand LCARS readout placeholder (.lcars-console-art)
when no cover ships.
- cta: band variant left a large empty region right of the button; use
justify-content:space-between and trim the oversized 4rem band padding to 3rem.
- manifest css: add .lcars-console-art (explicit CSS, semantic tokens) + cap
.lcars-img-empty height.
Mobile responsiveness audited from CSS/templates: all grids/rails collapse via
explicit @media rules in manifest css.input_css_append (not Tailwind JIT-scanned
theme classes); no horizontal overflow at 375-390px. Content is never gated by
IntersectionObserver (canvas IO drives only the decorative hero background;
.lcars-reveal is a load-time CSS animation with a reduced-motion opacity:1
fallback), so no reveal-hidden dead bands.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>