*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--cyclamen:#df6d8a;--cyclamen-light:#f2a0b5;--cyclamen-pale:#fae0e8;--cyclamen-deep:#c0436a;--petal-1:#f7c5d5;--petal-2:#ee8faa;--white:#fff;--black:#070308;--footer-h:0px;--invite-h:0px;--kb:0px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--chrome-h:calc(var(--footer-h) + var(--invite-h))}html,body{width:100%;height:100%;overflow:hidden}body{background:var(--black);overscroll-behavior:none;-webkit-text-size-adjust:100%;font-family:DM Sans,sans-serif;position:relative}:focus-visible{outline:2px solid var(--cyclamen);outline-offset:3px;border-radius:6px}.flicker{filter:blur(48px);opacity:0;z-index:1;pointer-events:none;background:radial-gradient(circle,#df6d8a8c 0%,#df6d8a38 40%,#0000 70%);border-radius:50%;width:46vmin;height:46vmin;transition:transform 2.8s cubic-bezier(.4,0,.2,1);position:fixed;top:50%;left:22%;transform:translate(-50%,-50%)scale(1)}.flicker.on{animation:1.4s forwards flickerIn,5s ease-in-out 1.4s infinite flickerPulse}@keyframes flickerIn{0%{opacity:0}8%{opacity:.5}14%{opacity:.12}24%{opacity:.65}32%{opacity:.3}48%{opacity:.8}58%{opacity:.5}to{opacity:.85}}@keyframes flickerPulse{0%,to{opacity:.85}37%{opacity:.55}52%{opacity:.9}71%{opacity:.62}}.flicker.expand{opacity:.9;animation:none;transform:translate(-50%,-50%)scale(6)}.bloom{background:var(--cyclamen-pale);opacity:0;z-index:2;pointer-events:none;transition:opacity 2.6s;position:fixed;inset:0}.bloom:before{content:"";background:radial-gradient(80% 60% at 20% 20%,#f9ccd8cc 0%,#0000 60%),radial-gradient(60% 80% at 80% 80%,#e8799acc 0%,#0000 55%),radial-gradient(50% 50% at 60% 30%,#fbe8eecc 0%,#0000 50%),radial-gradient(70% 40% at 30% 80%,#f4afc3bb 0%,#0000 55%);animation:12s ease-in-out infinite alternate meshShift;position:absolute;inset:0}.bloom.on{opacity:1}@keyframes meshShift{0%{filter:hue-rotate()brightness()}to{filter:hue-rotate(8deg)brightness(1.04)}}.petals{pointer-events:none;z-index:3;position:fixed;inset:0;overflow:hidden}.petal{background:radial-gradient(ellipse at 40% 35%, #fff8 40%, var(--petal-1) 100%);opacity:0;filter:blur(.4px);border-radius:50% 10%;width:18px;height:26px;animation:linear infinite petalFall;position:absolute}@keyframes petalFall{0%{opacity:0;transform:translateY(-40px)rotate(0)translate(0)}5%{opacity:.7}90%{opacity:.5}to{opacity:0;transform:translateY(110vh)rotate(540deg)translate(60px)}}.dialogue{z-index:10;max-width:min(560px,80vw);transition:opacity 1.1s;position:fixed;top:50%;left:clamp(24px,10vw,140px);transform:translateY(-50%)}.dialogue.hidden{opacity:0;pointer-events:none}.prompt{color:var(--white);letter-spacing:.01em;min-height:1.2em;font-family:Cormorant Garamond,serif;font-size:clamp(1.9rem,4.5vw,3.2rem);font-weight:300;line-height:1.2}.prompt .word{white-space:nowrap;display:inline-block}.prompt .ch{opacity:0;filter:blur(6px);white-space:pre;animation:.7s forwards fizzle;display:inline-block;transform:translateY(6px)}@keyframes fizzle{0%{opacity:0;filter:blur(6px);transform:translateY(6px)}35%{opacity:.4;filter:blur(3px)}55%{opacity:.15;filter:blur(4px)}to{opacity:1;filter:blur();transform:translateY(0)}}.name-row{opacity:0;align-items:flex-end;gap:14px;margin-top:28px;transition:opacity .9s;display:flex}.name-row.show{opacity:1}#nameInput{color:var(--cyclamen-light);caret-color:var(--cyclamen);background:0 0;border:none;border-bottom:1px solid #df6d8a73;outline:none;width:min(340px,60vw);padding:4px 2px 8px;font-family:Cormorant Garamond,serif;font-size:clamp(1.4rem,3vw,2rem);font-style:italic;font-weight:400;transition:border-color .4s}#nameInput:focus{border-bottom-color:var(--cyclamen)}#nameInput::placeholder{color:#f2a0b559;font-style:italic}.enter-hint{letter-spacing:.2em;text-transform:uppercase;color:#f2a0b580;-webkit-user-select:none;user-select:none;opacity:0;padding-bottom:12px;font-size:.68rem;transition:opacity .6s}.name-row.typed .enter-hint{opacity:1}.panel-stage{z-index:8;padding:calc(24px + var(--safe-t)) 24px calc(var(--chrome-h) + 32px + var(--safe-b));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;justify-content:flex-start;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.card{-webkit-backdrop-filter:blur(20px);text-align:center;opacity:0;pointer-events:auto;background:#ffffffb8;border-radius:28px;flex-shrink:0;width:100%;max-width:480px;margin:auto 0;padding:40px 48px;transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;transform:translateY(24px)scale(.97);box-shadow:0 0 0 1px #ffffffe6,0 8px 32px #c6507826,0 0 60px #df6d8a1f,0 2px 8px #0000000a}.card.show{opacity:1;transform:translateY(0)scale(1)}.card:not(.show){pointer-events:none}.card:before{content:"";pointer-events:none;background:radial-gradient(circle,#fad4e288 0%,#0000 70%);width:160px;height:160px;position:absolute;top:-60px;left:-60px}.card-title{color:var(--cyclamen-deep);letter-spacing:.01em;margin-bottom:4px;font-family:Cormorant Garamond,serif;font-size:1.8rem;font-weight:400}.card-sub{color:var(--cyclamen);letter-spacing:.15em;text-transform:uppercase;margin-bottom:24px;font-size:.74rem;font-weight:300}.card-body{color:#7a4256;text-align:left;font-size:.92rem;font-weight:300;line-height:1.75;transition:opacity .45s}.card-body.fading{opacity:0}.card-body p+p{margin-top:12px}.card-body em{color:var(--cyclamen-deep);font-family:Cormorant Garamond,serif;font-size:1.05em}.fact-list{list-style:none}.fact-list li{align-items:baseline;gap:12px;padding:9px 0;display:flex}.fact-list li+li{border-top:1px solid #c0436a14}.fact-list .k{letter-spacing:.14em;text-transform:uppercase;color:var(--cyclamen);flex-shrink:0;width:92px;font-size:.66rem;font-weight:400}.fact-list .v{flex:1}.footer{z-index:12;padding:20px 24px calc(26px + var(--safe-b));-webkit-backdrop-filter:blur(24px);background:#fff9;border-top:1px solid #fffc;flex-direction:column;align-items:center;gap:14px;max-width:100%;transition:transform 1s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(105%);box-shadow:0 -8px 40px #c650781f}.footer.show{transform:translateY(0)}.footer-q{color:var(--cyclamen-deep);letter-spacing:.02em;font-family:Cormorant Garamond,serif;font-size:1.15rem;font-weight:400}.footer-btns{flex-wrap:wrap;justify-content:center;gap:10px;max-width:100%;display:flex}.opt-btn{letter-spacing:.03em;color:var(--cyclamen-deep);cursor:pointer;background:linear-gradient(135deg,#fde8f0,#fad0e2);border:1px solid #ffffffe6;border-radius:999px;padding:10px 22px;font-family:DM Sans,sans-serif;font-size:.82rem;font-weight:400;transition:transform .2s,box-shadow .2s,background .2s;box-shadow:0 2px 10px #c650781a}@media (hover:hover) and (pointer:fine){.opt-btn:hover{transform:translateY(-2px)scale(1.03);box-shadow:0 6px 20px #c6507840}}.opt-btn:active{transform:translateY(0)scale(.98)}.opt-btn.active{background:linear-gradient(135deg, var(--cyclamen), var(--cyclamen-deep));color:var(--white)}.opt-btn.surprise{background:linear-gradient(135deg,#fff3f8,#ffe3ef);font-family:Cormorant Garamond,serif;font-size:.95rem;font-style:italic}.invite{left:50%;bottom:calc(var(--footer-h) + 14px);pointer-events:none;z-index:11;-webkit-backdrop-filter:blur(20px);opacity:0;background:#ffffffc7;border:1px solid #ffffffe6;border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;max-width:min(92vw,600px);padding:12px 14px 12px 26px;transition:transform 1s cubic-bezier(.16,1,.3,1),opacity 1s;display:flex;position:fixed;transform:translate(-50%,220%);box-shadow:0 8px 32px #c6507833,0 0 40px #df6d8a1f}.invite.show{opacity:1;transform:translate(-50%)}.invite.landed{pointer-events:auto}.invite-text{color:var(--cyclamen-deep);letter-spacing:.02em;font-family:Cormorant Garamond,serif;font-size:1.08rem}@keyframes inviteDrift{0%{opacity:0;transform:translate(-50%,-38vh)rotate(-22deg)scale(.55)}40%{opacity:1}to{opacity:1;transform:translate(-50%)rotate(0)scale(1)}}@keyframes inviteBreathe{0%,to{box-shadow:0 6px 20px #c0436a38,0 0 18px #df6d8a24}50%{box-shadow:0 8px 26px #c0436a61,0 0 40px #df6d8a4d}}.invite-btn,.pink-btn{letter-spacing:.04em;color:var(--white);background:linear-gradient(135deg, var(--cyclamen), var(--cyclamen-deep));cursor:pointer;white-space:nowrap;border:1px solid #fff6;border-radius:999px;padding:11px 24px;font-family:DM Sans,sans-serif;font-size:.85rem;font-weight:400;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 16px #c0436a4d}@media (hover:hover) and (pointer:fine){.invite-btn:hover,.pink-btn:hover{transform:translateY(-2px)scale(1.03);box-shadow:0 8px 26px #c0436a73}}.invite-btn:active,.pink-btn:active{transform:scale(.98)}.pink-btn.soft{color:var(--cyclamen-deep);background:linear-gradient(135deg,#fde8f0,#fad0e2);box-shadow:0 4px 16px #c0436a2e}.dim{z-index:30;-webkit-backdrop-filter:blur(10px);opacity:0;pointer-events:none;background:#1e061080;justify-content:center;align-items:center;height:100dvh;padding:24px;transition:opacity .7s;display:flex;position:fixed;inset:0}.dim.on{opacity:1;pointer-events:all}body.modal-open .panel-stage{overflow:hidden}.msg-card{-webkit-backdrop-filter:blur(24px);width:100%;max-width:560px;max-height:calc(var(--vvh,100dvh) - 48px);background:#fffffff2;border-radius:18px;flex-direction:column;padding:28px 26px;transition:transform .7s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden;transform:translateY(18px)scale(.98);box-shadow:0 0 0 1px #ffffffe6,0 12px 48px #78143747,0 0 60px #df6d8a2e}.dim.on .msg-card{transform:translateY(0)scale(1)}.msg-handle{display:none}.msg-title{color:var(--cyclamen-deep);text-align:center;flex:none;margin-bottom:18px;padding-left:34px;padding-right:34px;font-family:Cormorant Garamond,serif;font-size:1.6rem;font-weight:400}.msg-close{width:36px;height:36px;color:var(--cyclamen-deep);cursor:pointer;z-index:2;background:#fae0e8b3;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.15rem;line-height:1;transition:background .2s,transform .2s;display:flex;position:absolute;top:14px;right:14px}.msg-close:active{transform:scale(.92)}@media (hover:hover) and (pointer:fine){.msg-close:hover{background:#fae0e8}}#msgInput{resize:vertical;color:#7a4256;width:100%;height:150px;min-height:96px;caret-color:var(--cyclamen);background:#fae0e873;border:1px solid #c0436a26;border-radius:16px;outline:none;flex:auto;padding:16px;font-family:DM Sans,sans-serif;font-size:.92rem;font-weight:300;line-height:1.7;transition:border-color .3s,background .3s;overflow-y:auto}#msgInput:focus{border-color:var(--cyclamen);background:#fae0e8a6}#msgInput::placeholder{color:#c0436a66}.msg-actions{flex:none;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;display:flex}.msg-hint{letter-spacing:.06em;color:#c0436a8c;font-size:.7rem;font-weight:300}.finale{z-index:40;background:var(--black);opacity:0;pointer-events:none;height:100dvh;padding:calc(24px + var(--safe-t)) 24px calc(24px + var(--safe-b) + var(--kb));overscroll-behavior:contain;justify-content:center;align-items:flex-start;transition:opacity 1.5s;display:flex;position:fixed;inset:0;overflow-y:auto}.finale.on{opacity:1;pointer-events:all}.finale .flicker{top:50%;left:50%}.finale-center{z-index:2;text-align:center;flex-direction:column;flex-shrink:0;align-items:center;gap:38px;max-width:min(780px,92vw);margin:auto;transition:opacity 1s;display:flex;position:relative}.finale-center.faded{opacity:0;pointer-events:none}.finale-prompt{text-align:center}.finale-actions{opacity:0;visibility:hidden;pointer-events:none;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;transition:opacity .9s,visibility 0s linear .9s;display:flex}.finale-actions.show{opacity:1;visibility:visible;pointer-events:all;transition:opacity .9s}.finale-actions .pink-btn{padding:13px 36px;font-size:.95rem}.contact-wrap{flex-direction:column;align-items:center;gap:22px;width:min(440px,88vw);display:flex}.chips{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.chip{letter-spacing:.08em;text-transform:uppercase;color:var(--cyclamen-light);cursor:pointer;background:0 0;border:1px solid #f2a0b559;border-radius:999px;padding:8px 16px;font-family:DM Sans,sans-serif;font-size:.72rem;transition:all .25s}@media (hover:hover) and (pointer:fine){.chip:hover{border-color:var(--cyclamen);color:var(--white)}}.chip.active{background:linear-gradient(135deg, var(--cyclamen), var(--cyclamen-deep));color:var(--white);border-color:#0000}#contactInput{color:var(--cyclamen-light);caret-color:var(--cyclamen);text-align:center;background:0 0;border:none;border-bottom:1px solid #df6d8a73;outline:none;width:100%;padding:4px 2px 8px;font-family:Cormorant Garamond,serif;font-size:clamp(1.2rem,2.6vw,1.6rem);font-style:italic;transition:border-color .4s}#contactInput:focus{border-bottom-color:var(--cyclamen)}#contactInput::placeholder{color:#f2a0b559}@media (width<=900px){.invite{gap:12px;padding:12px 12px 12px 22px}.invite-text{text-align:center}}@media (width<=640px){.dialogue{max-width:none;transform:translateY(calc(-50% - var(--kb) / 2));transition:opacity 1.1s,transform .35s cubic-bezier(.16,1,.3,1);top:50%;left:20px;right:20px}.prompt{font-size:clamp(1.7rem,8.5vw,2.4rem)}.name-row{flex-wrap:wrap;gap:8px;margin-top:22px}#nameInput{width:100%;font-size:1.5rem}.enter-hint{padding-bottom:0}.flicker{left:50%}.panel-stage{padding-left:16px;padding-right:16px}.card{border-radius:24px;padding:28px 22px}.card-title{font-size:1.55rem}.card-sub{margin-bottom:20px;font-size:.68rem}.card-body{font-size:.9rem;line-height:1.7}.fact-list li{flex-direction:column;gap:3px;padding:10px 0}.fact-list .k{width:auto;font-size:.62rem}.footer{padding:14px 14px calc(14px + var(--safe-b));background:#ffffffd1;border-radius:22px 22px 0 0;gap:12px}.footer-q{text-align:center;font-size:.98rem;line-height:1.25}.footer-btns{grid-template-columns:1fr 1fr;gap:8px;width:100%;display:grid}.opt-btn{text-align:center;border-radius:14px;justify-content:center;align-items:center;width:100%;min-height:44px;padding:11px 10px;font-size:.8rem;line-height:1.15;display:flex}.opt-btn.surprise{grid-column:1/-1;font-size:1rem}.invite{left:50%;right:auto;bottom:calc(var(--footer-h) + 16px);opacity:0;background:linear-gradient(140deg,#fff 0%,#fde8f0 52%,#fad0e2 100%);border:1px solid #ffffffe6;border-radius:29px 6px;flex-wrap:nowrap;gap:0;width:58px;min-width:0;max-width:none;height:58px;padding:0;transition:width .62s cubic-bezier(.16,1,.3,1),height .62s cubic-bezier(.16,1,.3,1),border-radius .62s cubic-bezier(.16,1,.3,1);overflow:hidden;transform:translate(-50%)}.invite.show{animation:1.3s cubic-bezier(.16,1,.3,1) forwards inviteDrift,4s ease-in-out 1.3s infinite inviteBreathe}.invite:before{content:"💌";opacity:1;pointer-events:none;font-size:1.3rem;line-height:1;transition:opacity .34s .16s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.invite.expanded:before{opacity:0;transition:opacity .16s}.invite.expanded{width:var(--inv-w,300px);height:var(--inv-h,58px);border-radius:30px}.invite-text{width:var(--inv-tw,auto);text-align:center;opacity:0;pointer-events:none;flex:none;padding:0;font-size:1rem;line-height:1.3;transition:opacity .2s}.invite.expanded .invite-text{opacity:1;transition:opacity .4s .2s}.invite-btn{border-radius:inherit;width:100%;height:100%;min-height:0;box-shadow:none;color:#0000;white-space:normal;background:0 0;border:none;margin:0;padding:0;font-size:0;position:absolute;inset:0}.invite-btn:active{filter:brightness(.97);transform:none}.dim{justify-content:center;align-items:flex-end;padding:0}.msg-card{width:100%;max-width:none;padding:10px 18px calc(18px + var(--safe-b));margin-bottom:var(--kb);max-height:min(88vh, calc(var(--vvh,100dvh) - 12px));border-radius:24px 24px 0 0;transition:transform .7s cubic-bezier(.16,1,.3,1),margin-bottom .25s,max-height .25s;transform:translateY(100%)}.dim.on .msg-card{transform:translateY(0)}.msg-handle{background:#c0436a38;border-radius:99px;flex:none;width:42px;height:4px;margin:4px auto 12px;display:block}.msg-title{margin-bottom:12px;font-size:1.35rem}.msg-close{width:40px;height:40px;top:6px;right:8px}#msgInput{resize:none;border-radius:14px;height:132px;min-height:84px;padding:14px;font-size:16px;line-height:1.55}.msg-actions{flex-direction:column;align-items:stretch;gap:8px;margin-top:8px}.msg-actions .pink-btn{border-radius:14px;width:100%;min-height:48px;font-size:.95rem}.msg-hint{text-align:right;padding-right:4px;font-size:.66rem}.finale{padding-left:18px;padding-right:18px}.finale-center{gap:26px}.finale-prompt{font-size:clamp(1.6rem,7.5vw,2.2rem)}.finale-actions{gap:10px;width:100%}.finale-actions .pink-btn{min-height:48px;padding:14px 24px;font-size:.92rem}.finale-actions>.pink-btn{flex:auto}.contact-wrap{gap:18px;width:100%}.chips{gap:6px}.chip{min-height:38px;padding:9px 13px;font-size:.68rem}}@media (width<=360px){.opt-btn{padding:10px 6px;font-size:.74rem}.footer-q{font-size:.9rem}.card{padding:24px 18px}}@media (height<=560px) and (orientation:landscape){.dialogue{top:50%}.prompt{font-size:clamp(1.4rem,5vw,2rem)}.footer{padding:10px 14px calc(10px + var(--safe-b));gap:8px}.footer-q{font-size:.9rem}.footer-btns{flex-wrap:wrap;justify-content:center;gap:6px;width:auto;display:flex}.opt-btn{width:auto;min-height:38px;padding:8px 14px;font-size:.76rem}.opt-btn.surprise{font-size:.86rem}.msg-card{padding-top:8px}.msg-handle{margin:2px auto 8px}.msg-title{margin-bottom:8px;font-size:1.15rem}#msgInput{height:84px;min-height:56px}.msg-actions{flex-direction:row;align-items:center;margin-top:10px}.msg-actions .pink-btn{width:auto;min-height:42px}.finale-center{gap:18px}.finale-actions .pink-btn{min-height:42px;padding:10px 22px}}@media (height<=560px) and (orientation:landscape) and (width>=641px){.invite{flex-direction:row;padding:10px 12px}.invite-btn{width:auto;min-height:40px}.invite-text{font-size:.92rem}}.fade-out-veil{background:var(--black);opacity:0;pointer-events:none;z-index:100;transition:opacity .8s;position:fixed;inset:0}.fade-out-veil.on{opacity:1;pointer-events:all}
