*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#4e405b}body{color:#fff8f4}main{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;padding:60px 22px}.winter{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.veil{position:absolute;inset:0;background:linear-gradient(180deg,#3d294a35 0%,#3d294a40 35%,#35294070 100%)}.message{position:relative;z-index:2;text-align:center;max-width:100%;padding:30px 10px;animation:arrive 1.8s ease-out both;text-shadow:0 3px 28px #49334c60}.heart{width:42px;height:38px;fill:none;stroke:#fff4e8;stroke-width:1.5;margin-bottom:28px;filter:drop-shadow(0 2px 10px #674b6460)}h1{font-family:Georgia,'Times New Roman',serif;font-weight:normal;margin:0;line-height:1.05}.love{display:block;font-size:clamp(68px,10vw,150px);font-style:italic;letter-spacing:-4px}.dearest{display:block;font:12px/1 Arial,sans-serif;letter-spacing:8px;text-transform:uppercase;margin:28px 0 21px;padding-left:8px}.name{display:block;font-size:clamp(37px,6.1vw,90px);letter-spacing:-2px}.line{display:block;width:60px;height:1px;background:#fff8f4a0;margin:40px auto 0}.snow{position:absolute;inset:0;pointer-events:none}.snow i{position:absolute;top:-15px;left:8%;height:4px;width:4px;background:#fff;border-radius:50%;opacity:.45;animation:fall 15s linear infinite}.snow i:nth-child(2){left:18%;animation-delay:-4s;animation-duration:19s}.snow i:nth-child(3){left:29%;animation-delay:-10s;width:2px;height:2px}.snow i:nth-child(4){left:38%;animation-delay:-7s;animation-duration:21s}.snow i:nth-child(5){left:47%;animation-delay:-14s}.snow i:nth-child(6){left:56%;animation-delay:-3s;width:2px;height:2px}.snow i:nth-child(7){left:65%;animation-delay:-11s;animation-duration:18s}.snow i:nth-child(8){left:74%;animation-delay:-9s}.snow i:nth-child(9){left:83%;animation-delay:-6s;width:2px;height:2px}.snow i:nth-child(10){left:92%;animation-delay:-12s;animation-duration:22s}.snow i:nth-child(11){left:12%;animation-delay:-17s}.snow i:nth-child(12){left:68%;animation-delay:-19s;width:3px;height:3px}@keyframes fall{to{transform:translate(35px,110vh)}}@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.winter{object-position:54% center}.love{letter-spacing:-2px}.name{letter-spacing:-1px}.dearest{margin-top:25px}.message{padding:20px 0}.heart{margin-bottom:25px}}@media(prefers-reduced-motion:reduce){.message,.snow i{animation:none}.snow{display:none}}
