{{-- ===================================================================== app.blade.php — SHELL OFICIAL de la landing servida por Laravel. Replica al pie de la letra el HTML de /index.html (para preservar SEO, OG, JSON-LD, preloads) pero la inclusión del bundle JS la hace `@vite` en vez de un " romperia el script type=application/ld+json y ejecutaria JS en el contexto del sitio. Las flags hex-encodean <, >, ', " y & — el payload queda como string JSON valido pero inerte para el parser HTML. JSON_UNESCAPED_SLASHES queda fuera por la misma razon (los / de "" terminarian sin escapar). --}} {{-- Fonts: self-hosted via @fontsource (see src/main.tsx). No external third-party requests — Google never sees visitor IPs (LFPDP/GDPR). --}} {{-- Prefetch del modelo 3D del Cadillac (2.5 MB). El Cadillac vive en una card del Blog, lejos del LCP — usar `preload` lo bajaba antes del primer paint y robaba 2.5MB de banda critica. `prefetch` hint al browser que es low-priority: solo lo baja cuando hay banda libre. drei/useGLTF.preload() en CarScene.tsx tambien lo dispara apenas monta el chunk lazy, asi que esto es solo un "warming" extra. Comprimir con Draco/Meshopt (~400KB) es la siguiente optimizacion. --}} {{-- ===================================================================== BUNDLE JS — @vite genera diferentes tags según el modo: - DEV (existe public/hot): + el client de HMR para hot reload - PROD (no existe public/hot): leyendo paths del manifest en public/build/manifest.json @viteReactRefresh DEBE ir ANTES de @vite('src/main.tsx') — inyecta el preamble de React Fast Refresh que @vitejs/plugin-react necesita en dev. Sin esto, error en console: "@vitejs/plugin-react can't detect preamble" ===================================================================== --}} @viteReactRefresh @vite('src/main.tsx')