Kamylinha foi às redes sociais pedir desculpas após a repercussão de fotos publicadas em comemoração aos dois meses da filha, Kemily. A influenciadora digital, de 19 anos, retirou as imagens do ar depois de receber críticas de internautas, que consideraram que a produção escolhida para a bebê trazia elementos associados à adultização infantil. Vale lembrar que a jovem passou por problemas relacionados ao tema, quando fazia parte da “Turma do Hytalo”.

Nos registros, a criança aparecia usando uma roupa com estampa de oncinha, além de acessórios que chamaram atenção dos seguidores, entre eles uma chupeta em formato de boca com batom vermelho. A publicação provocou uma série de comentários e levou Kamylinha a reconsiderar a postagem.

(function () {
var AD_UNIT = ‘ld-m-art-r1-01’;
var PLACEMENT = ‘846612’;
var DEVICE = ‘mobile’;
var MIN_H = 280;
var done = false;

function rightDevice() {
var isMobile = window.matchMedia
? window.matchMedia(‘(max-width: 767px)’).matches
: (document.documentElement.clientWidth || 0) < 768;

return DEVICE === 'mobile' ? isMobile : !isMobile;
}

function box() {
return document.getElementById(AD_UNIT);
}

function hide() {
var b = box();
if (b) b.style.display = 'none';
}

function register() {
if (done) return;

done = true;

if (!rightDevice()) {
hide();
return;
}

var b = box();

if (b) {
b.style.minHeight = MIN_H + 'px';
}

window.ANConfig = window.ANConfig || {};
window.ANConfig.placements = window.ANConfig.placements || [];

window.ANConfig.placements.push({
adUnitId: AD_UNIT,
propertyId: '105130',
placementId: PLACEMENT,
data: {},
consent: true,

onLoad: function (adUnitId) {},

onFail: function (adUnitId) {
hide();
}
});

setTimeout(function () {
var c = box();

if (c && !c.getElementsByTagName('iframe').length) {
hide();
}
}, 6000);
}

var C = window.__ldAdConsent;

if (!C) {

C = window.__ldAdConsent = {
subs: [],
fired: false
};

C.granted = function () {
var v = window.LD_AD_CONSENT;

return v === true ||
v === 1 ||
v === 'true';
};

C.fire = function () {

if (C.fired) return;

C.fired = true;

if (C.poll) {
clearInterval(C.poll);
C.poll = null;
}

for (var i = 0; i < C.subs.length; i++) {
try {
C.subs[i]();
} catch (e) {}
}

var inject = function () {

if (document.getElementById('ap-js')) {
return;
}

var ver = new Date()
.toISOString()
.split(':')[0]
.replace(/D/g, '');

var apjs = document.createElement('script');

apjs.type = 'text/javascript';
apjs.async = true;
apjs.setAttribute('id', 'ap-js');

apjs.src =
'https://central-brazil.ap.giraffa.tech/js/ap-gjanout.js?v=' + ver;

document.head.appendChild(apjs);
};

if (document.readyState === 'loading') {

document.addEventListener(
'DOMContentLoaded',
function () {
setTimeout(inject, 0);
}
);

} else {

setTimeout(inject, 0);

}
};

function onSignal(e) {

if (
(e && e.detail === true) ||
C.granted()
) {
C.fire();
}

}

window.addEventListener(
'ld-ad-consent',
onSignal
);

document.addEventListener(
'ld-ad-consent',
onSignal
);

if (typeof window.__tcfapi === 'function') {

window.__tcfapi(
'addEventListener',
2,
function (tcData, success) {

if (!success || !tcData) {
return;
}

if (
tcData.eventStatus !== 'tcloaded' &&
tcData.eventStatus !== 'useractioncomplete'
) {
return;
}

if (
tcData.purpose &&
tcData.purpose.consents &&
tcData.purpose.consents[1]
) {
C.fire();
}

}
);

}

C.poll = setInterval(function () {

if (C.fired) {

clearInterval(C.poll);
C.poll = null;
return;

}

if (C.granted()) {
C.fire();
}

}, 250);
}

C.subs.push(register);

if (C.fired) {

register();

} else if (C.granted()) {

C.fire();

}

})();

Veja as fotos

Kamylinha e Andyn apagam foto da filha após comentários sobre adultizaçãoReprodução: Instagram/@kamysmarya
Kamyla MariaReprodução: Instagram/@kamysmarya
Kamylinha Santos e filhaReprodução: Instagram/@kamysmarya
Kamylinha fica noiva de AndynReprodução: Instagram/@kamysmarya
KamylinhaReprodução: Instagram/@kamysmarya

(function () {
var AD_UNIT = ‘ld-m-art-r1-02’;
var PLACEMENT = ‘846681’;
var DEVICE = ‘mobile’; /* ‘mobile’ or ‘desktop’ */
var MIN_H = 280; /* tallest size listed for this position */
var done = false;

/* This block belongs to one device. Mobile and desktop blocks may both sit in the
same responsive template: each checks the viewport and only the matching one
asks for an ad, so they never both render. Breakpoint 768px, tablets count as
desktop. If your template already renders per device server-side this is simply
a second guard and changes nothing. */
function rightDevice() {
var isMobile = window.matchMedia
? window.matchMedia(‘(max-width: 767px)’).matches
: (document.documentElement.clientWidth || 0) < 768;
return DEVICE === 'mobile' ? isMobile : !isMobile;
}

function box() { return document.getElementById(AD_UNIT); }
function hide() { var b = box(); if (b) b.style.display = 'none'; }

/* Registers this position. Never called without a positive consent answer. */
function register() {
if (done) return;
done = true;
if (!rightDevice()) { hide(); return; }
var b = box();
if (b) b.style.minHeight = MIN_H + 'px'; /* reserve only now, never before */
window.ANConfig = window.ANConfig || {};
window.ANConfig.placements = window.ANConfig.placements || [];
window.ANConfig.placements.push({
adUnitId: AD_UNIT,
propertyId: '105130',
placementId: PLACEMENT,
data: {},
consent: true,
onLoad: function (adUnitId) {},
onFail: function (adUnitId) { hide(); }
});
/* Safety net: if nothing has rendered here shortly, release the space.
No position can leave a permanent blank gap, whatever goes wrong. */
setTimeout(function () {
var c = box();
if (c && !c.getElementsByTagName('iframe').length) hide();
}, 6000);
}

/* One shared coordinator per page, created by whichever block runs first.
Every block registers with it, so when consent arrives they all register in
the SAME tick and the loader is injected once, afterwards. The loader drains
its queue once, so a block that registered late would never be served. */
var C = window.__ldAdConsent;
if (!C) {
C = window.__ldAdConsent = { subs: [], fired: false };

C.granted = function () {
var v = window.LD_AD_CONSENT;
return v === true || v === 1 || v === 'true';
};

C.fire = function () {
if (C.fired) return;
C.fired = true;
if (C.poll) { clearInterval(C.poll); C.poll = null; }
for (var i = 0; i < C.subs.length; i++) {
try { C.subs[i](); } catch (e) {}
}
var inject = function () { /* now, with all of them queued */
if (document.getElementById('ap-js')) return;
var ver = new Date().toISOString().split(':')[0].replace(/D/g, '');
var apjs = document.createElement('script');
apjs.type = 'text/javascript';
apjs.async = true;
apjs.setAttribute('id', 'ap-js');
apjs.src = 'https://central-brazil.ap.giraffa.tech/js/ap-gjanout.js?v=' + ver;
document.head.appendChild(apjs);
};
/* The loader drains its queue once, so it must not be fetched while the page is
still parsing: blocks further down would register after the drain and be lost.
Consent known before the body parses is the normal returning-visitor case. */
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', function () { setTimeout(inject, 0); });
} else {
setTimeout(inject, 0);
}
};

function onSignal(e) {
if ((e && e.detail === true) || C.granted()) C.fire();
}
window.addEventListener('ld-ad-consent', onSignal);
document.addEventListener('ld-ad-consent', onSignal); /* the event does not bubble */

/* 2. IAB TCF v2, used automatically if it ever resolves. Purpose 1 gates storing
and accessing information on the device, which ad serving requires. Consent
is required whether or not gdprApplies is set: gdprApplies being false is
never treated as permission. (Measured here 28 Aug 2026: it is true.) */
if (typeof window.__tcfapi === 'function') {
window.__tcfapi('addEventListener', 2, function (tcData, success) {
if (!success || !tcData) return;
if (tcData.eventStatus !== 'tcloaded' &&
tcData.eventStatus !== 'useractioncomplete') return;
if (tcData.purpose && tcData.purpose.consents && tcData.purpose.consents[1]) C.fire();
});
}

/* 1. Your signal. Set window.LD_AD_CONSENT = true when consent is known.
The order does not matter and there is no time limit: this watch runs
until consent arrives or the page is closed. */
C.poll = setInterval(function () {
if (C.fired) { clearInterval(C.poll); C.poll = null; return; }
if (C.granted()) C.fire();
}, 250);
}

C.subs.push(register);
if (C.fired) register(); /* consent already given before this block parsed */
else if (C.granted()) C.fire();
})();

Mais tarde, após pedir desculpas aos seguidores, Kamylinha apareceu bastante emocionada. Enquanto o marido dava banho na bebê, ela contou que ficou sozinha refletindo sobre toda a repercussão. “Eu fico aqui repensando no erro, porque eu fico me sentindo péssima como mãe. Porque eu odeio errar”, desabafou, chorando.

A influenciadora disse que a situação ganhou um peso ainda maior por envolver a filha, que nasceu há apenas dois meses. “E ainda mais com minha filha que acabou de chegar no mundo. Minha cabeça fica, sabe, um turbilhão de coisa”, declarou.

Chorando, Kamylinha afirmou que uma de suas maiores preocupações é proteger Kemily das situações negativas que podem surgir com a exposição pública. “Eu não quero jamais que minha filha passe por nada de crueldade desse mundo”, afirmou. Apesar do abalo, ela disse ser grata pelas pessoas que a aconselharam e reconhecer que hoje consegue ouvir críticas de maneira diferente.

Horas depois, ela admitiu que, ao rever as imagens sob outra perspectiva, entendeu as críticas. “A gente errou. Somos seres humanos, erramos e estamos aqui todo dia tentando acertar”, declarou, citando o marido, Andyn.

(function () {
var AD_UNIT = ‘ld-m-art-r1-03’;
var PLACEMENT = ‘846688’;
var DEVICE = ‘mobile’; /* ‘mobile’ or ‘desktop’ */
var MIN_H = 280; /* tallest size listed for this position */
var done = false;

/* This block belongs to one device. Mobile and desktop blocks may both sit in the
same responsive template: each checks the viewport and only the matching one
asks for an ad, so they never both render. Breakpoint 768px, tablets count as
desktop. If your template already renders per device server-side this is simply
a second guard and changes nothing. */
function rightDevice() {
var isMobile = window.matchMedia
? window.matchMedia(‘(max-width: 767px)’).matches
: (document.documentElement.clientWidth || 0) < 768;
return DEVICE === 'mobile' ? isMobile : !isMobile;
}

function box() { return document.getElementById(AD_UNIT); }
function hide() { var b = box(); if (b) b.style.display = 'none'; }

/* Registers this position. Never called without a positive consent answer. */
function register() {
if (done) return;
done = true;
if (!rightDevice()) { hide(); return; }
var b = box();
if (b) b.style.minHeight = MIN_H + 'px'; /* reserve only now, never before */
window.ANConfig = window.ANConfig || {};
window.ANConfig.placements = window.ANConfig.placements || [];
window.ANConfig.placements.push({
adUnitId: AD_UNIT,
propertyId: '105130',
placementId: PLACEMENT,
data: {},
consent: true,
onLoad: function (adUnitId) {},
onFail: function (adUnitId) { hide(); }
});
/* Safety net: if nothing has rendered here shortly, release the space.
No position can leave a permanent blank gap, whatever goes wrong. */
setTimeout(function () {
var c = box();
if (c && !c.getElementsByTagName('iframe').length) hide();
}, 6000);
}

/* One shared coordinator per page, created by whichever block runs first.
Every block registers with it, so when consent arrives they all register in
the SAME tick and the loader is injected once, afterwards. The loader drains
its queue once, so a block that registered late would never be served. */
var C = window.__ldAdConsent;
if (!C) {
C = window.__ldAdConsent = { subs: [], fired: false };

C.granted = function () {
var v = window.LD_AD_CONSENT;
return v === true || v === 1 || v === 'true';
};

C.fire = function () {
if (C.fired) return;
C.fired = true;
if (C.poll) { clearInterval(C.poll); C.poll = null; }
for (var i = 0; i < C.subs.length; i++) {
try { C.subs[i](); } catch (e) {}
}
var inject = function () { /* now, with all of them queued */
if (document.getElementById('ap-js')) return;
var ver = new Date().toISOString().split(':')[0].replace(/D/g, '');
var apjs = document.createElement('script');
apjs.type = 'text/javascript';
apjs.async = true;
apjs.setAttribute('id', 'ap-js');
apjs.src = 'https://central-brazil.ap.giraffa.tech/js/ap-gjanout.js?v=' + ver;
document.head.appendChild(apjs);
};
/* The loader drains its queue once, so it must not be fetched while the page is
still parsing: blocks further down would register after the drain and be lost.
Consent known before the body parses is the normal returning-visitor case. */
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', function () { setTimeout(inject, 0); });
} else {
setTimeout(inject, 0);
}
};

function onSignal(e) {
if ((e && e.detail === true) || C.granted()) C.fire();
}
window.addEventListener('ld-ad-consent', onSignal);
document.addEventListener('ld-ad-consent', onSignal); /* the event does not bubble */

/* 2. IAB TCF v2, used automatically if it ever resolves. Purpose 1 gates storing
and accessing information on the device, which ad serving requires. Consent
is required whether or not gdprApplies is set: gdprApplies being false is
never treated as permission. (Measured here 28 Aug 2026: it is true.) */
if (typeof window.__tcfapi === 'function') {
window.__tcfapi('addEventListener', 2, function (tcData, success) {
if (!success || !tcData) return;
if (tcData.eventStatus !== 'tcloaded' &&
tcData.eventStatus !== 'useractioncomplete') return;
if (tcData.purpose && tcData.purpose.consents && tcData.purpose.consents[1]) C.fire();
});
}

/* 1. Your signal. Set window.LD_AD_CONSENT = true when consent is known.
The order does not matter and there is no time limit: this watch runs
until consent arrives or the page is closed. */
C.poll = setInterval(function () {
if (C.fired) { clearInterval(C.poll); C.poll = null; return; }
if (C.granted()) C.fire();
}, 250);
}

C.subs.push(register);
if (C.fired) register(); /* consent already given before this block parsed */
else if (C.granted()) C.fire();
})();

Adultização

A repercussão do episódio chamou atenção por causa da própria trajetória de Kamylinha na internet. O nome da influenciadora ganhou projeção nacional durante discussões sobre a exposição e a adultização de adolescentes nas redes sociais. Ela esteve entre as jovens mencionadas no conteúdo publicado pelo influenciador Felca sobre o tema e sobre a atuação de Hytalo Santos, atualmente preso.