#typed-line{font-size:30px;font-style:italic;font-weight:700}#typed-line .char{opacity:0;animation:.4s forwards charIn,3s ease-in-out infinite colorCycle;display:inline-block}#typed-line .caret{background:#fff;width:2px;animation:.8s step-end infinite blink;display:inline-block}@keyframes charIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes colorCycle{0%{color:#ff5f7e}20%{color:#ffb3c6}40%{color:#c9a9ff}60%{color:#ff8a5c}80%{color:#ffe066}to{color:#ff5f7e}}@keyframes blink{50%{opacity:0}}a#btn-start{color:#fffaf0;border-radius:5px;padding:5px 20px;text-decoration:none}.btn-pulse{animation:.6s ease-in-out btnPulse}@keyframes btnPulse{0%{transform:scale(1)}30%{transform:scale(1.15)}60%{transform:scale(.95)}to{transform:scale(1)}}.heart-burst-layer{pointer-events:none;z-index:9999;position:fixed;inset:0;overflow:hidden}.burst-heart{opacity:0;filter:drop-shadow(0 0 6px #ff69b499);animation-name:heartFloat;animation-timing-function:ease-out;animation-fill-mode:forwards;position:absolute;bottom:20%;transform:translate(-50%)}@keyframes heartFloat{0%{opacity:0;transform:translate(-50%)translateY(0)scale(.5)rotate(0)}15%{opacity:1;transform:translate(-50%)translateY(-40px)scale(1.1)rotate(5deg)}to{opacity:0;transform:translateX(calc(-50% + var(--drift))) translateY(-420px) scale(.8) rotate(-8deg)}}
