:root{--bg-deep:#1a0e1f;--bg-mid:#2a1a2e;--bg-glow:#3d2244;--ink-primary:#fdf2f8;--ink-secondary:#fdf2f8b3;--ink-muted:#fdf2f873;--rose:#f4a0b5;--rose-bright:#f9c4d2;--lavender:#c9a0d4;--champagne:#d4a574;--champagne-glow:#d4a5744d;--border-soft:#c9a0d426;--border-glow:#f4a0b540;--font-display:"Playfair Display", Georgia, "Times New Roman", serif;--font-body:"Poppins", system-ui, -apple-system, sans-serif;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-full:9999px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-body);color:var(--ink-primary);background:var(--bg-deep);min-height:100svh;font-weight:300;overflow-x:hidden}#root{flex-direction:column;min-height:100svh;display:flex;position:relative}.scene{min-height:100svh;padding:var(--space-lg);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.scene:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(60% 50% at 50% 0,#c9a0d426 0%,#0000 70%),radial-gradient(50% 40% at 30% 80%,#f4a0b51a 0%,#0000 60%),radial-gradient(40% 35% at 80% 60%,#d4a57414 0%,#0000 50%);position:absolute;inset:0}.scene>*{z-index:1;position:relative}.hero{text-align:center;margin-bottom:var(--space-xl)}.hero__greeting{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--lavender);margin-bottom:var(--space-md);font-size:.875rem;font-weight:400}.hero__name{font-family:var(--font-display);letter-spacing:-.02em;background:linear-gradient(135deg, var(--rose-bright) 0%, var(--rose) 30%, var(--lavender) 70%, var(--champagne) 100%);-webkit-text-fill-color:transparent;margin-bottom:var(--space-sm);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;font-size:clamp(3.5rem,12vw,7rem);font-weight:700;line-height:1;animation:6s ease-in-out infinite nameShimmer}@keyframes nameShimmer{0%,to{background-position:0%}50%{background-position:100%}}.hero__subtitle{font-family:var(--font-display);color:var(--ink-secondary);font-size:clamp(1.1rem,3.5vw,1.5rem);font-style:italic;font-weight:400;line-height:1.4}.divider{background:linear-gradient(90deg, transparent, var(--rose), transparent);width:48px;height:1px;margin:var(--space-lg) auto;opacity:.6}.countdown{text-align:center;margin-bottom:var(--space-xl)}.countdown--bottom{margin-bottom:0;margin-top:var(--space-md);opacity:.7}.countdown--bottom .countdown__number{font-size:clamp(1.8rem,6vw,2.8rem);animation:none}.countdown--bottom .countdown__separator{font-size:clamp(1.2rem,4vw,2rem)}.countdown__label{font-family:var(--font-body);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--space-lg);font-size:.8rem;font-weight:400}.countdown__digits{justify-content:center;align-items:center;gap:var(--space-md);display:flex}.countdown__unit{align-items:center;gap:var(--space-xs);flex-direction:column;display:flex}.countdown__number{font-family:var(--font-display);color:var(--ink-primary);text-align:center;min-width:2ch;font-size:clamp(2.8rem,10vw,4.5rem);font-weight:600;line-height:1;animation:2s ease-in-out infinite gentlePulse}.countdown__unit:first-child .countdown__number{animation-delay:0s}.countdown__unit:nth-child(2) .countdown__number{animation-delay:.3s}.countdown__unit:nth-child(3) .countdown__number{animation-delay:.6s}@keyframes gentlePulse{0%,to{opacity:1}50%{opacity:.75}}.countdown__unit-label{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);font-size:.7rem;font-weight:400}.countdown__separator{font-family:var(--font-display);color:var(--rose);opacity:.5;align-self:flex-start;margin-top:.3em;font-size:clamp(1.8rem,6vw,3rem);animation:1s step-end infinite separatorBlink}@keyframes separatorBlink{0%,to{opacity:.5}50%{opacity:.15}}.teaser{text-align:center;max-width:320px;margin:0 auto}.teaser__card{border:1px solid var(--border-glow);border-radius:var(--radius-md);padding:var(--space-lg);-webkit-backdrop-filter:blur(8px);background:#f4a0b50f}.teaser__icon{margin-bottom:var(--space-sm);font-size:1.5rem;display:block}.teaser__text{font-family:var(--font-body);color:var(--ink-secondary);font-size:.9rem;font-weight:300;line-height:1.6}.teaser__text strong{color:var(--rose-bright);font-weight:500}.sparkles{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.sparkle{background:var(--champagne);width:3px;height:3px;box-shadow:0 0 6px 1px var(--champagne-glow);opacity:0;border-radius:50%;animation:linear infinite sparkleFloat;position:absolute}@keyframes sparkleFloat{0%{opacity:0;transform:translateY(0)scale(.5)}15%{opacity:1}85%{opacity:.6}to{opacity:0;transform:translateY(-100vh)scale(.2)}}.challenge{text-align:center;width:100%;max-width:340px;margin:0 auto}.challenge__badge{font-family:var(--font-body);letter-spacing:.15em;text-transform:uppercase;color:var(--champagne);border-radius:var(--radius-full);padding:var(--space-xs) var(--space-md);margin-bottom:var(--space-lg);border:1px solid #d4a5744d;font-size:.7rem;font-weight:500;display:inline-block}.challenge__hint{font-family:var(--font-display);color:var(--ink-secondary);margin-bottom:var(--space-lg);font-size:clamp(1rem,3vw,1.15rem);font-style:italic;font-weight:400;line-height:1.5}.challenge__form{gap:var(--space-md);flex-direction:column;display:flex}.challenge__form--shake{animation:.5s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-6px)}30%{transform:translate(5px)}45%{transform:translate(-4px)}60%{transform:translate(3px)}75%{transform:translate(-2px)}}.challenge__input{font-family:var(--font-body);color:var(--ink-primary);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:var(--space-md);text-align:center;background:#fdf2f80d;outline:none;font-size:1rem;font-weight:300;transition:border-color .3s,box-shadow .3s}.challenge__input::placeholder{color:var(--ink-muted);font-style:italic}.challenge__input:focus{border-color:var(--rose);box-shadow:0 0 0 3px #f4a0b51a}.challenge__submit{font-family:var(--font-body);letter-spacing:.05em;color:var(--bg-deep);background:linear-gradient(135deg, var(--rose) 0%, var(--lavender) 100%);border-radius:var(--radius-sm);padding:var(--space-md) var(--space-lg);cursor:pointer;border:none;font-size:.9rem;font-weight:500;transition:opacity .2s,transform .2s}.challenge__submit:hover{opacity:.9;transform:translateY(-1px)}.challenge__submit:active{opacity:.8;transform:translateY(0)}.challenge__options{gap:var(--space-sm);grid-template-columns:1fr 1fr;display:grid}.challenge__option-btn{font-family:var(--font-body);color:var(--ink-secondary);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:var(--space-md);cursor:pointer;background:#fdf2f80d;font-size:.85rem;font-weight:400;transition:all .2s}.challenge__option-btn:hover{color:var(--ink-primary);border-color:var(--rose);background:#f4a0b514;transform:translateY(-1px)}.challenge__option-btn:active{transform:translateY(0)}.challenge__error{font-family:var(--font-body);color:var(--rose);margin-top:var(--space-md);font-size:.8rem;font-weight:400;animation:.3s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.reward{text-align:center;width:100%;max-width:340px;margin:0 auto;animation:.6s ease-out revealIn}@keyframes revealIn{0%{opacity:0;transform:scale(.95)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.reward__badge{font-family:var(--font-body);letter-spacing:.15em;text-transform:uppercase;color:var(--champagne);border-radius:var(--radius-full);padding:var(--space-xs) var(--space-md);margin-bottom:var(--space-lg);border:1px solid #d4a5744d;font-size:.7rem;font-weight:500;display:inline-block}.reward__card{border:1px solid var(--border-glow);border-radius:var(--radius-md);padding:var(--space-xl) var(--space-lg);-webkit-backdrop-filter:blur(8px);background:#f4a0b50f}.reward__icon{margin-bottom:var(--space-md);font-size:2rem;display:block}.reward__title{font-family:var(--font-display);color:var(--ink-primary);margin-bottom:var(--space-sm);font-size:1.3rem;font-weight:600}.reward__text{font-family:var(--font-body);color:var(--ink-secondary);font-size:.9rem;font-weight:300;line-height:1.6}.reward__coupon{margin-top:var(--space-xl)}.coupon-wrapper{align-items:center;gap:var(--space-lg);flex-direction:column;animation:.6s ease-out .3s both revealIn;display:flex}.coupon{border:1px solid var(--border-glow);border-radius:var(--radius-md);background:linear-gradient(145deg,#2e1a35 0%,#1f1228 50%,#2a1530 100%);width:100%;max-width:340px;padding:3px;position:relative;overflow:hidden}.coupon:before{content:"";pointer-events:none;background:linear-gradient(135deg,#f4a0b514 0%,#0000 40% 60%,#c9a0d414 100%);position:absolute;inset:0}.coupon:after{content:"";pointer-events:none;background:conic-gradient(#0000 0%,#d4a5740f 10%,#0000 20%);width:200%;height:200%;animation:8s linear infinite couponShine;position:absolute;top:-50%;left:-50%}@keyframes couponShine{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.coupon__edge{background:var(--bg-deep);z-index:2;border-radius:50%;width:20px;height:20px;position:absolute;top:50%;transform:translateY(-50%)}.coupon__edge--left{left:-10px}.coupon__edge--right{right:-10px}.coupon__inner{z-index:1;text-align:center;border:1px dashed #f4a0b526;border-radius:13px;padding:40px 24px;position:relative}.coupon__header{letter-spacing:.2em;text-transform:uppercase;color:#d4a574;margin:0 0 10px;font-family:Poppins,system-ui,sans-serif;font-size:12px;font-weight:400}.coupon__product{-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#f9c4d2 0%,#f4a0b5 50%,#c9a0d4 100%) 0 0/200% 200%;-webkit-background-clip:text;background-clip:text;margin:0 0 16px;font-family:Playfair Display,Georgia,serif;font-size:28px;font-weight:700;line-height:1.2;animation:6s ease-in-out infinite nameShimmer}.coupon__divider{opacity:.4;background:linear-gradient(90deg,#0000,#f4a0b5,#0000);width:60%;height:1px;margin:0 auto 16px}.coupon__redeem{color:#fdf2f8b3;margin:0 0 28px;font-family:Playfair Display,Georgia,serif;font-size:14px;font-style:italic;font-weight:400;line-height:1.6}.coupon__footer{border-top:1px solid #f4a0b514;justify-content:space-between;align-items:center;padding-top:16px;display:flex}.coupon__from{color:#fdf2f873;font-family:Poppins,system-ui,sans-serif;font-size:11px;font-weight:300}.coupon__day{letter-spacing:.1em;text-transform:uppercase;color:#d4a574;border:1px solid #d4a57440;border-radius:9999px;padding:3px 10px;font-family:Poppins,system-ui,sans-serif;font-size:10px;font-weight:500}.coupon__download{font-family:var(--font-body);color:var(--ink-secondary);border:1px solid var(--border-soft);border-radius:var(--radius-full);padding:var(--space-sm) var(--space-lg);cursor:pointer;align-items:center;gap:var(--space-sm);background:0 0;font-size:.8rem;font-weight:400;transition:all .2s;display:flex}.coupon__download:before{content:"⤓";font-size:1rem}.coupon__download:hover{color:var(--ink-primary);border-color:var(--rose);background:#f4a0b50f}.coupon__download:active{transform:scale(.97)}.photo-bubble{bottom:var(--space-xl);right:var(--space-lg);z-index:50;border:1px solid var(--border-glow);-webkit-backdrop-filter:blur(10px);cursor:pointer;background:linear-gradient(135deg,#f4a0b526 0%,#c9a0d426 100%);border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;transition:transform .3s,box-shadow .3s;animation:3s ease-in-out infinite bubbleFloat;display:flex;position:fixed;box-shadow:0 4px 20px #f4a0b526}.photo-bubble:hover{transform:scale(1.1);box-shadow:0 6px 28px #f4a0b540}.photo-bubble:active{transform:scale(.95)}.photo-bubble__icon{font-size:1.4rem;line-height:1}@keyframes bubbleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.photo-bubble:hover{animation:none;transform:scale(1.1)}.photo-reveal{margin-bottom:var(--space-md);border-radius:var(--radius-sm);border:1px solid var(--border-soft);animation:.5s ease-out photoIn;overflow:hidden}@keyframes photoIn{0%{opacity:0;transform:scale(.9)rotate(-2deg)}to{opacity:1;transform:scale(1)rotate(0)}}.photo-reveal__img{object-fit:contain;background:#0003;width:100%;max-height:50vh;display:block}.photo-reveal__caption{font-family:var(--font-display);color:var(--ink-secondary);margin-bottom:var(--space-lg);text-align:center;font-size:.85rem;font-style:italic;font-weight:400;line-height:1.5}.modal-overlay{z-index:100;padding:var(--space-lg);-webkit-backdrop-filter:blur(6px);background:#1a0e1fd9;justify-content:center;align-items:center;animation:.3s overlayIn;display:flex;position:fixed;inset:0}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-mid);border:1px solid var(--border-glow);border-radius:var(--radius-md);padding:var(--space-xl) var(--space-lg);text-align:center;width:100%;max-width:340px;animation:.4s modalIn}@keyframes modalIn{0%{opacity:0;transform:scale(.9)translateY(16px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal__icon{margin-bottom:var(--space-md);font-size:1.8rem;display:block}.modal__text{font-family:var(--font-body);color:var(--ink-secondary);margin-bottom:var(--space-lg);font-size:1rem;font-weight:300;line-height:1.6}.modal__text strong{color:var(--rose-bright);font-weight:500}.modal__text--reveal{font-family:var(--font-display);color:var(--ink-primary);font-size:1.05rem;font-style:italic;line-height:1.7}.modal__subtext{font-family:var(--font-body);color:var(--ink-muted);margin-bottom:var(--space-lg);margin-top:calc(-1 * var(--space-sm));font-size:.8rem;font-weight:300}.modal__actions{gap:var(--space-md);justify-content:center;display:flex}.modal__btn{font-family:var(--font-body);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-xl);cursor:pointer;border:none;font-size:.9rem;font-weight:500;transition:opacity .2s,transform .2s}.modal__btn:hover{opacity:.9;transform:translateY(-1px)}.modal__btn:active{opacity:.8;transform:translateY(0)}.modal__btn--primary{color:var(--bg-deep);background:linear-gradient(135deg, var(--rose) 0%, var(--lavender) 100%)}.modal__btn--secondary{color:var(--ink-secondary);border:1px solid var(--border-soft);background:#fdf2f814}@media (width>=640px){.scene{padding:var(--space-2xl)}.countdown__digits{gap:var(--space-lg)}.teaser{max-width:400px}.teaser__card{padding:var(--space-lg) var(--space-xl)}.challenge,.reward{max-width:400px}.reward__card{padding:var(--space-xl)}}@media (width>=1024px){.hero__greeting{font-size:1rem}.countdown__label{font-size:.875rem}.teaser__text{font-size:1rem}}
