*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:#2b1217;min-height:100%}body{-webkit-font-smoothing:antialiased}:root{--wine-900:#2b1217;--wine-800:#3a181f;--rose-400:#e8788a;--rose-500:#d9536b;--paper:#fff4ea;--ink:#4a2a2f;--ink-soft:#7a5459;--font-script:"Dancing Script", cursive;--font-body:"Patrick Hand", "Segoe Print", cursive}.page{background:radial-gradient(ellipse at 50% 0%, #e8788a29, transparent 60%), var(--wine-900);min-height:100dvh;font-family:var(--font-body);place-items:center;padding:clamp(1.25rem,5vw,3rem);display:grid;position:relative;overflow:hidden}.sky{pointer-events:none;z-index:2;position:fixed;inset:0;overflow:hidden}.kiss{left:var(--x);font-size:var(--size);opacity:0;animation:rise var(--dur) ease-in forwards;will-change:transform, opacity;line-height:1;position:absolute;bottom:-48px}.kiss--burst{animation-timing-function:cubic-bezier(.2,.7,.3,1)}@keyframes rise{0%{opacity:0;transform:translate(0)rotate(0)}12%{opacity:.85}85%{opacity:.6}to{transform:translate(var(--sway), -110dvh) rotate(var(--tilt));opacity:0}}.note{z-index:1;background:var(--paper);width:min(100%,30rem);color:var(--ink);border-radius:6px;flex-direction:column;gap:1rem;padding:clamp(2rem,6vw,3rem) clamp(1.5rem,6vw,2.75rem);display:flex;position:relative;transform:rotate(-1.2deg);box-shadow:0 1px 2px #0003,0 18px 40px #00000059}.tape{background:#e8788a8c;border-left:2px dotted #ffffff80;border-right:2px dotted #ffffff80;width:96px;height:28px;position:absolute;top:-14px;left:50%;transform:translate(-50%)rotate(3deg)}.note__to{font-family:var(--font-script);color:var(--rose-500);font-size:1.6rem;font-weight:600}.note__title{font-family:var(--font-script);color:var(--ink);font-size:clamp(2.1rem,8vw,3rem);font-weight:700;line-height:1.2}.note__heart{color:var(--rose-500)}.note__body{color:var(--ink-soft);font-size:1.25rem;line-height:1.6}.kiss-btn{background:var(--rose-500);color:#fff;min-height:48px;font:400 1.2rem var(--font-body);cursor:pointer;border:none;border-radius:999px;align-self:flex-start;margin-top:.5rem;padding:.75rem 1.6rem;transition:background-color .2s,transform .15s}.kiss-btn:hover{background:#c4405a}.kiss-btn:active{transform:scale(.97)}.kiss-btn:focus-visible{outline:3px solid var(--wine-800);outline-offset:3px}.note__count{font-family:var(--font-script);color:var(--ink-soft);min-height:1.6rem;font-size:1.3rem;font-weight:600}@media (prefers-reduced-motion:reduce){.note{transform:none}.kiss-btn{transition:none}}
