:root{ --blur-bg: rgba(255,255,255,0.7); }
*{ box-sizing:border-box; }
html,body{ height:100%; margin:0; }
body{
  font-family:'Segoe UI', system-ui, Roboto, Arial, sans-serif;
  color:#2b2b2b; overflow-x:hidden;
  background:#fff;
}

/* Canvas da neve */
#snow{ position:fixed; inset:0; z-index:1; pointer-events:none; }

/* Fundo natalino */
.bg-natal{
  position:fixed; inset:0; z-index:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.55), rgba(255,255,255,0.75)),
    url('../img/bg-velas.jpg') center/cover no-repeat;
  filter: brightness(1.05) saturate(115%);
}

/* Conteúdo */
.content-wrap{ position:relative; z-index:2; }

/* Espaço entre o topo da página e o bloco da foto+card */
/* Foto sozinha */
.foto-msg-wrap {
  text-align: center;
  margin-bottom: -2px;  /* faz a foto "encostar" no card */
  position: relative;
  z-index: 2;
}

.foto-ring {
  width: 160px;
  height: 160px;
  border-radius: 50%;
  object-fit: cover;
  border: 6px solid #b30000; /* borda vermelha */
  background: #fff;
  box-shadow: 0 8px 28px rgba(0,0,0,.18);
}

/* Card abaixo */
.msg-card {
  background: rgba(255,255,255,0.9);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-radius: 18px;
  padding: 2rem 1.5rem;
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
  max-width: 600px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  text-align: center;
}

.titulo-msg {
  font-weight: 800;
  margin-bottom: .5rem;
  color: #b30000;
}


/* Botões modernos arredondados */
.btn-modern {
  border:none;
  border-radius:50px;
  padding:0.9rem 1.8rem;
  font-size:1.1rem;
  font-weight:600;
  color:#fff !important;
  background:linear-gradient(135deg,#b30000,#ffd166);
  box-shadow:0 4px 15px rgba(0,0,0,0.2);
  transition:all .3s ease;
}
.btn-modern:hover {
  transform:translateY(-3px) scale(1.05);
  background:linear-gradient(135deg,#e63946,#ffd166);
}

/* Linha decorativa */
.section-title {
  font-weight:800;
  color:#b30000;
  position:relative;
  display:inline-block;
}
.section-title::after {
  content:"";
  display:block;
  width:80px; height:4px;
  background:linear-gradient(90deg,#b30000,#ffd166);
  margin:12px auto 0;
  border-radius:2px;
}

/* Sessão extra */
.bg-blur{
  background:var(--blur-bg);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,0.7);
}

/* ====== Animações ====== */
.reveal{ 
  opacity:0; 
  animation-duration:.9s; 
  animation-fill-mode:both; 
  animation-timing-function:cubic-bezier(.2,.6,.2,1); 
  animation-delay:var(--delay,0s); 
  animation-play-state:paused;
}

.fade-up{ animation-name:fadeUp; }
.fade-in{ animation-name:fadeIn; }
.zoom-in{ animation-name:zoomIn; }
.flip-left{ animation-name:flipLeft; }
.flip-right{ animation-name:flipRight; }
.flip-up{ animation-name:flipUp; }

@keyframes fadeUp{ from{opacity:0;transform:translateY(18px);} to{opacity:1;transform:none;} }
@keyframes fadeIn{ from{opacity:0;} to{opacity:1;} }
@keyframes zoomIn{ from{opacity:0;transform:scale(.96);} to{opacity:1;transform:scale(1);} }
@keyframes flipLeft{ from{opacity:0;transform:rotateY(-12deg);} to{opacity:1;transform:none;} }
@keyframes flipRight{ from{opacity:0;transform:rotateY(12deg);} to{opacity:1;transform:none;} }
@keyframes flipUp{ from{opacity:0;transform:rotateX(10deg);} to{opacity:1;transform:none;} }

/* Responsivo */
@media (max-width:767px){
  .foto-ring{ width:180px; height:180px; margin-bottom:-40px; }
  .msg-card{ padding:1.1rem 1.2rem; }
}
