Malaji71 commited on
Commit
c82f4ee
·
verified ·
1 Parent(s): 4cc33a0

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +61 -22
index.html CHANGED
@@ -166,32 +166,46 @@
166
  .roi-excellent { color: #4ade80; } .roi-good { color: #22c55e; } .roi-ok { color: #fbbf24; } .roi-risk { color: #fb923c; } .roi-low { color: #f87171; }
167
 
168
  .overlay-slide5 { background: linear-gradient(to right, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.7) 55%, rgba(0,0,0,0.0) 100%); }
169
- .content-slide5 { position: absolute; top: 40px; left: 5%; width: 65%; z-index: 10; }
 
 
 
 
 
 
 
 
 
 
170
  .titulo-slide5 {
171
- font-family: 'EB Garamond', serif; font-size: 3.5rem; font-weight: 600;
172
- letter-spacing: 2px; margin-bottom: 25px; text-shadow: 0 4px 15px rgba(0,0,0,0.9);
 
 
 
 
173
  }
174
  .slide5-desc {
175
- font-family: 'Manrope', sans-serif; font-size: 1rem; line-height: 1.6;
176
- margin-bottom: 25px; color: #ddd; opacity: 0.9;
177
  }
178
- .cascada-table { width: 100%; border-collapse: collapse; margin-bottom: 20px; font-size: 0.95rem; }
179
- .cascada-table th { text-align: left; padding: 12px 15px; border-bottom: 2px solid rgba(255,255,255,0.3); font-family: 'Manrope', sans-serif; font-weight: 600; font-size: 0.85rem; letter-spacing: 1px; text-transform: uppercase; color: #ccc; }
180
- .cascada-table td { padding: 12px 15px; border-bottom: 1px solid rgba(255,255,255,0.1); vertical-align: top; }
181
  .cascada-table .col-etapa { width: 20%; font-weight: 700; color: #fff; }
182
  .cascada-table .col-concepto { width: 50%; color: #ddd; }
183
- .cascada-table .col-monto { width: 30%; text-align: right; font-weight: 700; color: #4ade80; font-size: 1.05rem; }
184
  .cascada-table .total-row { background: rgba(255,255,255,0.08); }
185
  .cascada-table .total-row td { border-bottom: 2px solid rgba(255,255,255,0.4); font-weight: 700; }
186
- .cascada-table .total-row .col-monto { color: #fbbf24; font-size: 1.15rem; }
187
  .cascada-table .fase3-row .col-monto { color: #fbbf24; }
188
  .notas-tecnicas {
189
  background: rgba(0,0,0,0.8); border-left: 3px solid rgba(255,255,255,0.3);
190
- padding: 20px; margin-top: 110px; backdrop-filter: blur(5px);
191
  }
192
- .notas-tecnicas h3 { font-family: 'EB Garamond', serif; font-size: 1.3rem; margin-bottom: 15px; color: #fff; font-weight: 600; }
193
- .nota-item { margin-bottom: 15px; font-size: 0.85rem; line-height: 1.6; color: #ccc; }
194
- .nota-item strong { color: #fff; display: block; margin-bottom: 5px; font-weight: 600; }
195
 
196
  .overlay-slide6 { background: linear-gradient(to right, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.8) 50%, rgba(0,0,0,0.0) 100%); }
197
  .content-slide6 { position: absolute; top: 50%; left: 5%; transform: translateY(-50%); width: 50%; z-index: 10; }
@@ -213,7 +227,7 @@
213
  position: fixed;
214
  bottom: 0; left: 0; width: 100%;
215
  z-index: 1000;
216
- pointer-events: none; /* Permite clicks a través de los huecos */
217
  }
218
  .bottom-controls > * { pointer-events: auto; }
219
 
@@ -283,7 +297,7 @@
283
  .titulo-main { font-size: 6rem; letter-spacing: 15px; }
284
  .titulo-slide2 { font-size: 3.5rem; }
285
  .titulo-slide4 { font-size: 2.5rem; }
286
- .titulo-slide5 { font-size: 2.8rem; }
287
  .gracias-title { font-size: 3.5rem; }
288
  .equipo-container { grid-template-columns: 1fr 1fr; gap: 20px; }
289
  .table-row { grid-template-columns: 1.8fr 0.8fr 0.7fr; }
@@ -312,7 +326,7 @@
312
  }
313
  .content-slide6 { width: 90%; left: 5%; }
314
  .titulo-slide4 { font-size: 1.8rem; }
315
- .titulo-slide5 { font-size: 2rem; }
316
  .gracias-title { font-size: 2.5rem; margin-bottom: 30px; }
317
  .contacto-nombre { font-size: 1.4rem; }
318
  .table-row { grid-template-columns: 1fr; gap: 5px; padding: 10px 0; }
@@ -320,7 +334,7 @@
320
  .col-movie-desc { font-size: 0.7rem; }
321
  .cascada-table { font-size: 0.85rem; }
322
  .cascada-table th, .cascada-table td { padding: 8px 10px; }
323
- .notas-tecnicas { margin-top: 60px; padding: 15px; }
324
 
325
  /* MÓVIL: BARRA INFERIOR FLEX UNIFICADA */
326
  .bottom-controls {
@@ -375,7 +389,7 @@
375
  .titulo-slide-top-right { font-size: 1.4rem; }
376
  .miembro-nombre { font-size: 1.2rem; }
377
  .miembro-bio { font-size: 0.85rem; }
378
- .titulo-slide4, .titulo-slide5 { font-size: 1.6rem; }
379
  .highlight-number { font-size: 1.8rem; }
380
  .highlight-text { font-size: 0.7rem; }
381
  .gracias-title { font-size: 2rem; letter-spacing: 2px; }
@@ -383,8 +397,8 @@
383
  .whatsapp-icon { width: 20px; height: 20px; }
384
  .table-row { font-size: 0.8rem; }
385
  .cascada-table { font-size: 0.75rem; }
386
- .notas-tecnicas h3 { font-size: 1.1rem; }
387
- .nota-item { font-size: 0.75rem; }
388
 
389
  .bottom-controls { bottom: 10px; padding: 0 10px; }
390
  .slide-counter { padding: 5px 8px; font-size: 0.7rem; }
@@ -682,7 +696,7 @@
682
  if (e.key === 'ArrowLeft') changeSlide(-1);
683
  });
684
 
685
- // ===================== GENERADOR DE PDF - UX OPTIMIZADA =====================
686
  async function generatePDF() {
687
  const loadingOverlay = document.getElementById('pdf-loading');
688
  const progressText = document.getElementById('progress-text');
@@ -710,6 +724,20 @@
710
  slide.classList.add('capture-mode');
711
  slide.style.display = 'flex';
712
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
713
  const animatedElements = slide.querySelectorAll('[class*="animate-"]');
714
  animatedElements.forEach(el => {
715
  el.style.animation = 'none';
@@ -718,6 +746,7 @@
718
  void el.offsetWidth;
719
  });
720
 
 
721
  const links = [];
722
  slide.querySelectorAll('a[href]').forEach(link => {
723
  const rect = link.getBoundingClientRect();
@@ -727,8 +756,10 @@
727
  }
728
  });
729
 
 
730
  await new Promise(resolve => setTimeout(resolve, 1500));
731
 
 
732
  const bgStyle = window.getComputedStyle(slide).backgroundImage;
733
  const urlMatch = bgStyle.match(/url\(["']?(.*?)["']?\)/);
734
  if (urlMatch && urlMatch[1]) {
@@ -744,15 +775,23 @@
744
  } catch (e) { console.warn("BG conversion failed:", e); }
745
  }
746
 
 
747
  const canvas = await html2canvas(slide, {
748
  scale: 1, useCORS: false, allowTaint: false, backgroundColor: '#050505',
749
  logging: false, width: 1920, height: 1080, windowWidth: 1920, windowHeight: 1080,
750
  scrollX: 0, scrollY: 0, x: 0, y: 0, foreignObjectRendering: true, removeContainer: true
751
  });
752
 
 
 
 
 
 
 
753
  if (i > 0) pdf.addPage();
754
  pdf.addImage(canvas.toDataURL('image/jpeg', 0.95), 'JPEG', 0, 0, 1920, 1080, undefined, 'FAST');
755
 
 
756
  links.forEach(link => {
757
  pdf.link(link.x, link.y, link.width, link.height, { url: link.url });
758
  });
 
166
  .roi-excellent { color: #4ade80; } .roi-good { color: #22c55e; } .roi-ok { color: #fbbf24; } .roi-risk { color: #fb923c; } .roi-low { color: #f87171; }
167
 
168
  .overlay-slide5 { background: linear-gradient(to right, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.7) 55%, rgba(0,0,0,0.0) 100%); }
169
+ /* Ajustes clave para SCROLL y TAMAÑO */
170
+ .content-slide5 {
171
+ position: absolute;
172
+ top: 20px;
173
+ left: 5%;
174
+ width: 65%;
175
+ z-index: 10;
176
+ max-height: 85vh; /* Permite scroll si es necesario */
177
+ overflow-y: auto; /* Activa scroll vertical */
178
+ padding-bottom: 50px; /* Espacio al final del scroll */
179
+ }
180
  .titulo-slide5 {
181
+ font-family: 'EB Garamond', serif;
182
+ font-size: 2.2rem; /* REDUCIDO: de 3.5rem a 2.2rem */
183
+ font-weight: 600;
184
+ letter-spacing: 1px;
185
+ margin-bottom: 15px; /* Menor margen inferior */
186
+ text-shadow: 0 4px 15px rgba(0,0,0,0.9);
187
  }
188
  .slide5-desc {
189
+ font-family: 'Manrope', sans-serif; font-size: 0.95rem; line-height: 1.6;
190
+ margin-bottom: 20px; color: #ddd; opacity: 0.9;
191
  }
192
+ .cascada-table { width: 100%; border-collapse: collapse; margin-bottom: 20px; font-size: 0.9rem; }
193
+ .cascada-table th { text-align: left; padding: 10px 12px; border-bottom: 2px solid rgba(255,255,255,0.3); font-family: 'Manrope', sans-serif; font-weight: 600; font-size: 0.8rem; letter-spacing: 1px; text-transform: uppercase; color: #ccc; }
194
+ .cascada-table td { padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,0.1); vertical-align: top; }
195
  .cascada-table .col-etapa { width: 20%; font-weight: 700; color: #fff; }
196
  .cascada-table .col-concepto { width: 50%; color: #ddd; }
197
+ .cascada-table .col-monto { width: 30%; text-align: right; font-weight: 700; color: #4ade80; font-size: 1rem; }
198
  .cascada-table .total-row { background: rgba(255,255,255,0.08); }
199
  .cascada-table .total-row td { border-bottom: 2px solid rgba(255,255,255,0.4); font-weight: 700; }
200
+ .cascada-table .total-row .col-monto { color: #fbbf24; font-size: 1.05rem; }
201
  .cascada-table .fase3-row .col-monto { color: #fbbf24; }
202
  .notas-tecnicas {
203
  background: rgba(0,0,0,0.8); border-left: 3px solid rgba(255,255,255,0.3);
204
+ padding: 15px; margin-top: 20px; /* Menor margen superior */
205
  }
206
+ .notas-tecnicas h3 { font-family: 'EB Garamond', serif; font-size: 1.2rem; margin-bottom: 10px; color: #fff; font-weight: 600; }
207
+ .nota-item { margin-bottom: 12px; font-size: 0.8rem; line-height: 1.5; color: #ccc; }
208
+ .nota-item strong { color: #fff; display: block; margin-bottom: 4px; font-weight: 600; }
209
 
210
  .overlay-slide6 { background: linear-gradient(to right, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.8) 50%, rgba(0,0,0,0.0) 100%); }
211
  .content-slide6 { position: absolute; top: 50%; left: 5%; transform: translateY(-50%); width: 50%; z-index: 10; }
 
227
  position: fixed;
228
  bottom: 0; left: 0; width: 100%;
229
  z-index: 1000;
230
+ pointer-events: none;
231
  }
232
  .bottom-controls > * { pointer-events: auto; }
233
 
 
297
  .titulo-main { font-size: 6rem; letter-spacing: 15px; }
298
  .titulo-slide2 { font-size: 3.5rem; }
299
  .titulo-slide4 { font-size: 2.5rem; }
300
+ .titulo-slide5 { font-size: 2rem; } /* Más pequeño en tablet */
301
  .gracias-title { font-size: 3.5rem; }
302
  .equipo-container { grid-template-columns: 1fr 1fr; gap: 20px; }
303
  .table-row { grid-template-columns: 1.8fr 0.8fr 0.7fr; }
 
326
  }
327
  .content-slide6 { width: 90%; left: 5%; }
328
  .titulo-slide4 { font-size: 1.8rem; }
329
+ .titulo-slide5 { font-size: 1.6rem; } /* Más pequeño en móvil */
330
  .gracias-title { font-size: 2.5rem; margin-bottom: 30px; }
331
  .contacto-nombre { font-size: 1.4rem; }
332
  .table-row { grid-template-columns: 1fr; gap: 5px; padding: 10px 0; }
 
334
  .col-movie-desc { font-size: 0.7rem; }
335
  .cascada-table { font-size: 0.85rem; }
336
  .cascada-table th, .cascada-table td { padding: 8px 10px; }
337
+ .notas-tecnicas { margin-top: 15px; padding: 12px; }
338
 
339
  /* MÓVIL: BARRA INFERIOR FLEX UNIFICADA */
340
  .bottom-controls {
 
389
  .titulo-slide-top-right { font-size: 1.4rem; }
390
  .miembro-nombre { font-size: 1.2rem; }
391
  .miembro-bio { font-size: 0.85rem; }
392
+ .titulo-slide4, .titulo-slide5 { font-size: 1.5rem; }
393
  .highlight-number { font-size: 1.8rem; }
394
  .highlight-text { font-size: 0.7rem; }
395
  .gracias-title { font-size: 2rem; letter-spacing: 2px; }
 
397
  .whatsapp-icon { width: 20px; height: 20px; }
398
  .table-row { font-size: 0.8rem; }
399
  .cascada-table { font-size: 0.75rem; }
400
+ .notas-tecnicas h3 { font-size: 1rem; }
401
+ .nota-item { font-size: 0.7rem; }
402
 
403
  .bottom-controls { bottom: 10px; padding: 0 10px; }
404
  .slide-counter { padding: 5px 8px; font-size: 0.7rem; }
 
696
  if (e.key === 'ArrowLeft') changeSlide(-1);
697
  });
698
 
699
+ // ===================== GENERADOR DE PDF - CON MANEJO DE SCROLL =====================
700
  async function generatePDF() {
701
  const loadingOverlay = document.getElementById('pdf-loading');
702
  const progressText = document.getElementById('progress-text');
 
724
  slide.classList.add('capture-mode');
725
  slide.style.display = 'flex';
726
 
727
+ // TRUCO PARA SLIDE 5: Expandir altura para capturar todo el texto
728
+ const contentSlide5 = slide.querySelector('.content-slide5');
729
+ let originalMaxHeight = '';
730
+ let originalOverflow = '';
731
+
732
+ if (contentSlide5) {
733
+ originalMaxHeight = contentSlide5.style.maxHeight;
734
+ originalOverflow = contentSlide5.style.overflow;
735
+ // Expande el contenedor al 100% del contenido para que html2canvas lo vea todo
736
+ contentSlide5.style.maxHeight = 'none';
737
+ contentSlide5.style.overflow = 'visible';
738
+ }
739
+
740
+ // Forzar animaciones a estado final
741
  const animatedElements = slide.querySelectorAll('[class*="animate-"]');
742
  animatedElements.forEach(el => {
743
  el.style.animation = 'none';
 
746
  void el.offsetWidth;
747
  });
748
 
749
+ // Recolectar links
750
  const links = [];
751
  slide.querySelectorAll('a[href]').forEach(link => {
752
  const rect = link.getBoundingClientRect();
 
756
  }
757
  });
758
 
759
+ // Esperar renderizado (un poco más para asegurar carga de fuentes expandidas)
760
  await new Promise(resolve => setTimeout(resolve, 1500));
761
 
762
+ // Convertir bg a base64
763
  const bgStyle = window.getComputedStyle(slide).backgroundImage;
764
  const urlMatch = bgStyle.match(/url\(["']?(.*?)["']?\)/);
765
  if (urlMatch && urlMatch[1]) {
 
775
  } catch (e) { console.warn("BG conversion failed:", e); }
776
  }
777
 
778
+ // Capturar
779
  const canvas = await html2canvas(slide, {
780
  scale: 1, useCORS: false, allowTaint: false, backgroundColor: '#050505',
781
  logging: false, width: 1920, height: 1080, windowWidth: 1920, windowHeight: 1080,
782
  scrollX: 0, scrollY: 0, x: 0, y: 0, foreignObjectRendering: true, removeContainer: true
783
  });
784
 
785
+ // Restaurar estilos de scroll inmediatamente después de capturar
786
+ if (contentSlide5) {
787
+ contentSlide5.style.maxHeight = originalMaxHeight;
788
+ contentSlide5.style.overflow = originalOverflow;
789
+ }
790
+
791
  if (i > 0) pdf.addPage();
792
  pdf.addImage(canvas.toDataURL('image/jpeg', 0.95), 'JPEG', 0, 0, 1920, 1080, undefined, 'FAST');
793
 
794
+ // Agregar links
795
  links.forEach(link => {
796
  pdf.link(link.x, link.y, link.width, link.height, { url: link.url });
797
  });