*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:Quicksand,Segoe UI,Helvetica,Arial,sans-serif;background:radial-gradient(130% 130% at 50% 28%,#ffe3ec,#ffcede 48%,#ffb3c9);color:#a13a58;overflow:hidden;-webkit-font-smoothing:antialiased}.page{position:relative;width:100vw;height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center}.page:before{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(45% 40% at 30% 30%,#fff0f599,#fff0f500 70%);animation:drift 26s ease-in-out infinite alternate;pointer-events:none}.page:after{content:"";position:absolute;width:min(78vw,44rem);height:min(50vw,26rem);border-radius:50%;background:radial-gradient(closest-side,#fff3f799,#fff3f700);pointer-events:none}.brand{position:absolute;top:clamp(1.1rem,4vh,2.2rem);left:0;right:0;z-index:1;text-align:center;font-family:Caveat,Segoe Script,Comic Sans MS,cursive;font-weight:700;font-size:clamp(2.1rem,6vw,3.1rem);letter-spacing:.02em;color:#b03a5d;transform:rotate(-2deg);text-shadow:0 2px 0 rgba(255,255,255,.45);-webkit-user-select:none;user-select:none;animation:fade-in-tilt 1.2s ease-out both}.brand-heart{display:inline-block;color:#e94f7d;animation:heartbeat 1.6s ease-in-out infinite}.countdown-wrap{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:clamp(1.1rem,3.5vh,1.9rem);padding:0 1rem;-webkit-user-select:none;user-select:none;animation:fade-in 1.2s ease-out both}.countdown{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:clamp(.45rem,1.6vw,1.1rem)}.unit-group{display:flex;align-items:center;gap:clamp(.45rem,1.6vw,1.1rem)}.unit{display:flex;flex-direction:column;align-items:center;gap:clamp(.3rem,1vh,.55rem);min-width:clamp(4.6rem,13.5vw,9.5rem);padding:clamp(.85rem,2.4vw,1.5rem) clamp(.5rem,1.6vw,1.2rem) clamp(.8rem,2.2vw,1.3rem);background:#ffffff6b;border:1.5px solid rgba(255,255,255,.75);border-radius:clamp(1.3rem,3.2vw,2rem);box-shadow:0 10px 26px #c73e6829,inset 0 1px #ffffffa6;animation:bob 4.6s ease-in-out infinite}.unit-group:nth-child(2) .unit{animation-delay:-1.2s}.unit-group:nth-child(3) .unit{animation-delay:-2.3s}.unit-group:nth-child(4) .unit{animation-delay:-3.4s}.value{font-family:"Baloo 2",Quicksand,Segoe UI,sans-serif;font-size:clamp(2.5rem,8.5vw,5.6rem);font-weight:600;line-height:1.05;color:#d64d78;font-variant-numeric:tabular-nums;text-shadow:0 2px 0 rgba(255,255,255,.55)}.value-num{display:inline-block;animation:pop .42s cubic-bezier(.3,1.6,.5,1) both}.label{font-size:clamp(.56rem,1.5vw,.78rem);font-weight:700;letter-spacing:.32em;text-indent:.32em;text-transform:uppercase;opacity:.6}.sep{font-size:clamp(.85rem,2.2vw,1.35rem);line-height:1;color:#e0567f;opacity:.75;text-shadow:0 1px 0 rgba(255,255,255,.6);animation:heartbeat 1.6s ease-in-out infinite}.subtitle{font-family:Caveat,Segoe Script,Comic Sans MS,cursive;font-weight:600;font-size:clamp(1.35rem,4.2vw,1.9rem);color:#a8405f;opacity:.85;text-align:center;transform:rotate(-1deg);text-shadow:0 1px 0 rgba(255,255,255,.4)}.complete-card{text-align:center;padding:clamp(1.6rem,5vw,2.6rem) clamp(1.8rem,7vw,3.6rem);background:#ffffff73;border:1.5px solid rgba(255,255,255,.8);border-radius:clamp(1.6rem,4vw,2.4rem);box-shadow:0 12px 30px #c73e682e,inset 0 1px #ffffffa6}.complete{font-family:"Baloo 2",Quicksand,Segoe UI,sans-serif;font-size:clamp(2rem,7vw,4.4rem);font-weight:600;color:#d64d78;text-shadow:0 2px 0 rgba(255,255,255,.55)}.complete-heart{display:inline-block;color:#e94f7d;animation:heartbeat 1.6s ease-in-out infinite}.complete-sub{margin-top:.4em;font-family:Caveat,Segoe Script,Comic Sans MS,cursive;font-weight:700;font-size:clamp(1.5rem,5vw,2.4rem);color:#a8405f;transform:rotate(-1.5deg)}.hearts{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.heart,.floating-object{position:absolute;top:0;left:0;will-change:transform}.floating-polaroid-shell,.floating-movie-shell{z-index:2;pointer-events:auto}.heart-fg path{stroke:#ffffffd9;stroke-width:1.6;stroke-linejoin:round;paint-order:stroke}.heart-text{font-family:Quicksand,Segoe UI,sans-serif;font-size:2.6px;font-weight:700;letter-spacing:.05em;fill:#fff;opacity:.92;dominant-baseline:middle}.polaroid{container-type:inline-size;position:relative;width:100%;padding:.45rem .45rem .3rem;background:#fffdfa;border:none;border-radius:.35rem;box-shadow:0 10px 24px #c73e6847;transform:rotate(-6deg);transition:transform .35s cubic-bezier(.3,1.4,.5,1),box-shadow .35s ease;-webkit-user-select:none;user-select:none;cursor:pointer;animation:polaroid-in 1.2s ease-out .5s both}.polaroid:hover,.polaroid:focus-visible{transform:rotate(-2deg) scale(1.07);box-shadow:0 16px 34px #c73e6857}.polaroid:active{transform:rotate(-2deg) scale(1.01)}.polaroid:before{content:"";position:absolute;top:-.6rem;left:50%;width:3.2rem;height:1.15rem;background:#ffd6e4a6;transform:translate(-50%) rotate(3deg);box-shadow:0 1px 3px #c73e6826}.polaroid img{display:block;width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:.2rem;filter:saturate(.9)}.polaroid-caption{display:block;padding:.15rem 0 .1rem;font-family:Caveat,Segoe Script,Comic Sans MS,cursive;font-weight:600;font-size:clamp(.55rem,13cqw,1.35rem);color:#b03a5d;text-align:center;text-wrap:balance;overflow-wrap:anywhere;word-break:break-word;transform:rotate(-1deg)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#ffcddc73;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:lightbox-in .3s ease-out both}.lightbox-closing{animation:lightbox-out .26s ease-in both}.polaroid-big{position:relative;width:min(80vw,24rem);padding:.8rem .8rem .45rem;background:#fffdfa;border-radius:.5rem;box-shadow:0 24px 60px #b4285a59;animation:card-pop .34s cubic-bezier(.3,1.5,.5,1) both}.lightbox-closing .polaroid-big{animation:card-shrink .26s ease-in both}.polaroid-big img{display:block;width:100%;max-height:65dvh;aspect-ratio:3 / 4;object-fit:cover;border-radius:.3rem}.polaroid-big figcaption{padding:.3rem 0 .15rem;font-family:Caveat,Segoe Script,Comic Sans MS,cursive;font-weight:700;font-size:clamp(1.5rem,5vw,2rem);color:#b03a5d;text-align:center;text-wrap:balance;overflow-wrap:anywhere;word-break:break-word;transform:rotate(-1deg)}.polaroid-date{display:block;margin-top:-.15rem;padding-bottom:.2rem;font-family:Quicksand,Segoe UI,sans-serif;font-size:.85rem;font-weight:600;color:#c76582;text-align:center}.movie-icon-frame{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:3 / 4;padding:18%;background:linear-gradient(160deg,#ffd6e4,#ff9ebc);border-radius:.2rem;color:#fff}.movie-icon-frame svg{width:100%;height:100%}.movie-list-card{position:relative;width:min(90vw,28rem);max-height:80dvh;display:flex;flex-direction:column;padding:1.1rem 1rem .9rem;background:#fffdfa;border-radius:.6rem;box-shadow:0 24px 60px #b4285a59;animation:card-pop .34s cubic-bezier(.3,1.5,.5,1) both}.lightbox-closing .movie-list-card{animation:card-shrink .26s ease-in both}.movie-list-title{padding:0 1.6rem .6rem;font-family:Caveat,Segoe Script,Comic Sans MS,cursive;font-weight:700;font-size:clamp(1.4rem,4.5vw,1.9rem);color:#b03a5d;text-align:center;transform:rotate(-1deg)}.movie-list-scroll{overflow-y:auto;border-top:1.5px solid rgba(199,62,104,.15)}.movie-table{width:100%;border-collapse:collapse;font-family:Quicksand,Segoe UI,sans-serif}.movie-table th,.movie-table td{padding:.55rem .4rem;font-size:.9rem;text-align:center}.movie-table-title-col{text-align:left;overflow-wrap:anywhere}.movie-table thead th{position:sticky;top:0;background:#fffdfa;font-weight:700;color:#b03a5d;border-bottom:1.5px solid rgba(199,62,104,.2)}.movie-table tbody tr:nth-child(2n){background:#ffd6e440}.movie-table tbody td{color:#7a2f45}.lightbox-close{position:absolute;top:-.8rem;right:-.8rem;width:2.3rem;height:2.3rem;border:none;border-radius:50%;background:#fff;color:#d64d78;font-size:1.45rem;line-height:1;box-shadow:0 4px 12px #b4285a4d;cursor:pointer;transition:transform .2s ease}.lightbox-close:hover{transform:scale(1.12)}.sparkles{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}.sparkle{position:absolute;color:#fff;opacity:0;text-shadow:0 0 8px rgba(255,214,228,.9);animation:twinkle 3s ease-in-out infinite}.sparkle-pink{color:#ffa9c3}.pop-layer{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:3}.pop-heart{position:absolute;line-height:1;transform:translate(-50%,-50%);text-shadow:0 1px 0 rgba(255,255,255,.5);animation:pop-float .9s ease-out forwards}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-tilt{0%{opacity:0;transform:rotate(-2deg) translateY(8px)}to{opacity:1;transform:rotate(-2deg) translateY(0)}}@keyframes polaroid-in{0%{opacity:0}to{opacity:1}}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}@keyframes lightbox-out{0%{opacity:1}to{opacity:0}}@keyframes card-pop{0%{opacity:0;transform:scale(.45) rotate(-9deg)}to{opacity:1;transform:scale(1) rotate(-1.5deg)}}@keyframes card-shrink{0%{opacity:1;transform:scale(1) rotate(-1.5deg)}to{opacity:0;transform:scale(.5) rotate(-9deg)}}@keyframes drift{0%{transform:translate3d(-4%,-3%,0) scale(1)}to{transform:translate3d(6%,5%,0) scale(1.15)}}@keyframes heartbeat{0%,to{transform:scale(1)}12%{transform:scale(1.18)}24%{transform:scale(1)}36%{transform:scale(1.14)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes pop{0%{transform:scale(.7)}to{transform:scale(1)}}@keyframes twinkle{0%,to{opacity:0;transform:scale(.4) rotate(0)}50%{opacity:.9;transform:scale(1) rotate(25deg)}}@keyframes pop-float{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}18%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1) rotate(var(--r))}}@media(max-width:560px){.sep{display:none}.countdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;width:100%;max-width:22rem}.unit-group{justify-content:center}.unit{width:100%}.value{font-size:clamp(2.7rem,15vw,4.2rem)}}@media(prefers-reduced-motion:reduce){.countdown-wrap,.brand,.page:before,.unit,.value-num,.sep,.sparkle,.complete-heart,.brand-heart,.polaroid,.movie-icon,.lightbox,.lightbox-closing,.polaroid-big,.movie-list-card,.lightbox-closing .polaroid-big,.lightbox-closing .movie-list-card,.lightbox-close{animation:none;transition:none}.sparkle{opacity:.55}}
