html, body { margin: 0; height: 100%; }
body {
    font-family: Arial, sans-serif;
    background: linear-gradient(135deg, #1a1a2e, #16213e);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    padding: 20px; box-sizing: border-box;
}
.accesso { width: 100%; max-width: 340px; text-align: center; }
.cuore {
    width: 84px; height: 84px;
    filter: drop-shadow(0 0 14px rgba(255,77,109,0.7));
    animation: battito 1.4s ease-in-out infinite;
}
@keyframes battito {
    0%, 100% { transform: scale(1); }
    25% { transform: scale(1.12); }
    40% { transform: scale(1); }
    60% { transform: scale(1.06); }
}
h1 {
    font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-weight: 600;
    font-size: 30px; margin: 14px 0 26px; color: #ff758c;
    text-shadow: 0 0 10px rgba(255,117,140,0.6);
}
form { display: flex; flex-direction: column; gap: 14px; text-align: left; }
label span { display: block; font-size: 13px; color: #d8c3ea; margin: 0 0 6px 4px; }
input {
    width: 100%; box-sizing: border-box; font-size: 16px;
    padding: 13px 16px; border-radius: 14px;
    border: 1px solid rgba(255,255,255,0.18); background: rgba(255,255,255,0.08); color: #fff;
    outline: none;
}
input:focus { border-color: #ff758c; box-shadow: 0 0 0 3px rgba(255,117,140,0.25); }
button {
    margin-top: 8px; min-height: 48px; font-size: 17px; font-weight: bold;
    border: none; border-radius: 30px; cursor: pointer;
    background: #ff4d6d; color: #fff; box-shadow: 0 0 22px rgba(255,77,109,0.55);
}
button:disabled { opacity: 0.6; cursor: default; }
.errore { margin: 0; color: #ffb3c1; font-size: 14px; text-align: center; }
