.tank .spark{
  position:absolute;
  width:36px; height:36px;
  border-radius:50%;
  pointer-events:none;
  background: radial-gradient(circle, rgba(255,255,255,0.65) 0%, rgba(255,255,255,0) 65%);
  opacity:0.45;
  animation: sparkle 6s ease-in-out infinite;
}

.tank .spark.s1{ top:60px; left:24%; animation-delay:0s; }
.tank .spark.s2{ top:140px; right:18%; animation-delay:1.8s; }
.tank .spark.s3{ bottom:90px; left:32%; animation-delay:3s; }

@keyframes sparkle{
  0%,100%{ transform: scale(0.65) translateY(0); opacity:0.3; }
  40%{ transform: scale(1) translateY(-6px); opacity:0.5; }
  70%{ transform: scale(0.85) translateY(4px); opacity:0.2; }
}
/* Más burbujas: posiciones, tamaños y animaciones variadas */
.bubble.b6{ left:12%; width:6px; height:6px; animation-duration:4.7s; animation-delay:1.7s }
.bubble.b7{ left:28%; width:9px; height:9px; animation-duration:5.5s; animation-delay:2.2s }
.bubble.b8{ left:36%; width:7px; height:7px; animation-duration:6.1s; animation-delay:1.1s }
.bubble.b9{ left:48%; width:8px; height:8px; animation-duration:5.3s; animation-delay:2.7s }
.bubble.b10{ left:62%; width:5px; height:5px; animation-duration:4.3s; animation-delay:1.5s }
.bubble.b11{ left:74%; width:10px; height:10px; animation-duration:6.6s; animation-delay:0.9s }
.bubble.b12{ left:85%; width:7px; height:7px; animation-duration:5.8s; animation-delay:2.4s }
.bubble.b13{ left:16%; width:8px; height:8px; animation-duration:5.1s; animation-delay:1.3s }
.bubble.b14{ left:58%; width:6px; height:6px; animation-duration:4.9s; animation-delay:2.1s }
.bubble.b15{ left:90%; width:9px; height:9px; animation-duration:6.3s; animation-delay:0.7s }

/* Más peces: colores y tamaños variados */
.fish.f4 { top:25%; left:30px; background:#6ec6ff; animation-duration:14s; animation-delay:3s; transform:scale(0.95); }
.fish.f5 { top:55%; left:60px; background:#ffb3c6; animation-duration:16s; animation-delay:4s; transform:scale(1.05); }
.fish.f6 { top:70%; left:90px; background:#baffc9; animation-duration:13s; animation-delay:1.5s; transform:scale(0.85); }
.fish.f7 { top:35%; left:120px; background:#ffd6a5; animation-duration:17s; animation-delay:2.5s; transform:scale(1.12); }
/* Video de acuario como fondo de la pecera */

/* Fondo celeste claro para la pecera */
.tank {
  background: linear-gradient(to top, #b3e0ff 80%, #e6f7ff 100%);
  border-radius: 28px;
  position: relative;
  overflow: hidden;
}
.tank .fish {
  z-index: 4; /* por encima de burbujas y agua */
  position: absolute;
  will-change: transform;
  pointer-events: none;
  transform-origin: 50% 50%;
}

footer .footer-brand{
  font-weight:600;
}

footer .footer-rights{
  font-size:11px;
  letter-spacing:0.02em;
  color:rgba(255,244,236,0.68);
}
:root{
  --sunset:#fe7f2d;
  --sunset-soft:#ff9b57;
  --adventure:#233d4d;
  --adventure-soft:#2f5061;
  --brand:var(--sunset);
  --brand-dark:#d9611b;
  --text:#fef4ec;
  --muted:#f6c6a3;
  --bg:#142433;
  --card:rgba(255,255,255,0.9);
}

html, body {
  height:100%;
  margin:0;
  background:
    radial-gradient(1200px 800px at -10% -10%, rgba(254,127,45,0.38), transparent 65%),
    radial-gradient(900px 700px at 110% 110%, rgba(35,61,77,0.55), transparent 70%),
    linear-gradient(160deg, #0f1f2d 0%, #233d4d 45%, #fe7f2d 100%);
  color: var(--text);
  font-family: "Montserrat", "Segoe UI", Arial, sans-serif;
  overflow-x:hidden;
}

/* Tono general UI */
:root{
  --water:#2a9d8f;
  --glass:#cfe9f6;
  --accent:#00b4d8;
  --text-on-dark:#ffffff;
}

button{
  background: var(--brand);
  color: #fff;
  border: none;
}

button:hover{
  background: var(--brand-dark);
}

button:focus{
  outline:none;
  box-shadow: 0 6px 18px rgba(254,127,45,0.26);
}

input[type="email"]{
  padding:16px 20px;
  width:320px;
  max-width:100%;
  border-radius:26px;
  border:1px solid rgba(255,255,255,0.45);
  background: radial-gradient(120% 140% at 50% 10%, rgba(255,255,255,0.98), rgba(227,236,244,0.92) 55%, rgba(207,222,236,0.9) 100%);
  color: #1c2d3d;
  outline:none;
  box-shadow:
    0 20px 32px rgba(10,16,24,0.26),
    0 8px 18px rgba(6,12,20,0.15),
    inset 0 2px 0 rgba(255,255,255,0.9),
    inset 0 -2px 6px rgba(12,22,35,0.12);
  transition: box-shadow 160ms ease, transform 160ms ease;
}

input::placeholder{
  color:rgba(35,61,77,0.6);
  opacity:0.9;
}

input[type="email"]:focus{
  box-shadow:
    0 24px 42px rgba(10,16,24,0.32),
    0 10px 24px rgba(8,16,28,0.2),
    inset 0 2px 0 rgba(255,255,255,0.95),
    inset 0 -2px 6px rgba(12,22,35,0.15);
  transform: translateY(-2px);
}


.wrap{
  min-height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:24px;
  gap:24px;
  text-align:center;
  position:relative;
  isolation:isolate;
}

.wrap::before,
.wrap::after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  border-radius:50%;
  z-index:-1;
  filter: blur(0.6px);
}

.wrap::before{
  top:4%; left:12%;
  background: radial-gradient(circle at 30% 30%, rgba(254,127,45,0.55), rgba(254,127,45,0));
  box-shadow: 0 0 45px rgba(254,127,45,0.45);
}

.wrap::after{
  bottom:8%; right:10%;
  background: radial-gradient(circle at 70% 70%, rgba(35,61,77,0.7), rgba(35,61,77,0));
  box-shadow: 0 0 65px rgba(35,61,77,0.55);
}

h1{margin:0; font-size:42px; letter-spacing:0.5px;}
p{margin:0; font-size:18px; opacity:0.94}

/* Dinamismo de textos */
.reveal{
  opacity:1;
  transform: none;
  animation: fadeUp 700ms cubic-bezier(.2,.65,.3,1);
  animation-fill-mode: both;
  animation-delay: var(--delay, 0s);
}
@keyframes fadeUp{
  from{ opacity:0; transform: translateY(12px); }
  to{ opacity:1; transform: translateY(0); }
}

/* Titular visible con glow suave */
.headline{
  display:inline-flex;
  gap:0.02em;
  align-items:flex-end;
  flex-wrap:wrap;
  justify-content:center;
  font-size: clamp(2.5rem, 5.4vw, 3.8rem);
  font-weight:800;
  letter-spacing:0.04em;
  text-transform:none;
  line-height:1;
}

.headline-letter{
  position:relative;
  display:inline-block;
  color:transparent;
  background: linear-gradient(135deg, rgba(255,190,128,0.95) 0%, rgba(120,195,255,0.9) 45%, rgba(250,190,255,0.9) 100%);
  background-size: 180% 180%;
  -webkit-background-clip:text;
  background-clip:text;
  filter: drop-shadow(0 10px 18px rgba(6,12,24,0.42));
  mix-blend-mode: screen;
  animation: letterHue 5.6s ease-in-out infinite;
  animation-delay: calc(var(--index, 0) * 0.14s);
  transform-origin:center bottom;
}

.headline-letter.space{
  width:0.38em;
  animation:none;
}

@keyframes letterHue{
  0%,100%{
    background-position: 0% 50%;
    filter: drop-shadow(0 10px 18px rgba(6,12,24,0.42));
    transform: translateY(0);
  }
  33%{
    background-position: 50% 60%;
    filter: drop-shadow(0 12px 22px rgba(4,10,20,0.4));
    transform: translateY(-2px);
  }
  66%{
    background-position: 100% 40%;
    filter: drop-shadow(0 9px 16px rgba(8,14,24,0.46));
    transform: translateY(2px);
  }
}

.headline.float{ animation: floatY 6s ease-in-out infinite; }
@keyframes floatY { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-4px) } }


.lead-panel{
  display:grid;
  gap:10px;
  padding:18px 24px;
  margin:6px auto 0;
  background: linear-gradient(135deg, rgba(35,61,77,0.55), rgba(35,61,77,0.32));
  border-radius:20px;
  border:1px solid rgba(35,61,77,0.35);
  box-shadow: 0 12px 32px rgba(10,16,26,0.26);
  max-width:520px;
}

.lead{
  margin:0;
  color:var(--card);
  letter-spacing:0.32px;
  text-shadow: 0 2px 8px rgba(10,16,24,0.55);
}

.lead.accent{
  color:#142433;
  background: linear-gradient(135deg, rgba(254,127,45,0.82), rgba(255,166,109,0.65));
  padding:10px 16px;
  border-radius:14px;
  border:1px solid rgba(255,188,129,0.7);
  box-shadow: 0 12px 28px rgba(254,127,45,0.25);
  text-shadow: 0 2px 5px rgba(255,224,205,0.4);
}

/* CTA microinteracciones */
.cta button{
  transition: transform 160ms ease, box-shadow 160ms ease;
  box-shadow: 0 14px 32px rgba(10,16,24,0.35);
  border:1px solid rgba(255,255,255,0.35);
}

.cta button:hover{
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 18px 38px rgba(254,127,45,0.32);
}

.cta button:active{
  transform: translateY(1px) scale(0.97);
}

/* Efecto brillo sutil en el botón */
.btn-sheen{ position: relative; overflow: hidden; }
.btn-sheen::after{
  content:"";
  position:absolute; top:-20%; left:-40%; width:40%; height:140%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.35), transparent);
  transform: skewX(-20deg);
  animation: sheen 3.6s ease-in-out infinite;
  pointer-events:none;
}
@keyframes sheen { 0%{ left:-40% } 50%{ left:120% } 100%{ left:120% } }

/* Respeto a usuarios con motion reducido */
@media (prefers-reduced-motion: reduce){
  .reveal, .headline, .headline.float{ animation: none !important; opacity:1; transform:none; }
  .btn-sheen::after{ display:none; }
  .headline-letter{ animation:none !important; }
}
.tank{
  position:relative;
  width: min(92vw, 520px);
  height: 420px;
  border:0;
  border-radius:46px 46px 120px 120px / 66px 66px 90px 90px;
  overflow:hidden;
  box-shadow:
    0 18px 40px rgba(0,0,0,0.18),
    inset 0 0 0 3px rgba(255,255,255,0.35),
    inset 0 -12px 26px rgba(0,0,0,0.28);
  background: radial-gradient(220% 160% at 50% -20%, rgba(255,255,255,0.25), rgba(179,224,255,0.4) 32%, rgba(52,132,179,0.6) 62%, rgba(14,54,92,0.95) 100%);
}
/* Indicar que se puede hacer clic para guiar a los peces */
.tank{ cursor: crosshair; }
/* Rayos de luz verticales y suaves */
.light-rays {
  position: absolute;
  top: 0; left: 0; right: 0; height: 100%;
  pointer-events: none;
  z-index: 1;
  background:
    repeating-linear-gradient(105deg, rgba(255,255,255,0.13) 0 6px, transparent 6px 60px),
    repeating-linear-gradient(75deg, rgba(255,255,255,0.10) 0 8px, transparent 8px 80px);
  mix-blend-mode: screen;
  opacity: 0.38;
  animation: rays-move 12s linear infinite;
}
@keyframes rays-move {
  0% { background-position: 0 0, 0 0; }
  100% { background-position: 120px 80px, 80px 120px; }
}

/* Corales y rocas grandes, formas orgánicas y colores vivos */
.coral {
  position: absolute;
  bottom: 0;
  opacity: 0.98;
  z-index: 2;
  filter: blur(0.2px) saturate(1.1);
  border-radius: 50% 50% 60% 60% / 60% 60% 100% 100%;
}
.coral1 {
  left: 10px; width: 80px; height: 90px;
  background: radial-gradient(circle at 60% 40%, #fbeedb 60%, #f7bfa0 100%);
  border-radius: 60% 40% 80% 60% / 80% 60% 100% 100%;
  box-shadow: 0 0 0 12px #f7bfa0 inset, 0 2px 18px 2px rgba(0,0,0,0.13);
}
.coral2 {
  left: 70px; width: 60px; height: 70px;
  background: radial-gradient(circle at 40% 60%, #e6f7f7 60%, #b2e0e0 100%);
  border-radius: 60% 60% 100% 80% / 80% 80% 100% 100%;
  box-shadow: 0 0 0 8px #b2e0e0 inset, 0 2px 12px 2px rgba(0,0,0,0.10);
}
.coral3 {
  left: 130px; width: 90px; height: 110px;
  background: radial-gradient(circle at 50% 60%, #f9e6f7 60%, #e0b2e0 100%);
  border-radius: 70% 60% 100% 80% / 80% 80% 100% 100%;
  box-shadow: 0 0 0 14px #e0b2e0 inset, 0 2px 18px 2px rgba(0,0,0,0.13);
}
.coral4 {
  left: 210px; width: 70px; height: 80px;
  background: radial-gradient(circle at 60% 40%, #e6f7e6 60%, #b2e0b2 100%);
  border-radius: 60% 60% 100% 80% / 80% 80% 100% 100%;
  box-shadow: 0 0 0 10px #b2e0b2 inset, 0 2px 12px 2px rgba(0,0,0,0.10);
}
.coral5 {
  left: 270px; width: 50px; height: 60px;
  background: radial-gradient(circle at 40% 60%, #f7fbe6 60%, #e0e7b2 100%);
  border-radius: 60% 60% 100% 80% / 80% 80% 100% 100%;
  box-shadow: 0 0 0 7px #e0e7b2 inset, 0 2px 10px 2px rgba(0,0,0,0.10);
}

/* Rocas y grava azuladas, más orgánicas */
.gravel{
  position:absolute; left:0; right:0; bottom:0; height:54px; z-index:3;
  background: radial-gradient(circle at 40px 30px, #3a5a7a 30%, #1e2a3a 80%),
              radial-gradient(circle at 220px 40px, #4a7a8a 20%, #1e2a3a 80%),
              linear-gradient(180deg, #1e2a3a 60%, #0a2a47 100%);
  border-radius:0 0 24px 24px;
  box-shadow: inset 0 6px 18px rgba(0,0,0,0.13);
}

/* Plantas marinas más estilizadas */
.plant{
  position:absolute; bottom:54px; width:32px; height:110px;
  background: linear-gradient(180deg, #2e8b57 0%, #1f6a3f 100%);
  border-radius:20px 20px 8px 8px;
  transform-origin: bottom center;
  box-shadow: inset 0 2px 12px rgba(0,0,0,0.10);
  z-index:4;
  opacity:0.92;
}
.plant.p1{ left:28px; transform: rotate(-10deg) scale(0.95); }
.plant.p2{ right:38px; transform: rotate(8deg) scale(1.08); }

/* Agua animada, azul translúcida */
.water{
  background: linear-gradient(to top, #0a2a47 0%, #1e5a8a 60%, #6fd6e0 100%);
  overflow: hidden;
}

/* (limpieza) eliminar duplicado de burbujas y keyframes antiguos */

.tank::before,
.tank::after{
  content:"";
  position:absolute;
  pointer-events:none;
}

.tank::before{
  inset:10px 12px;
  border-radius:40px 40px 112px 112px / 60px 60px 84px 84px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.55),
    inset 0 -18px 26px rgba(8,24,38,0.35),
    0 0 0 6px rgba(255,255,255,0.04);
}

.tank::after{
  top:24px; left:38px;
  width:50%; height:24%;
  border-radius:60% 40% 50% 50%;
  background: linear-gradient(90deg, rgba(255,255,255,0.4), rgba(255,255,255,0));
  filter: blur(0.5px);
  opacity:0.45;
}

.water{ position:relative; z-index:1; }

.bubbles{ position:absolute; left:14px; right:14px; bottom:26px; top:32px; pointer-events:none; overflow:visible; z-index:3; }
.bubble{
  position:absolute; bottom:8px;
  width:10px; height:10px; border-radius:50%;
  background: rgba(255,255,255,0.85);
  opacity:0.85;
  filter: blur(0.2px);
  animation: rise 6s linear infinite;
}
.bubble.b1{ left:20%; width:8px; height:8px; animation-duration:5s; animation-delay:0s }
.bubble.b2{ left:40%; width:10px; height:10px; animation-duration:6.2s; animation-delay:0.6s }
.bubble.b3{ left:60%; width:7px; height:7px; animation-duration:4.8s; animation-delay:1.2s }
.bubble.b4{ left:78%; width:9px; height:9px; animation-duration:5.6s; animation-delay:0.4s }
.bubble.b5{ left:50%; width:6px; height:6px; animation-duration:4.2s; animation-delay:2s }
@keyframes rise{ 0%{ transform: translateY(0) scale(0.6); opacity:0.7 } 50%{ opacity:0.9 } 100%{ transform: translateY(-260px) scale(1); opacity:0 } }

/* Agua más profunda y efectos tipo foto */
.water{
  background: linear-gradient(to top, #083b6b 0%, #0f5b8a 35%, #6fd6e0 100%);
  overflow: hidden;
}

/* Rayos de luz */
.water::before{
  content:"";
  position:absolute; inset:0; z-index:2;
  background: radial-gradient(ellipse at 20% 10%, rgba(255,255,255,0.08) 0%, transparent 25%),
              linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0));
  mix-blend-mode: screen;
  pointer-events:none;
}

/* Sutileza de caustics moviéndose */
.water::after{
  content:"";
  position:absolute; inset:0; z-index:2;
  background-image: radial-gradient(circle at 10% 20%, rgba(255,255,255,0.02), transparent 10%),
                    radial-gradient(circle at 70% 80%, rgba(255,255,255,0.02), transparent 12%);
  opacity:0.9;
  transform-origin:center;
  animation: caustics 8s linear infinite;
  pointer-events:none;
}
@keyframes caustics{ 0%{ transform: translateY(0) } 50%{ transform: translateY(-6px) } 100%{ transform: translateY(0) } }

/* mejorar apariencia de burbujas generadas dinámicamente */
.bubble{
  box-shadow: 0 1px 2px rgba(0,0,0,0.08), inset -2px -2px 6px rgba(255,255,255,0.35);
  background: radial-gradient(circle at 35% 30%, rgba(255,255,255,0.95), rgba(255,255,255,0.6) 40%, rgba(255,255,255,0.12) 70%);
}

.gravel{ position:absolute; left:6px; right:6px; bottom:6px; height:40px; z-index:0; background: radial-gradient(circle at 20px 20px, #b97b36 10%, #8c5a2a 40% ); border-radius:0 0 12px 12px; box-shadow: inset 0 6px 12px rgba(0,0,0,0.06); }
.plant{ position:absolute; bottom:44px; width:40px; height:120px; background: linear-gradient(#2e8b57,#1f6a3f); border-radius:20px 20px 8px 8px; transform-origin: bottom center; box-shadow: inset 0 2px 6px rgba(0,0,0,0.08); z-index:2; }
.plant.p1{ left:18px; transform: rotate(-6deg) scale(0.9); }
.plant.p2{ right:26px; transform: rotate(6deg) scale(1.05); }

.water .fish{ z-index:3; }
.tank .fish{ transition: left 180ms linear, top 180ms linear, transform 160ms linear; }
.water{
  position:absolute;
  left:10px;
  right:10px;
  bottom:12px;
  width:auto;
  height:86%;
  border-radius:32px 32px 90px 90px / 46px 46px 80px 80px;
  background: linear-gradient(to top, rgba(7,55,92,0.95), rgba(31,114,166,0.85), rgba(111,214,224,0.75));
  transition:height 800ms ease-in-out;
  filter:saturate(1.15);
  transform-origin:center bottom;
  animation: waterPulse 8s ease-in-out infinite;
}
@keyframes waterPulse{
  0%,100%{ transform: translateY(0); }
  50%{ transform: translateY(-6px); }
}
.wave{
  position:absolute;
  left:-35%;
  top:-10px;
  width:170%;
  height:40px;
  opacity:0.45;
  background-repeat:repeat-x;
  background-size:80px 40px;
  animation:drift 7s linear infinite;
}
.wave.w2{ opacity:0.25; animation-duration:10s; top:-6px}
.wave:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(20px 10px at 20px 20px, rgba(255,255,255,0.6) 40%, transparent 41%) 0 0/80px 40px repeat-x;
}
@keyframes drift{ to{ transform:translateX(50%)} }

.fish{
  position:absolute;
  width:36px; height:20px;
  border-radius:16px;
  background:#ffd166;
  top:40%; left:20px;
  box-shadow: inset -6px 0 0 rgba(0,0,0,0.12);
}
.fish:before{
  content:"";
  position:absolute; right:-10px; top:4px;
  width:0; height:0;
  border-left:12px solid #ffd166;
  border-top:6px solid transparent;
  border-bottom:6px solid transparent;
}
.fish .eye{
  position:absolute; left:8px; top:5px;
  width:6px; height:6px; background:#222; border-radius:50%;
}
.fish.f2{ top:65%; animation-duration:15s; animation-delay:2s; transform:scale(0.9) }
.fish.f3{ top:40%; animation-duration:18s; animation-delay:5s; transform:scale(1.1) }

.progress{
  width: min(92vw, 520px);
  display:flex;
  justify-content:center;
  margin-top:6px;
}
.progress-track{
  position:relative;
  width:100%;
  height:44px;
  border-radius:24px;
  background: rgba(10,16,26,0.6);
  box-shadow: inset 0 6px 18px rgba(0,0,0,0.32), 0 10px 24px rgba(0,0,0,0.22);
  overflow:hidden;
}
.progress-fill{
  position:absolute;
  top:0;
  left:0;
  height:100%;
  width:20%;
  min-width:20%;
  background: linear-gradient(180deg, rgba(111,214,224,0.92), rgba(10,42,71,0.82));
  background-size: 200% 100%;
  box-shadow: inset 0 4px 16px rgba(0,0,0,0.18);
  transition: width 720ms cubic-bezier(.2,.65,.3,1);
  border-radius:inherit;
  overflow:hidden;
  clip-path: polygon(0% 44%, 8% 38%, 16% 41%, 24% 35%, 32% 39%, 40% 33%, 48% 37%, 56% 31%, 64% 36%, 72% 30%, 80% 34%, 88% 29%, 96% 33%, 100% 30%, 100% 100%, 0% 100%);
  animation: fillSheen 9s ease-in-out infinite, fillRise 6s ease-in-out infinite;
}
.progress-fill::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(111,214,224,0.8) 0%, rgba(21,92,144,0.9) 100%);
  opacity:0.25;
  mix-blend-mode: screen;
  animation: fillBreath 7s ease-in-out infinite;
  pointer-events:none;
}
.progress-fill::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(120deg, rgba(255,255,255,0.18) 0%, transparent 40%, rgba(255,255,255,0.14) 70%, transparent 100%);
  mix-blend-mode: screen;
  opacity:0.7;
  pointer-events:none;
  animation: sheenSweep 11s ease-in-out infinite;
}
@keyframes fillSheen{
  0%,100%{ background-position: 0% 0; }
  50%{ background-position: 60% 0; }
}
@keyframes fillBreath{
  0%,100%{ opacity:0.25; }
  50%{ opacity:0.4; }
}
@keyframes fillRise{
  0%,100%{ transform: translateY(0); }
  50%{ transform: translateY(-3px); }
}
@keyframes sheenSweep{
  0%{ transform: translateX(-40%); opacity:0.1; }
  40%{ opacity:0.55; }
  50%{ transform: translateX(20%); opacity:0.3; }
  100%{ transform: translateX(60%); opacity:0.05; }
}
.progress-wave{
  position:absolute;
  top:-36px;
  left:0;
  width:230%;
  height:152%;
  pointer-events:none;
  background:
    radial-gradient(circle at 10% 60%, rgba(255,255,255,0.38) 0%, transparent 55%),
    radial-gradient(circle at 35% 40%, rgba(255,255,255,0.45) 0%, transparent 60%),
    radial-gradient(circle at 60% 50%, rgba(255,255,255,0.34) 0%, transparent 58%),
    radial-gradient(circle at 85% 45%, rgba(255,255,255,0.4) 0%, transparent 60%),
    linear-gradient(180deg, rgba(111,214,224,0.7), rgba(13,62,102,0.85));
  mix-blend-mode: screen;
  opacity:0.6;
  animation: waveSlide 14s linear infinite;
}
.progress-wave.wave2{
  top:-44px;
  opacity:0.38;
  animation: waveSlide 20s linear infinite reverse;
  animation-delay: -3.2s;
}
@keyframes waveSlide{
  0%{ transform: translate3d(0, 0px, 0); }
  20%{ transform: translate3d(-10%, -3px, 0); }
  40%{ transform: translate3d(-20%, 1px, 0); }
  60%{ transform: translate3d(-30%, -2px, 0); }
  80%{ transform: translate3d(-40%, 2px, 0); }
  100%{ transform: translate3d(-50%, 0px, 0); }
}
.cta{
  display:flex;
  gap:8px;
  justify-content:center;
  align-items:center;
  margin-top:8px;
}
.cta button,
button{
  padding:16px 32px;
  border-radius:26px;
  font-weight:600;
  cursor:pointer;
}

/* Toast para mensajes del easter-egg */
.toast{
  position:fixed;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  background:rgba(35,61,77,0.82);
  color:var(--card);
  padding:8px 14px;
  border-radius:999px;
  font-size:13px;
  opacity:0;
  pointer-events:none;
  transition:opacity 220ms ease, transform 220ms ease;
}
.toast.show{ opacity:1; transform:translateX(-50%) translateY(-6px); }

/* Small helper when play mode active */
.tank:active{ cursor:crosshair; }
footer{
  margin-top:18px;
  font-size:12px;
  color:rgba(255,244,236,0.78);
  text-shadow:0 1px 6px rgba(10,16,22,0.55);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  line-height:1.35;
  text-align:center;
}

footer .footer-brand{
  font-size:13px;
  font-weight:600;
  letter-spacing:0.02em;
}

footer .footer-rights{
  font-size:11px;
  letter-spacing:0.02em;
  color:rgba(255,244,236,0.68);
}
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0;
}

@media (max-width: 768px){
  .wrap{
    padding:18px;
    gap:20px;
  }
  .lead-panel{
    padding:16px 20px;
  }
  .tank{
    height:380px;
  }
  .progress{
    width: min(96vw, 500px);
  }
  .progress-track{
    height:38px;
  }
  input[type="email"]{
    width:min(88vw, 360px);
  }
}

@media (max-width: 540px){
  body{ text-align:center; }
  .wrap{
    padding:16px;
    gap:18px;
  }
  .headline{
    font-size: clamp(2.2rem, 9vw, 3.1rem);
    letter-spacing:0.025em;
  }
  .lead-panel{
    padding:15px 18px;
  }
  .tank{
    height:328px;
  }
  .progress{
    width:100%;
  }
  .progress-track{
    height:32px;
  }
  .cta{
    flex-direction:column;
    align-items:center;
    gap:12px;
  }
  input[type="email"]{
    width: clamp(240px, 88vw, 320px);
    margin:0 auto;
  }
  .cta button{
    width: clamp(220px, 84vw, 320px);
    text-align:center;
  }
  .toast{
    width: clamp(220px, 90vw, 320px);
    font-size:12px;
  }
}
