/* PALETA: cambia estos valores y cambia toda la página */
:root{
  --rosa-50:#fff5f8; --rosa-100:#ffe4ec; --rosa-200:#ffc9d9;
  --rosa-400:#ff8fb1; --rosa-600:#e0578a; --rosa-800:#8a2c52;
  --texto:#5a2a3d; --radio:20px; --sombra:0 10px 30px rgba(224,87,138,.18);
  --f-titulo:"Playfair Display",serif; --f-texto:"Quicksand",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--f-texto);color:var(--texto);line-height:1.6;min-height:100vh;
  display:flex;flex-direction:column;
  background-color:var(--rosa-50);
  background-image:
    linear-gradient(180deg,var(--rosa-50) 0%,var(--rosa-100) 45%,var(--rosa-200) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Ctext x='10' y='35' font-size='22' opacity='0.05'%3E%F0%9F%92%97%3C/text%3E%3Ctext x='70' y='90' font-size='18' opacity='0.05'%3E%E2%9C%A6%3C/text%3E%3C/svg%3E");
  background-attachment:fixed,fixed;   /* un solo degradado + textura pareja: nada que "empalmar" entre secciones */
  cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ctext y='18' font-size='18'%3E💗%3C/text%3E%3C/svg%3E") 4 4,auto;
}
main{flex:1}
a,button,summary,.card{cursor:pointer}
h1,h2,h3{font-family:var(--f-titulo);color:var(--rosa-800);line-height:1.2}
img{max-width:100%;display:block}
a{color:var(--rosa-600)}

.btn{
  position:relative;overflow:hidden;display:inline-block;border:0;
  padding:.8rem 2rem;border-radius:999px;background:var(--rosa-600);color:#fff;
  font:600 1rem var(--f-texto);text-decoration:none;box-shadow:var(--sombra);
  transition:transform .2s,background .2s;
}
.btn:hover{transform:translateY(-3px);background:var(--rosa-800)}
.btn::after{ /* brillo al pasar el mouse */
  content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);
}
.btn:hover::after{left:130%;transition:left .6s}

.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s,transform .7s}
.reveal.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}