body{margin:0;font-family:Arial,sans-serif;background:#f0f0f0;overflow:hidden}#login-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(180deg,#fcc,#f99)}#heart{font-size:20vw;animation:pulse 2s infinite;cursor:default}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.login-card{width:min(440px,90%);background:#fff;border-radius:24px;padding:24px;box-shadow:0 16px 40px rgba(0,0,0,.12);text-align:center}.login-form{display:grid;grid-gap:16px;gap:16px;margin-top:24px}.login-form label{font-weight:700;text-align:left}.login-form input{width:100%;padding:12px 14px;border:1px solid #ccc;border-radius:12px;font-size:1rem}.login-form button{padding:12px 18px;background:#f66;color:#fff;border:none;border-radius:12px;font-size:1rem;cursor:pointer}.error-message{color:#b00020;margin:0}#main-content{width:100vw;height:100vh}#main-content h1{margin:0;padding:10px;text-align:center;font-size:1.5rem;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.1)}#timeline{overflow-y:scroll;scroll-snap-type:y mandatory;scroll-behavior:smooth}#timeline,.event{height:calc(100vh - 50px)}.event{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px;background:#fff;scroll-snap-align:start;box-sizing:border-box}.event-text{font-weight:700;font-size:2rem;text-align:center;margin-bottom:10px}.event-date{color:#666;font-size:1.5rem;margin-bottom:20px}.event-duration{font-size:2rem;color:#333;text-align:center}