/* Pulso — estilos específicos da página inicial (hero + upload). */

.hero{ min-height:70vh; display:flex; flex-direction:column; justify-content:center; position:relative; padding:70px 0 50px; }
.hero::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(ellipse 60% 40% at 20% 15%, rgba(255,111,79,0.16), transparent 60%),
    radial-gradient(ellipse 50% 35% at 85% 75%, rgba(134,167,137,0.12), transparent 60%);
  pointer-events:none;
}
.hero .inner{ position:relative; z-index:1; }
.eyebrow{ font-family:var(--font-mono); font-size:13px; letter-spacing:0.12em; text-transform:uppercase; color:var(--coral); margin-bottom:22px; display:flex; align-items:center; gap:10px; }
.eyebrow .dot{ width:7px; height:7px; border-radius:50%; background:var(--coral); animation:pulse-dot 1.8s ease-in-out infinite; }
@keyframes pulse-dot{ 0%,100%{opacity:1; transform:scale(1);} 50%{opacity:0.4; transform:scale(1.4);} }

.hero h1{ font-size:clamp(38px, 6.5vw, 68px); line-height:1.02; max-width:820px; color:var(--pergaminho); }
.hero h1 em{ font-style:italic; color:var(--coral); }
.hero p.sub{ max-width:520px; margin-top:22px; font-size:17px; color:var(--pergaminho-dim); }

.upload-card{
  margin-top:36px; border:1.5px dashed var(--line); border-radius:18px; padding:36px;
  display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center;
  background:rgba(243,236,223,0.03); transition:border-color .2s ease, background .2s ease;
  cursor:pointer; max-width:620px;
}
.upload-card:hover, .upload-card.drag{ border-color:var(--coral); background:rgba(255,111,79,0.06); }
.upload-card input{ display:none; }
.upload-icon{ width:44px; height:44px; border-radius:50%; background:var(--coral); color:var(--noite); display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:700; }
.upload-card .title{ font-family:var(--font-display); font-size:19px; font-weight:600; }
.upload-card .hint{ font-size:14px; color:var(--pergaminho-dim); max-width:420px; }
.privacy-note{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--musgo); margin-top:6px; }

.howto{ margin-top:20px; max-width:620px; font-size:13.5px; color:var(--pergaminho-dim); }
.howto summary{ cursor:pointer; color:var(--pergaminho); font-weight:500; }
.howto ol{ margin:12px 0 0 18px; }
.howto li{ margin-bottom:6px; }

#results{ display:none; padding:60px 0 100px; }
.results-top{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:6px; }

@media (max-width:640px){
  .hero{ padding:50px 0 30px; }
  .upload-card{ padding:24px; }
}
