:root{--primary: #e84393;--primary-dark: #d63384;--primary-light: #fd79a8;--accent-gold: #f9ca24;--accent-purple: #6c5ce7;--accent-teal: #00cec9;--warm-white: #fff5f7;--dark-bg: #0f0a1a;--dark-surface: rgba(255, 255, 255, .06);--glass-bg: rgba(255, 255, 255, .85);--glass-border: rgba(255, 255, 255, .5);--text-dark: #1a0e2e;--text-muted: #5a4d6e;--glow-primary: rgba(232, 67, 147, .5);--glow-gold: rgba(249, 202, 36, .4);--glow-purple: rgba(108, 92, 231, .4);--radius-lg: 24px;--radius-xl: 32px;--font-display: "DM Serif Display", Georgia, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-handwritten: "Caveat", cursive}html{margin:0;padding:0;overflow:hidden;height:100vh;height:100dvh;width:100vw;width:100dvw}body{margin:0;padding:0;font-family:var(--font-body);background:linear-gradient(135deg,#0a0612,#0f0a1a 40%,#0d1b2a);text-align:center;color:#ffffffe0;scroll-behavior:smooth;overflow:hidden;height:100vh;height:100dvh;width:100vw;width:100dvw;position:fixed;animation:fadeIn .8s ease-out forwards;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:pan-y}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 60% at 20% 30%,rgba(232,67,147,.04),transparent),radial-gradient(ellipse 60% 50% at 80% 70%,rgba(108,92,231,.03),transparent),radial-gradient(ellipse 50% 40% at 50% 50%,rgba(0,206,201,.02),transparent);pointer-events:none;z-index:0;animation:meshFloat 20s ease-in-out infinite alternate}@keyframes meshFloat{0%{background:radial-gradient(ellipse 80% 60% at 20% 30%,rgba(232,67,147,.04),transparent),radial-gradient(ellipse 60% 50% at 80% 70%,rgba(108,92,231,.03),transparent),radial-gradient(ellipse 50% 40% at 50% 50%,rgba(0,206,201,.02),transparent)}to{background:radial-gradient(ellipse 70% 50% at 70% 60%,rgba(232,67,147,.04),transparent),radial-gradient(ellipse 80% 60% at 20% 30%,rgba(108,92,231,.03),transparent),radial-gradient(ellipse 60% 50% at 60% 20%,rgba(0,206,201,.02),transparent)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}#root{width:100vw;width:100dvw;height:100vh;height:100dvh;overflow:hidden;margin:0;padding:0}.sender{width:100%;max-width:820px;margin:auto;padding:12px 16px 20px;display:flex;flex-direction:column;align-items:center;gap:16px;position:relative;z-index:10;box-sizing:border-box}.sender-card{width:100%;max-width:100%;background:#fffffff2;border:1px solid rgba(255,255,255,.7);box-shadow:0 20px 50px #7044502e;border-radius:28px;padding:28px 22px 24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;z-index:10;box-sizing:border-box}.sender-header{text-align:center;margin-bottom:20px}.sender-error{background:#ff3b301a;border:1px solid rgba(255,59,48,.3);border-radius:12px;padding:12px 16px;margin-bottom:20px}.sender-error p{color:#ff3b30;font-size:.9rem;margin:0;text-align:center}.sender-title{font-family:var(--font-display, "DM Serif Display", Georgia, serif);font-size:clamp(1.6rem,4.6vw,2.2rem);color:var(--text-dark, #1a0e2e);margin:0 0 6px;font-weight:400}.sender-subtitle{margin:0;color:#7a4a5abf;font-size:1rem}.sender-counter{position:absolute;top:18px;right:22px;background:#ffffffd9;border-radius:999px;padding:6px 12px;font-weight:600;color:#7a4a5a;box-shadow:0 8px 20px #70445033}.sender-input{width:100%;height:58px;border-radius:18px;border:1px solid rgba(196,150,140,.5);padding:0 18px;font-size:1rem;background:#ffffffd9;color:#6b4b51;outline:none;box-shadow:inset 0 2px 6px #7a4a5a14}.sender-date-selectors{display:flex;gap:12px;width:100%}.sender-select{flex:1;height:58px;border-radius:18px;border:1px solid rgba(196,150,140,.5);padding:0 40px 0 18px;font-size:1rem;background:#ffffffd9;color:#6b4b51;outline:none;box-shadow:inset 0 2px 6px #7a4a5a14;cursor:pointer;font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b4b51' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center}.sender-select:hover{border-color:#c4968cb3}.sender-select:focus{border-color:#c2407e;box-shadow:inset 0 2px 6px #7a4a5a14,0 0 0 3px #c2407e1a}.sender-date-input{font-family:inherit;cursor:pointer;color:#6b4b51;display:flex;align-items:center}.sender-date-input::-webkit-calendar-picker-indicator{cursor:pointer;filter:opacity(.6);width:20px;height:20px}.sender-date-input{font-family:inherit;cursor:pointer;color:#6b4b51}.sender-date-input::-webkit-calendar-picker-indicator{cursor:pointer;filter:opacity(.6)}.sender-input::placeholder{color:#7a4a5a99}.sender-options{display:flex;flex-direction:column;gap:14px}.sender-options-bond{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sender-options-vibe{display:grid;grid-template-columns:1fr;gap:16px}.sender-options-friend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sender-option{width:100%;display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:18px;border:1px solid rgba(196,150,140,.45);background:#fffffff2;color:#8c5b60;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border .2s ease}.sender-option:hover{transform:translateY(-2px);box-shadow:0 14px 26px #70445026}.sender-option.selected{border-color:#c2407e;background:linear-gradient(135deg,#fff0f5,#fff);box-shadow:0 8px 20px #c2407e40}.sender-option-swatch{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:#ffffffe6;border:1px solid rgba(196,150,140,.4);font-size:1.2rem}.sender-options-vibe .sender-option{justify-content:center;font-size:1.1rem;padding:18px 20px;gap:10px}.sender-options-friend .sender-option{flex-direction:column;gap:10px;padding:16px 10px;text-align:center}.sender-options-friend .sender-option-swatch{width:68px;height:68px;border-radius:18px;font-size:1.4rem}.sender-option-label{flex:1;text-align:left}.sender-options-friend .sender-option-label{text-align:center}.sender-next{width:100%;max-width:320px;border:none;border-radius:16px;padding:16px 28px;font-size:1.1rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#c2407e,#e88aab);box-shadow:0 10px 25px #c2407e59;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.sender-next:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.sender-next:not(:disabled):hover{transform:translateY(-3px);box-shadow:0 15px 35px #c2407e73}@media (max-width: 600px){.sender-card{padding:22px 18px 20px}.sender-option{padding:12px 14px;font-size:.95rem}.sender-option-swatch{width:40px;height:40px;font-size:1.1rem}.sender-options-friend{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.sender-options-friend .sender-option{padding:12px 6px}.sender-options-friend .sender-option-swatch{width:52px;height:52px;font-size:1.2rem}}@media (max-width: 420px){.sender-card{padding:20px 16px 18px}.sender-options-bond,.sender-options-friend{grid-template-columns:1fr}.sender-options-friend .sender-option{flex-direction:row;justify-content:flex-start;padding:12px 14px}.sender-options-friend .sender-option-swatch{width:44px;height:44px;font-size:1.1rem}.sender-options-friend .sender-option-label{text-align:left}}.sender-preview{width:100%;max-width:700px;display:flex;flex-direction:column;align-items:center;gap:24px;padding:20px}.preview-title{font-size:clamp(1.8rem,5vw,2.5rem);color:#c2407e;text-align:center;margin:0;font-weight:800}.preview-card{width:100%;background:#fffffff2;border-radius:20px;padding:30px;box-shadow:0 15px 40px #0000001a;border:2px solid #c2407e;position:relative;z-index:10}.preview-name{font-size:2rem;color:#c2407e;text-align:center;margin:0 0 20px;font-weight:700}.preview-details{display:flex;flex-direction:column;gap:15px}.preview-item{display:flex;justify-content:space-between;padding:12px;background:#c2407e0d;border-radius:10px}.preview-label{font-weight:600;color:#7a4a5a}.preview-value{color:#333;text-align:right}.share-section{width:100%;display:flex;flex-direction:column;gap:12px;align-items:center}.share-instruction{font-size:1.2rem;color:#7a4a5a;font-weight:600;margin:0}.share-link-box{width:100%;display:flex;gap:10px}.share-link-input{flex:1;padding:14px 18px;border:2px solid #c2407e;border-radius:12px;font-size:.95rem;background:#fffffff2;color:#333}.copy-link-btn{padding:14px 28px;background:linear-gradient(135deg,#c2407e,#e88aab);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 8px 20px #c2407e4d}.copy-link-btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px #c2407e66}@media (max-width: 600px){.preview-card{padding:20px}.preview-name{font-size:1.6rem}.share-link-box{flex-direction:column}.copy-link-btn{width:100%}}.sender-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.spinner{width:40px;height:40px;border:4px solid rgba(194,64,126,.2);border-top-color:#c2407e;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sender-loading p{color:#7a4a5a;font-size:1rem;font-weight:600}.sender.sender-preview-mode{padding-top:max(24px,env(safe-area-inset-top,24px));gap:8px}.sender-preview-screen{width:100%;max-width:600px;margin:0 auto;padding:10px 16px 20px;position:relative;z-index:10}.sender-back-btn{position:fixed;top:20px;left:20px;background:#fffffff2;border:1px solid rgba(196,150,140,.5);color:#7a4a5a;font-size:1rem;font-weight:600;cursor:pointer;padding:10px 20px;border-radius:12px;transition:all .3s ease;box-shadow:0 4px 12px #70445026;z-index:100}.sender-back-btn:hover{color:#c2407e;border-color:#c2407e;transform:translateY(-2px);box-shadow:0 6px 16px #c2407e40}@media (max-width: 600px){.sender-back-btn,.sender-back-inline{top:12px;left:12px;padding:8px 16px;font-size:.9rem}}.sender-preview-header{text-align:center;margin-bottom:10px}.sender-preview-topbar{display:flex;align-items:center;justify-content:center;width:100%;margin-bottom:2px}.sender-back-inline{position:fixed;top:20px;left:20px;display:inline-flex;align-items:center;gap:4px;background:#fffffff2;border:1px solid rgba(196,150,140,.5);color:#7a4a5a;font-size:1rem;font-weight:600;cursor:pointer;padding:10px 20px;border-radius:12px;transition:all .3s ease;font-family:inherit;box-shadow:0 4px 12px #70445026;z-index:100}.sender-back-inline .back-arrow{font-size:1.1em;line-height:1;margin-top:-1px}.sender-back-inline:hover{color:#c2407e;border-color:#c2407e;transform:translateY(-2px);box-shadow:0 6px 16px #c2407e40}.preview-screen-title{font-size:1.5rem;color:#ffffffeb;margin:0;font-weight:700}.preview-screen-subtitle{color:#fff6;font-size:.9rem;margin:2px 0 0}.preview-actions{margin-top:16px}.register-btn{width:100%;padding:18px 30px;font-size:1.2rem;font-weight:700;background:linear-gradient(135deg,#c2407e,#a83569);color:#fff;border:none;border-radius:60px;cursor:pointer;transition:all .3s ease;box-shadow:0 10px 25px #c2407e4d}.register-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 15px 35px #c2407e66}.register-btn:disabled{opacity:.6;cursor:not-allowed}.share-box{display:flex;flex-direction:column;background:#fffffff2;border-radius:16px;padding:18px;box-shadow:0 10px 30px #0000001a}.share-label{font-size:1rem;font-weight:700;color:#7a4a5a;margin:0 0 10px;text-align:center}.share-row{display:flex;gap:10px;margin-bottom:15px;align-items:center}.share-url{flex:1;padding:12px 16px;border:2px solid #e0e0e0;border-radius:12px;font-size:.95rem;color:#666;background:#f9f9f9;word-break:break-all;font-family:monospace}.price-note{font-size:.9rem;color:#ffffff80;text-align:center;margin:0 0 15px;font-weight:500}.copy-btn{padding:12px 24px;background:linear-gradient(135deg,#c2407e,#a83569);color:#fff;border:none;border-radius:12px;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap}.copy-btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px #c2407e4d}.copy-btn.copied{background:linear-gradient(135deg,#4caf50,#45a049)}.make-another-btn{width:100%;padding:14px 24px;background:#fff;color:#7a4a5a;border:2px solid #7a4a5a;border-radius:12px;font-weight:600;cursor:pointer;transition:all .3s ease}.make-another-btn:hover{background:#7a4a5a;color:#fff}@media (max-width: 480px){.sender.sender-preview-mode{padding:max(20px,env(safe-area-inset-top,20px)) 8px 16px}.sender-preview-screen{padding:6px 10px 16px}.sender-preview-header{margin-bottom:6px}.preview-screen-title{font-size:1.25rem;margin:0 0 2px}.preview-screen-subtitle{font-size:.8rem}.preview-actions{margin-top:10px}.share-row{flex-direction:column}.copy-btn{width:100%}.share-box{padding:14px;border-radius:14px}.register-btn{font-size:1.05rem;padding:14px 24px}}@media (max-width: 380px){.sender-preview-mode .pd-wrapper{transform:scale(.85);transform-origin:top center}.sender.sender-preview-mode{gap:4px}.sender-preview-screen{padding:4px 8px 12px}.preview-screen-title{font-size:1.1rem}.register-btn{font-size:.95rem;padding:12px 20px}}.customize-card{padding:28px 22px 30px}.customize-table{display:flex;flex-direction:column}.customize-row{display:flex;align-items:center;padding:16px 0}.customize-row+.customize-row{border-top:1px solid rgba(196,150,140,.15)}.customize-label{width:64px;flex-shrink:0;font-size:.92rem;font-weight:700;color:#6b3d50}.customize-mid{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:14px}.customize-mid-text-only{gap:8px}.customize-img{width:64px;height:64px;border-radius:14px;object-fit:cover;flex-shrink:0}.customize-text{font-size:.88rem;font-weight:400;color:#5a354599;line-height:1.4;min-width:0}.customize-vibe-emoji{font-size:1.3rem;flex-shrink:0}.customize-change-btn{flex-shrink:0;margin-left:auto;padding:6px 16px;border-radius:20px;border:none;background:#c2407e14;color:#c2407e;font-size:.82rem;font-weight:700;cursor:pointer;transition:background .2s ease;font-family:inherit;white-space:nowrap}.customize-change-btn:hover{background:#c2407e26}@media (max-width: 600px){.customize-card{padding:22px 18px 26px}.customize-row{padding:14px 0}.customize-label{width:56px;font-size:.88rem}.customize-mid{gap:12px}.customize-text{font-size:.84rem}.customize-img{width:56px;height:56px;border-radius:12px}.customize-change-btn{padding:5px 14px;font-size:.8rem}}@media (max-width: 420px){.customize-card{padding:20px 16px 22px}.customize-row{padding:12px 0}.customize-label{width:50px;font-size:.85rem}.customize-mid{gap:10px}.customize-text{font-size:.82rem}.customize-img{width:48px;height:48px;border-radius:10px}.customize-change-btn{padding:5px 12px;font-size:.78rem}}.sender-textarea{width:100%;min-height:220px;border-radius:18px;border:1px solid rgba(196,150,140,.5);padding:16px 18px;font-size:.95rem;font-family:inherit;background:#ffffffd9;color:#6b4b51;outline:none;box-shadow:inset 0 2px 6px #7a4a5a14;resize:vertical;line-height:1.6;box-sizing:border-box}.sender-textarea:focus{border-color:#c2407e;box-shadow:inset 0 2px 6px #7a4a5a14,0 0 0 3px #c2407e1a}.sender-textarea::placeholder{color:#7a4a5a99}.sender-textarea-counter{text-align:right;font-size:.8rem;color:#5a354580;margin-top:6px}.customize-letter-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.pd-wrapper{display:flex;justify-content:center;padding:4px 0 8px}.pd-phone{width:260px;height:480px;border-radius:32px;border:3px solid #2a2a2a;background:linear-gradient(135deg,#0a0612,#0f0a1a 40%,#0d1b2a);overflow:hidden;position:relative;box-shadow:0 20px 50px #0000004d,0 0 0 1px #ffffff14 inset;transition:opacity .4s ease}.pd-phone.pd-fading{opacity:.3}.pd-notch{position:absolute;top:0;left:50%;transform:translate(-50%);width:90px;height:22px;background:#2a2a2a;border-radius:0 0 14px 14px;z-index:20}.pd-home-bar{position:absolute;bottom:6px;left:50%;transform:translate(-50%);width:80px;height:4px;background:#ffffff26;border-radius:4px;z-index:20}.pd-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 14px 20px;animation:pd-screen-in .35s ease;overflow:hidden}@keyframes pd-screen-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}.pd-btn{padding:8px 18px;background:linear-gradient(135deg,#e84393e6,#6c5ce7e6);color:#fff;border-radius:22px;font-size:.65rem;font-weight:700;text-align:center;box-shadow:0 4px 12px #e843934d;animation:pd-btn-appear .35s ease;white-space:nowrap;flex-shrink:0}@keyframes pd-btn-appear{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.pd-btn-slide{animation:pd-slide-click 1.1s ease both}@keyframes pd-slide-click{0%{opacity:0;transform:translateY(4px) scale(.96)}22%{opacity:1;transform:translateY(0) scale(1)}52%{transform:scale(1)}65%{transform:scale(.9);box-shadow:0 2px 6px #c2407e33}78%{transform:scale(1.03)}to{transform:scale(1)}}.pd-btn-celebrate{margin-top:8px;padding:10px 22px;font-size:.7rem;animation:pd-celebrate-click 1.6s ease both,pd-glow 2s ease-in-out infinite}@keyframes pd-celebrate-click{0%{opacity:0;transform:translateY(6px) scale(.95)}18%{opacity:1;transform:translateY(0) scale(1)}55%{transform:scale(1)}68%{transform:scale(.9);box-shadow:0 2px 6px #c2407e33}80%{transform:scale(1.03)}to{transform:scale(1)}}.pd-sneak-btn{padding:6px 14px;background:transparent;color:#ffffff4d;border:1px solid rgba(255,255,255,.08);border-radius:30px;font-size:.5rem;font-weight:500;letter-spacing:.5px;text-align:center;margin-top:14px;animation:pd-btn-appear .4s ease}.pd-sneak-btn.pd-sneak-clicking{animation:pd-sneak-click 1.2s ease both}@keyframes pd-sneak-click{0%{transform:scale(1)}35%{transform:scale(1)}50%{transform:scale(.9);background:#ffffff0f;border-color:#ffffff26}65%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes pd-glow{0%,to{box-shadow:0 4px 12px #e843934d}50%{box-shadow:0 4px 20px #e8439380}}.pd-btn-action{margin-top:auto;width:80%;font-size:.6rem;animation:pd-action-click 1s ease both}@keyframes pd-action-click{0%{opacity:0;transform:translateY(6px) scale(.95)}25%{opacity:1;transform:translateY(0) scale(1)}55%{transform:scale(1)}68%{transform:scale(.9);box-shadow:0 2px 6px #c2407e33}82%{transform:scale(1.03)}to{transform:scale(1)}}.pd-btn-bottom{position:absolute;bottom:28px;left:50%;transform:translate(-50%);width:80%;animation:pd-action-click-bottom 1s ease both}@keyframes pd-action-click-bottom{0%{opacity:0;transform:translate(-50%) translateY(6px) scale(.95)}25%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}55%{transform:translate(-50%) scale(1)}68%{transform:translate(-50%) scale(.9);box-shadow:0 2px 6px #c2407e33}82%{transform:translate(-50%) scale(1.03)}to{transform:translate(-50%) scale(1)}}.pd-cursor{position:absolute;width:16px;height:22px;z-index:100;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='24' viewBox='0 0 17 24'%3E%3Cpath d='M0 0 L0 20 L4.5 15.5 L8 23 L11 21.5 L7.5 14 L13 14 Z' fill='white' stroke='black' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;filter:drop-shadow(0 1px 3px rgba(0,0,0,.35));opacity:0;transition:left .45s cubic-bezier(.4,0,.2,1),top .45s cubic-bezier(.4,0,.2,1),opacity .3s ease;transform:translate(-2px,-2px)}.pd-cursor.pd-cursor-on{opacity:1}.pd-screen-countdown{gap:0;padding-top:40px;justify-content:center}.pd-inv-subtitle{font-size:.48rem;font-weight:400;letter-spacing:1.5px;text-transform:uppercase;color:#ffffff59;margin:0 0 8px;text-align:center;line-height:1.5}.pd-inv-name{font-family:var(--font-display, "DM Serif Display", Georgia, serif);font-size:1.8rem;font-weight:400;font-style:italic;color:#ffffffeb;margin:0;line-height:1.1;letter-spacing:-.02em;text-shadow:0 0 40px rgba(232,67,147,.15);text-align:center}.pd-inv-divider{width:30px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);margin:14px 0}.pd-inv-countdown-label{font-size:.42rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:#ffffff4d;margin:0 0 8px;text-align:center}.pd-timer{display:flex;align-items:flex-start;gap:0;margin:4px 0 0}.pd-cd-group{display:flex;flex-direction:column;align-items:center}.pd-cd-num{font-family:var(--font-body, "Inter", system-ui, sans-serif);font-size:1.6rem;font-weight:300;font-variant-numeric:tabular-nums;color:#ffffffe6;line-height:1;letter-spacing:.04em}.pd-cd-label{font-size:.38rem;font-weight:500;text-transform:uppercase;letter-spacing:1.5px;color:#ffffff59;margin-top:4px}.pd-cd-colon{font-family:var(--font-display, "DM Serif Display", Georgia, serif);font-size:1.3rem;font-weight:400;color:#ffffff40;padding:0 5px;line-height:1}.pd-btn-cta{margin-top:16px;padding:8px 28px;font-size:.6rem;letter-spacing:1.5px;text-transform:uppercase}@keyframes pd-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.pd-screen-qr{gap:10px;padding-top:44px}.pd-heart-card{border-radius:10px;overflow:hidden;box-shadow:0 6px 20px #00000040;transition:transform .4s ease,opacity .4s ease;width:180px}.pd-heart-card.pd-qr-scanning{transform:scale(.92);opacity:.6}.pd-heart-img-wrap{position:relative;width:100%}.pd-heart-img{width:100%;height:auto;display:block;border-radius:10px}.pd-heart-name-overlay{position:absolute;top:0;left:0;right:0;background:linear-gradient(180deg,#fff0f0 60%,#fff0f0f2);padding:10px 6px 4px;text-align:center;font-family:var(--font-display, "DM Serif Display", Georgia, serif);font-size:.62rem;font-weight:700;color:#e84393;line-height:1.2}.pd-scan-line{position:absolute;left:4%;right:4%;height:3px;background:linear-gradient(90deg,transparent 0%,#e84393 15%,#ff6b9d 50%,#e84393 85%,transparent 100%);box-shadow:0 0 12px #e84393cc,0 0 30px #e8439366,0 0 50px #e8439326;border-radius:2px;animation:pd-scan-sweep 1.8s ease-in-out infinite}.pd-scan-line:before{content:"";position:absolute;left:0;right:0;top:-8px;height:20px;background:linear-gradient(180deg,transparent,rgba(232,67,147,.12),transparent);pointer-events:none}@keyframes pd-scan-sweep{0%,to{top:15%;opacity:.5}50%{top:85%;opacity:1}}.pd-qr-hint{font-size:.5rem;color:#ffffff4d;margin:0;animation:pd-pulse 2s ease-in-out infinite}.pd-qr-loading{display:flex;align-items:center;gap:6px;font-size:.5rem;color:#ffffff80}.pd-qr-spinner{width:12px;height:12px;border:2px solid rgba(255,255,255,.15);border-top-color:#e84393;border-radius:50%;animation:pd-spin .8s linear infinite}@keyframes pd-spin{to{transform:rotate(360deg)}}.pd-screen-slides{padding:28px 10px 16px}.pd-slides-card{width:100%;background:#ffffff0a;border-radius:18px;padding:22px 14px 16px;box-shadow:none;border:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;align-items:center;gap:10px;min-height:340px;justify-content:center}.pd-char-img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid transparent}.pd-slide-text{font-size:.82rem;font-weight:700;color:#ffffffe0;text-align:center;line-height:1.35;padding:0 4px;min-height:40px;animation:pd-slide-in .35s ease}@keyframes pd-slide-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.pd-dots{display:flex;gap:6px;margin-top:8px}.pd-dot{width:8px;height:8px;border-radius:50%;background:#ffffff26;transition:all .3s ease}.pd-dot-active{background:#e84393;transform:scale(1.3);box-shadow:0 0 6px #e8439380}.pd-dot-done{background:#e8439366}.pd-screen-celebration{background:transparent;transition:background .6s ease-in-out;gap:10px;justify-content:flex-start;padding-top:36px}.pd-screen-celebration.pd-celeb-dark{background:linear-gradient(135deg,#0f0a1a,#1a0e2e,#0d1b2a 60%,#0f0a1a)}.pd-string-lights{position:absolute;top:24px;left:0;width:100%;height:20px;display:flex;justify-content:space-evenly;align-items:center;z-index:5}.pd-light-bulb{width:8px;height:8px;border-radius:50%;animation:pd-twinkle 1.5s ease-in-out infinite}.pd-lb-0{background:#ff4757;box-shadow:0 0 8px #ff4757}.pd-lb-1{background:gold;box-shadow:0 0 8px gold}.pd-lb-2{background:#00d2ff;box-shadow:0 0 8px #00d2ff}.pd-lb-3{background:#7bed9f;box-shadow:0 0 8px #7bed9f}@keyframes pd-twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.7)}}.pd-celeb-title{font-size:.95rem;font-weight:800;color:#ffffffe0;text-align:center;margin-top:60px;text-shadow:0 0 20px rgba(232,67,147,.3)}.pd-balloons{display:flex;justify-content:space-evenly;align-items:flex-end;width:100%;height:180px;padding:10px 5px;animation:pd-balloons-rise .8s ease-out;margin-top:20px}@keyframes pd-balloons-rise{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}.pd-balloon-item{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;min-width:40px}.pd-mini-balloon{display:flex;flex-direction:column;align-items:center;animation:pd-float 3s ease-in-out infinite}.pd-mb-body{width:32px;height:40px;border-radius:50%/58% 58% 42% 42%;box-shadow:inset -6px -8px 14px #0000001f;position:relative}.pd-mb-body:before{content:"";position:absolute;top:18%;left:20%;width:10px;height:12px;background:#ffffff8c;border-radius:50%}.pd-mb-string{width:1px;height:40px;background:linear-gradient(to bottom,#ffffff4d,#ffffff14);margin-top:-2px}.pd-mb-0 .pd-mb-body{background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.5),transparent 55%),#e86b86}.pd-mb-1 .pd-mb-body{background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.5),transparent 55%),#e1a334}.pd-mb-2 .pd-mb-body{background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.5),transparent 55%),#4db66a}.pd-mb-3 .pd-mb-body{background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.5),transparent 55%),#4d8fd0}@keyframes pd-float{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}.pd-mini-balloon.pd-burst{animation:pd-balloon-burst .4s ease forwards}@keyframes pd-balloon-burst{0%{transform:translateY(0) rotate(-2deg) scale(1);opacity:1}50%{transform:translateY(0) scale(1.5);opacity:.4}to{transform:translateY(0) scale(1.8);opacity:0}}.pd-pop-word{font-size:.85rem;font-weight:800;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);opacity:0;transition:opacity .3s ease .15s,transform .35s cubic-bezier(.34,1.56,.64,1) .15s}.pd-pop-word.pd-word-show{transform:translate(-50%,-50%) scale(1);opacity:1}.pd-pop-label{font-size:.6rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#e84393e6,#6c5ce7e6);padding:5px 14px;border-radius:20px;box-shadow:0 3px 10px #e8439366;margin-top:8px}.pd-special-text{font-size:.85rem;font-weight:800;color:#fff;text-align:center;text-shadow:0 2px 8px rgba(0,0,0,.3);animation:pd-fade-in .5s ease;margin-top:20px}.pd-birthday-lights{display:flex;justify-content:center;gap:1px;animation:pd-fade-in .5s ease}.pd-light-letter{font-size:.75rem;font-weight:900;text-transform:uppercase;animation:pd-blinkLight 1.4s ease-in-out infinite;text-shadow:0 0 4px currentColor,0 0 8px currentColor;font-family:Segoe UI,system-ui,sans-serif}.pd-ll-0{color:#ff4757}.pd-ll-1{color:gold}.pd-ll-2{color:#00d2ff}.pd-ll-3{color:#7bed9f}@keyframes pd-blinkLight{0%,to{opacity:1;text-shadow:0 0 4px currentColor,0 0 10px currentColor,0 0 16px currentColor}50%{opacity:.3;text-shadow:0 0 1px currentColor}}.pd-cake-area{flex:1;display:flex;align-items:center;justify-content:center;width:100%;margin-top:10px;animation:pd-cake-entrance .6s cubic-bezier(.34,1.56,.64,1)}@keyframes pd-cake-entrance{0%{opacity:0;transform:scale(.7) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.pd-cake-stack{position:relative;width:140px;height:140px}.pd-cake-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 16px rgba(0,0,0,.25));opacity:0;transform:scale(.96);transition:opacity .5s ease,transform .5s ease}.pd-cake-layer.pd-cake-active{opacity:1;transform:scale(1)}.pd-screen-message{background:linear-gradient(135deg,#0f0a1a,#1a0e2e,#0d1b2a)}.pd-envelope-area{display:flex;flex-direction:column;align-items:center;gap:12px}.pd-envelope-label{font-size:.72rem;font-weight:700;color:#ffffffb3;text-align:center}.pd-envelope-img{width:160px;height:auto;filter:drop-shadow(0 6px 14px rgba(0,0,0,.15));transition:transform .5s cubic-bezier(.34,1.56,.64,1)}.pd-envelope-img.pd-env-opening{transform:scale(1.05)}.pd-tap-hint{font-size:.55rem;color:#ffffff59;animation:pd-pulse 2s ease-in-out infinite}.pd-env-tap{animation:pd-env-press .85s ease both}@keyframes pd-env-press{0%{transform:scale(1)}53%{transform:scale(1)}66%{transform:scale(.92)}80%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes pd-pulse{0%,to{opacity:.6}50%{opacity:1}}.pd-letter{width:100%;padding:0 8px;animation:pd-letter-settle .8s cubic-bezier(.34,1.56,.64,1)}@keyframes pd-letter-settle{0%{opacity:0;transform:scale(.7) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}.pd-letter-card{background:#fffef5;border:1px solid #d4a574;border-radius:12px;padding:16px 14px;position:relative;box-shadow:0 6px 20px #0000001a;min-height:300px}.pd-letter-char{position:absolute;bottom:8px;right:8px;width:36px;height:36px;border-radius:50%;object-fit:cover;opacity:.85}.pd-letter-body{font-size:.68rem;color:#5a3e42;line-height:1.6;font-family:var(--font-handwritten, "Caveat", cursive)}.pd-letter-body p{margin:0 0 7px}.pd-letter-dim{color:#9a7a7e}.pd-tw-cursor{display:inline;color:#e84393;font-weight:400;animation:pd-blink-cursor .6s step-end infinite}@keyframes pd-blink-cursor{0%,to{opacity:1}50%{opacity:0}}.pd-letter-sign{font-weight:700;margin-top:10px}@media (max-width: 320px){.pd-phone{width:230px;height:430px}.pd-slides-card{min-height:300px;padding:16px 10px 12px}.pd-char-img{width:50px;height:50px}.pd-slide-text{font-size:.72rem;color:#ffffffe0}.pd-cake-stack{width:110px;height:110px}}.qr-share-card{margin:16px 0;text-align:center}.qr-share-card__loading{display:flex;flex-direction:column;align-items:center;gap:10px;padding:30px 0;color:#7a4a5a;font-size:.9rem}.qr-share-card__spinner{width:32px;height:32px;border:3px solid rgba(232,67,147,.2);border-top-color:#e84393;border-radius:50%;animation:qr-spin .8s linear infinite}@keyframes qr-spin{to{transform:rotate(360deg)}}.qr-share-card__preview{display:flex;justify-content:center;margin-bottom:14px}.qr-share-card__image{width:100%;max-width:280px;height:auto;border-radius:16px;box-shadow:0 8px 30px #e8439326;border:1px solid rgba(232,67,147,.1)}.qr-share-card__actions{display:flex;gap:10px;justify-content:center}.qr-share-card__btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;border:none;font-family:inherit}.qr-share-card__btn--share{background:linear-gradient(135deg,#25d366,#128c7e);color:#fff;box-shadow:0 6px 18px #25d3664d}.qr-share-card__btn--share:hover{transform:translateY(-2px);box-shadow:0 10px 25px #25d36666}.qr-share-card__btn--download{background:linear-gradient(135deg,#c2407e,#a83569);color:#fff;box-shadow:0 6px 18px #c2407e4d}.qr-share-card__btn--download:hover{transform:translateY(-2px);box-shadow:0 10px 25px #c2407e66}.qr-share-card__btn--copy{background:linear-gradient(135deg,#6c5ce7,#a29bfe);color:#fff;box-shadow:0 6px 18px #6c5ce74d}.qr-share-card__btn--copy:hover{transform:translateY(-2px);box-shadow:0 10px 25px #6c5ce766}.qr-share-card__btn--browser{background:linear-gradient(135deg,#e17055,#d63031);color:#fff;box-shadow:0 6px 18px #d630314d}.qr-share-card__btn--browser:hover{transform:translateY(-2px);box-shadow:0 10px 25px #d6303166}.qr-share-card__hint{font-size:.85rem;color:#a06060;margin:10px 0 12px;font-weight:500;line-height:1.4}@media (max-width: 480px){.qr-share-card__image{max-width:240px}.qr-share-card__actions{flex-direction:column;align-items:center}.qr-share-card__btn{width:100%;max-width:280px;justify-content:center;padding:14px 24px}}.music-toggle{position:fixed;right:25px;top:25px;top:max(env(safe-area-inset-top,25px),25px);z-index:100;background:#fffffffa;color:#c2407e;border:2px solid #c2407e;padding:12px 20px;border-radius:30px;cursor:pointer;font-size:.95rem;font-weight:600;transition:background .3s ease,color .3s ease,box-shadow .3s ease,transform .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 12px #00000026;pointer-events:all}@media (min-width: 601px){.music-toggle{animation:slideInFromTop .6s ease-out forwards}@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}}.music-toggle:hover{background:#c2407e;color:#fff;box-shadow:0 6px 16px #c2407e66}@media (hover: hover){.music-toggle:hover{transform:scale(1.05)}}.music-toggle:active{transform:scale(.98)}@media (max-width: 600px){.music-toggle{right:15px;top:15px;top:max(env(safe-area-inset-top,15px),15px);padding:10px 16px;font-size:.9rem;animation:slideInMobile .5s cubic-bezier(.34,1.56,.64,1) forwards;transition:background .3s ease,color .3s ease,box-shadow .3s ease}@keyframes slideInMobile{0%{opacity:0;transform:translateY(-20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}}@media (max-width: 375px){.music-toggle{right:12px;top:12px;top:max(env(safe-area-inset-top,12px),12px);padding:8px 14px;font-size:.85rem;animation:slideInMobile .5s cubic-bezier(.34,1.56,.64,1) forwards;transition:background .3s ease,color .3s ease,box-shadow .3s ease}}.sparkle-field{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:hidden;opacity:1;transition:opacity 1s ease-in-out}.sparkle-delay{opacity:0;animation:sparkle-reveal .6s ease forwards;animation-delay:5s}@keyframes sparkle-reveal{to{opacity:1}}.sparkle-particle{position:absolute;bottom:-5%;width:var(--size);height:var(--size);border-radius:50%;opacity:0;animation:floatSparkle linear infinite;will-change:transform,opacity}.sparkle-type-0{background:radial-gradient(circle,gold,#ffd70000);box-shadow:0 0 8px #ffd700cc,0 0 16px #ffd7004d}.sparkle-type-1{background:radial-gradient(circle,var(--primary-light, #fd79a8),rgba(253,121,168,0));box-shadow:0 0 6px #fd79a880,0 0 10px #fd79a826;transform:rotate(45deg);border-radius:2px;width:calc(var(--size) * .7);height:calc(var(--size) * .7)}.sparkle-type-2{background:radial-gradient(circle,#fff,#fff0);box-shadow:0 0 10px #ffffffe6,0 0 20px #ffffff4d}.sparkle-type-3{background:radial-gradient(circle,#6c5ce7e6,#6c5ce700);box-shadow:0 0 10px #6c5ce799,0 0 20px #6c5ce733;width:calc(var(--size) * 1.5);height:calc(var(--size) * 1.5);filter:blur(1px)}.sparkle-type-4{background:#ffeaa7;box-shadow:0 0 3px #ffeaa7;width:calc(var(--size) * .5);height:calc(var(--size) * .5)}@keyframes floatSparkle{0%{bottom:-5%;transform:translate(0) scale(0);opacity:0}8%{opacity:var(--peak-opacity);transform:translate(calc(var(--drift) * .1)) scale(1)}50%{transform:translate(var(--drift)) scale(1.2);opacity:var(--peak-opacity)}92%{opacity:var(--peak-opacity, .3);transform:translate(calc(var(--drift) * -.5)) scale(.8)}to{bottom:105%;transform:translate(calc(var(--drift) * -1)) scale(0);opacity:0}}.start-page{position:fixed;top:0;left:0;width:100vw;width:100dvw;height:100vh;height:100dvh;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;align-items:center;padding:20px 20px 0;box-sizing:border-box}.start-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem}.start-footer{margin-top:auto;flex-shrink:0;text-align:center;font-size:.85rem;color:#5a5a72;padding:14px 20px;width:100%}.footer-link{color:#c2407e;text-decoration:none;font-weight:600}.footer-link:hover{text-decoration:underline}@media (max-width: 480px){.start-page{padding:15px 15px 0}.start-footer{font-size:.75rem;padding:10px 15px}}.celebration-page{position:fixed;top:0;left:0;width:100vw;width:100dvw;height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;margin:0;box-sizing:border-box;transition:background 1.5s ease-in-out}.slides-container{position:relative;z-index:1;max-width:520px;width:90%;padding:48px 36px;background:#ffffff0f;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:32px;box-shadow:0 24px 64px #0003,0 0 0 1px #ffffff0f inset;border:1px solid rgba(255,255,255,.08);margin:auto;box-sizing:border-box}.slides-container:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:34px;background:linear-gradient(135deg,#e8439333,#f9ca241a,#6c5ce733,#e8439333);background-size:300% 300%;animation:borderGlow 6s ease infinite;z-index:-1;filter:blur(4px);opacity:.4}@keyframes borderGlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.slide-content{text-align:center;min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center}.slide-icon{margin-bottom:24px;display:flex;align-items:center;justify-content:center}.slide-character-image{width:110px;height:110px;object-fit:cover;border-radius:50%;border:3px solid transparent;background-image:linear-gradient(#1a1025,#1a1025),linear-gradient(135deg,#e8439380,#f9ca244d);background-origin:border-box;background-clip:padding-box,border-box;box-shadow:0 8px 24px #e8439333;animation:gentleFloat 4s ease-in-out infinite}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.slide-text{font-family:var(--font-display, "DM Serif Display", Georgia, serif);font-size:1.9rem;color:#ffffffe0;margin-bottom:36px;line-height:1.35;font-weight:400}.typewriter-cursor{color:var(--primary, #e84393);animation:cursorBlink .8s step-end infinite;font-weight:300;margin-left:2px}.next-button{padding:14px 48px;font-size:1.15rem;font-weight:700;font-family:var(--font-body, "Inter", system-ui, sans-serif);background:linear-gradient(135deg,#e84393,#d63384);color:#fff;border:none;border-radius:50px;cursor:pointer;box-shadow:0 8px 24px #e843934d;transition:all .3s cubic-bezier(.22,1,.36,1);margin-top:8px;position:relative;overflow:hidden;letter-spacing:.02em}.next-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:btnSweep 3s ease-in-out infinite}.next-button:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 12px 32px #e8439366}.next-button:active{transform:translateY(-1px) scale(1.01)}.slide-progress{display:flex;justify-content:center;gap:8px;margin-top:28px}.progress-dot{width:8px;height:8px;border-radius:50%;background:#ffffff1a;transition:all .4s cubic-bezier(.22,1,.36,1)}.progress-dot.active{background:#e84393;width:24px;border-radius:4px;box-shadow:0 0 12px #e8439366}.progress-dot.completed{background:#fd79a8}.celebration-buttons{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:50;max-width:600px;width:90%;padding:20px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0;transition:all .8s cubic-bezier(.4,0,.2,1);pointer-events:none}.celebration-title{font-family:var(--font-display, "DM Serif Display", Georgia, serif);font-size:2.4rem;color:#ffffffd9;margin-bottom:8px;margin-top:0;font-weight:400;font-style:italic}.celebration-subtitle{font-size:1.05rem;color:#fff6;margin-bottom:28px;font-weight:500;font-family:var(--font-body, "Inter", system-ui, sans-serif)}.buttons-grid{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:10px;width:100%}.action-button{padding:16px 30px;font-size:1.1rem;font-weight:700;font-family:var(--font-body, "Inter", system-ui, sans-serif);border:none;border-radius:60px;cursor:pointer;transition:all .4s cubic-bezier(.22,1,.36,1);color:#fff;position:relative;width:80%;max-width:380px;pointer-events:auto;overflow:hidden;letter-spacing:.02em}.action-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);animation:btnSweep 3s ease-in-out infinite}.action-button:hover:not(:disabled){transform:translateY(-4px) scale(1.03)}.action-button:active:not(:disabled){transform:translateY(-1px) scale(1.01)}.action-button:disabled{cursor:not-allowed;opacity:.5}.lights-button{background:linear-gradient(135deg,#f9ca24,#f0932b);box-shadow:0 8px 24px #f9ca2459}.lights-button:hover:not(:disabled){box-shadow:0 12px 32px #f9ca2480,0 0 0 4px #f9ca241f}.music-button{background:linear-gradient(135deg,#6c5ce7,#a29bfe);box-shadow:0 8px 24px #6c5ce759}.music-button:hover:not(:disabled){box-shadow:0 12px 32px #6c5ce780,0 0 0 4px #6c5ce71f}.decorate-button{background:linear-gradient(135deg,#e84393,#fd79a8);box-shadow:0 8px 24px #e8439359}.decorate-button:hover:not(:disabled){box-shadow:0 12px 32px #e8439380,0 0 0 4px #e843931f}.blow-button{background:linear-gradient(135deg,#00cec9,#55efc4);box-shadow:0 8px 24px #00cec959;color:#1a0e2e}.blow-button:hover:not(:disabled){box-shadow:0 12px 32px #00cec980,0 0 0 4px #00cec91f}.cut-button{background:linear-gradient(135deg,#e17055,#fab1a0);box-shadow:0 8px 24px #e1705559}.cut-button:hover:not(:disabled){box-shadow:0 12px 32px #e1705580,0 0 0 4px #e170551f}.message-button{background:linear-gradient(135deg,#e84393,#6c5ce7);box-shadow:0 8px 24px #e8439359;font-size:.95rem;animation:messageGlow 2.5s ease-in-out infinite}@keyframes messageGlow{0%,to{box-shadow:0 8px 24px #e8439359}50%{box-shadow:0 12px 36px #e8439380,0 0 0 6px #6c5ce714}}.string-lights{position:absolute;top:0;left:0;width:100%;height:50px;z-index:10}.string-lights:before{content:"";position:absolute;top:6px;left:2%;right:2%;height:2px;background:#ffffff26;border-radius:1px}.light{position:absolute;top:8px;width:12px;height:18px;border-radius:50%/35% 35% 65% 65%;animation:twinkle 1.5s ease-in-out infinite;z-index:1}.light:before{content:"";position:absolute;top:-4px;left:50%;transform:translate(-50%);width:4px;height:5px;background:#fff3;border-radius:1px 1px 0 0}.light-0{background:radial-gradient(circle at 40% 30%,#ff6b81,#ff4757);box-shadow:0 0 12px #ff4757,0 0 24px #ff47574d}.light-1{background:radial-gradient(circle at 40% 30%,#ffdd59,#ffc312);box-shadow:0 0 12px #ffc312,0 0 24px #ffc3124d}.light-2{background:radial-gradient(circle at 40% 30%,#4bcffa,#0abde3);box-shadow:0 0 12px #0abde3,0 0 24px #0abde34d}.light-3{background:radial-gradient(circle at 40% 30%,#a8ff78,#78e08f);box-shadow:0 0 12px #78e08f,0 0 24px #78e08f4d}@keyframes twinkle{0%,to{opacity:1;filter:brightness(1.2)}50%{opacity:.4;filter:brightness(.6)}}.decorations-container{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;z-index:5;pointer-events:none}.balloon-instruction{position:absolute;top:10%;left:50%;transform:translate(-50%);z-index:25;font-size:clamp(1rem,2.5vw,1.3rem);font-weight:700;font-family:var(--font-body, "Inter", system-ui, sans-serif);color:#fff;background:#ffffff1f;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:12px 28px;border-radius:50px;border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #00000026;animation:pulseText 2s ease-in-out infinite;pointer-events:none;text-align:center;letter-spacing:.5px;white-space:nowrap;max-width:90vw}@keyframes pulseText{0%,to{opacity:1;transform:translate(-50%) scale(1)}50%{opacity:1;transform:translate(-50%) scale(1.02)}}.decoration-balloons{position:absolute;top:35%;left:0;width:100%;height:50%;z-index:20;display:flex;align-items:center;justify-content:center;pointer-events:none}.decoration-balloons.balloons-dim{opacity:.3;filter:blur(1px);transition:all .6s ease}.decoration-balloons.hide-balloon-text .balloon-text{opacity:0!important;transform:translate(-50%,-50%) scale(.6)}.balloon-wrapper{position:absolute;bottom:0;--balloon-shift: 0px;transform:translate(-50%,var(--balloon-shift));display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;pointer-events:auto}.balloon-wrapper:nth-child(1){--balloon-shift: -10px}.balloon-wrapper:nth-child(2){--balloon-shift: 0px}.balloon-wrapper:nth-child(3){--balloon-shift: -6px}.balloon-wrapper:nth-child(4){--balloon-shift: -12px}.page-balloon{position:relative;cursor:pointer;transition:transform .2s ease;animation:float-balloon 3s ease-in-out infinite}.interactive-balloon:active{transform:scale(.92)}.click-hint{position:absolute;top:-30px;left:50%;transform:translate(-50%);background:#ffffff1a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:4px 10px;border-radius:10px;font-size:.75rem;font-weight:700;color:#fffc;opacity:0;transition:opacity .3s ease;white-space:nowrap;pointer-events:none;border:1px solid rgba(255,255,255,.1)}.page-balloon:hover .click-hint{opacity:1}.balloon-text{font-family:var(--font-display, "DM Serif Display", Georgia, serif);font-size:2.5rem;font-weight:400;font-style:italic;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.4),0 0 20px rgba(255,255,255,.2);position:absolute;top:30%;left:50%;transform:translate(-50%,-50%) scale(0);opacity:0;white-space:nowrap;z-index:21;pointer-events:none}@keyframes float-balloon{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-15px) rotate(2deg)}}.balloon-body{width:92px;height:118px;border-radius:50%/58% 58% 42% 42%;position:relative;box-shadow:inset -16px -18px 30px #00000029,0 10px 24px #00000040;transition:transform .3s ease}.balloon-body:before{content:"";position:absolute;top:14%;left:16%;width:30px;height:38px;background:#ffffffb3;border-radius:50%;filter:blur(1px)}.balloon-body:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%) rotate(45deg);width:12px;height:12px;border-radius:2px}.page-balloon:hover .balloon-body{transform:scale(1.08)}.balloon-0 .balloon-body{background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.65),transparent 55%),#e86b86}.balloon-0 .balloon-body:after{background:#d15a75}.balloon-1 .balloon-body{background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.65),transparent 55%),#e1a334}.balloon-1 .balloon-body:after{background:#c99028}.balloon-2 .balloon-body{background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.65),transparent 55%),#4db66a}.balloon-2 .balloon-body:after{background:#3fa15c}.balloon-3 .balloon-body{background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.65),transparent 55%),#4d8fd0}.balloon-3 .balloon-body:after{background:#3e7cb8}.balloon-string{width:1.5px;height:180px;background:linear-gradient(to bottom,#fff9,#ffffff26);margin:0 auto;position:relative;border-radius:999px;transform-origin:top center}.balloon-wrapper:nth-child(1) .balloon-string{transform:rotate(12deg)}.balloon-wrapper:nth-child(2) .balloon-string{transform:rotate(4deg)}.balloon-wrapper:nth-child(3) .balloon-string{transform:rotate(-6deg)}.balloon-wrapper:nth-child(4) .balloon-string{transform:rotate(-14deg)}.birthday-banner-zone{position:absolute;top:7%;left:0;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;z-index:25;pointer-events:none}.banner-wire{width:min(420px,85vw);height:18px;margin-bottom:2px;filter:drop-shadow(0 0 2px rgba(255,255,255,.1))}.birthday-lights-text{display:flex;justify-content:center;gap:3px;white-space:nowrap;position:relative}.light-letter{font-family:var(--font-display, "DM Serif Display", Georgia, serif);font-size:clamp(2.8rem,7vw,4.2rem);font-weight:400;font-style:italic;animation:neonFlicker 2s ease-in-out infinite;text-shadow:0 0 6px currentColor,0 0 14px currentColor,0 0 28px currentColor,0 0 50px currentColor;position:relative}.light-letter:before{content:"";position:absolute;top:-10px;left:50%;transform:translate(-50%);width:1px;height:10px;background:linear-gradient(to bottom,#ffffff0f,#ffffff24)}.light-letter-space:before{display:none}.light-color-0{color:#ff6b81}.light-color-1{color:#ffd32a}.light-color-2{color:#4bcffa}.light-color-3{color:#a8ff78}@keyframes neonFlicker{0%,91%,94%,97%,to{opacity:1;text-shadow:0 0 6px currentColor,0 0 14px currentColor,0 0 28px currentColor,0 0 50px currentColor}92%{opacity:.6;text-shadow:0 0 4px currentColor}93%{opacity:1}95%{opacity:.7;text-shadow:0 0 4px currentColor}96%{opacity:1}}.cake-container{position:absolute;bottom:22%;left:50%;transform:translate(-50%);z-index:30;opacity:1;transition:all .6s cubic-bezier(.4,0,.2,1);animation:cake-entrance 1s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes cake-entrance{0%{opacity:0;transform:translate(-50%) translateY(50px) scale(.8)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.cake-stage{position:relative;width:min(360px,75vw);aspect-ratio:1 / 1;transition:transform .4s ease-out}.cake-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 30px rgba(0,0,0,.35));animation:float-cake 4s ease-in-out infinite;opacity:0;transform:scale(.95);transition:opacity .6s ease-in-out,transform .6s ease-out}.cake-layer.active{opacity:1;transform:scale(1)}@keyframes float-cake{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.02)}}@media (max-width: 768px){.cake-stage{width:min(320px,70vw)}.cake-container{bottom:20%;left:50%;top:auto;transform:translate(-50%)}.birthday-banner-zone{top:7%}.celebration-title{font-size:2rem}.celebration-subtitle{font-size:1rem}.slide-text{font-size:1.45rem}.action-button{padding:16px 24px;font-size:1.05rem}.buttons-grid{gap:12px}.message-button{font-size:.95rem}.balloon-body{width:60px;height:80px}.balloon-text{font-size:2rem;top:35%}.balloon-string{height:70px}.decoration-balloons{height:50%;top:32%}}@media (max-width: 480px){.celebration-page{padding:15px;padding-top:max(env(safe-area-inset-top),15px);padding-bottom:0;height:100vh;height:100dvh;justify-content:flex-start;overflow:hidden}.slides-container{padding:24px 18px;max-width:100%}.slides-container:before{display:none}.celebration-buttons{padding:8px 12px;max-width:100%;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0 auto;transition:all .8s cubic-bezier(.4,0,.2,1)}.buttons-grid{gap:12px;margin:0;padding:0}.slide-text{font-size:1.2rem;line-height:1.4;padding:0 8px}.slide-icon{margin-bottom:16px}.slide-character-image{width:90px;height:90px}.balloon-instruction{font-size:.95rem;padding:10px 20px;white-space:nowrap;max-width:95vw}.next-button{padding:14px 36px;font-size:1.05rem}.action-button{padding:16px 24px;font-size:1rem;width:100%;max-width:340px}.celebration-title{font-size:1.8rem;margin-bottom:6px}.celebration-subtitle{font-size:.95rem;margin-bottom:18px}.decorations-container{top:0;right:0;bottom:0;left:0}.decoration-balloons{top:30%;height:45%}.balloon-body{width:52px;height:70px}.balloon-text{font-size:1.5rem;top:38%;white-space:nowrap;max-width:90vw}.balloon-wrapper:nth-child(1) .balloon-text{left:15%}.balloon-wrapper:nth-child(2) .balloon-text{left:35%}.balloon-wrapper:nth-child(3) .balloon-text{left:65%}.balloon-wrapper:nth-child(4) .balloon-text{left:85%}.balloon-string{height:80px}.birthday-banner-zone{top:8%}.cake-container{bottom:20%;left:50%;top:auto;transform:translate(-50%)}.cake-stage{width:min(280px,65vw)}}@supports (-webkit-touch-callout: none){.celebration-page{height:-webkit-fill-available}}@media (max-width: 375px){.celebration-title{font-size:1.5rem}.balloon-instruction{font-size:.85rem;padding:8px 16px;white-space:nowrap;max-width:96vw}.slide-text{font-size:1.1rem}.action-button{padding:14px 20px;font-size:.95rem}.decoration-balloons{top:28%;height:45%}.balloon-text{font-size:1.3rem;top:40%;white-space:nowrap;max-width:90vw}.balloon-wrapper:nth-child(1) .balloon-text{left:12%}.balloon-wrapper:nth-child(2) .balloon-text{left:32%}.balloon-wrapper:nth-child(3) .balloon-text{left:68%}.balloon-wrapper:nth-child(4) .balloon-text{left:88%}.birthday-banner-zone{top:8%}.cake-container{bottom:18%;left:50%;top:auto;transform:translate(-50%)}.cake-stage{width:min(250px,60vw)}.decorations-container{top:0;right:0;bottom:0;left:0}.celebration-page{height:auto;min-height:100dvh}.celebration-buttons{bottom:0}}.confetti-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;background:transparent}.cd{padding:16px 0;max-width:500px;margin:0 auto}.cd-row{display:flex;justify-content:center;align-items:flex-start}.cd-group{display:flex;align-items:flex-start}.cd-colon{font-family:var(--font-display, "DM Serif Display", Georgia, serif);font-size:clamp(2.2rem,6vw,3.5rem);font-weight:400;color:#ffffff2e;padding:0 6px;line-height:1;-webkit-user-select:none;user-select:none;animation:colonBlink 2s ease-in-out infinite}@keyframes colonBlink{0%,to{opacity:.3}50%{opacity:.08}}.cd-block{display:flex;flex-direction:column;align-items:center;min-width:60px}.cd-num{font-family:var(--font-body, "Inter", system-ui, sans-serif);font-size:clamp(2.4rem,7vw,4rem);font-weight:200;font-variant-numeric:tabular-nums;color:#ffffffe0;line-height:1;letter-spacing:.04em;text-shadow:0 0 40px rgba(255,255,255,.06);transition:color .3s ease}.cd-label{font-family:var(--font-body, "Inter", system-ui, sans-serif);font-size:.6rem;font-weight:500;text-transform:uppercase;letter-spacing:2.5px;color:#ffffff40;margin-top:8px}@media (max-width: 480px){.cd-block{min-width:48px}.cd-colon{padding:0 4px}}@media (max-width: 375px){.cd-block{min-width:42px}}.balloon{position:fixed;bottom:-150px;font-size:3rem;z-index:999;pointer-events:none;animation:floatUp 8s ease-out forwards}@keyframes floatUp{0%{transform:translateY(0) translate(0) rotate(0);opacity:1}to{transform:translateY(-120vh) translate(var(--drift)) rotate(var(--rotate));opacity:0}}.balloon:after{content:"";position:absolute;bottom:-20px;left:50%;width:2px;height:30px;background:#666;transform:translate(-50%)}.firework{position:fixed;width:4px;height:4px;border-radius:50%;z-index:999;pointer-events:none}.firework-particle{position:absolute;width:100%;height:100%;border-radius:50%;animation:explode 1.5s ease-out forwards}@keyframes explode{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--tx),var(--ty)) scale(0);opacity:0}}.cracker{position:fixed;font-size:2.5rem;z-index:999;pointer-events:none;animation:popCracker 1s ease-out forwards}@keyframes popCracker{0%{transform:scale(0) rotate(0);opacity:1}50%{transform:scale(1.5) rotate(180deg);opacity:1}to{transform:scale(.5) rotate(360deg);opacity:0}}.message{padding:10px 12px 18px;max-width:100%;width:100%;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;height:100%;box-sizing:border-box}.message h2{font-family:var(--font-display, "DM Serif Display", Georgia, serif);font-size:1.5rem;margin:6px 0 14px;color:#ffffffb3;text-align:center;font-weight:400;font-style:italic}.card-stage{position:relative;width:min(720px,95vw);max-width:100%;height:min(880px,85vh);display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none;margin:0 auto}.card-asset{position:absolute;top:0;left:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;transition:opacity .7s cubic-bezier(.4,0,.2,1),transform 1s cubic-bezier(.34,1.56,.64,1);pointer-events:none}.hidden{opacity:0;pointer-events:none}.letter-settle{animation:letterReveal 1.2s cubic-bezier(.34,1.56,.64,1) forwards;pointer-events:auto}@keyframes letterReveal{0%{opacity:0;transform:scale(.7) translateY(50px)}to{opacity:1;transform:scale(1) translateY(0)}}.letter-full{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.letter-card{width:85%;max-width:500px;min-height:400px;max-height:90%;margin:0 auto;background:linear-gradient(175deg,#fffef8,#fef6ee 40%,#fdf0e4);border-radius:12px;box-shadow:0 24px 64px #0000002e,0 4px 12px #0000000f,inset 0 1px #ffffff80;border:1px solid rgba(212,165,116,.3);position:relative;padding:8px;display:flex;flex-direction:column;overflow:hidden}.letter-card:before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:1.5px solid rgba(212,165,116,.35);border-radius:6px;pointer-events:none}.letter-card:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(transparent,transparent 28px,rgba(212,165,116,.04) 28px,rgba(212,165,116,.04) 29px);pointer-events:none;border-radius:12px}.letter-text{position:relative;width:100%;flex:1;min-height:0;font-family:var(--font-handwritten, "Caveat", cursive);font-size:1.15rem;font-weight:500;line-height:1.75;color:#3d2b2b;overflow-y:auto;white-space:pre-line;text-align:left;scrollbar-width:thin;scrollbar-color:rgba(212,165,116,.5) transparent;padding:24px 28px;z-index:1;box-sizing:border-box}.letter-text::-webkit-scrollbar{width:4px}.letter-text::-webkit-scrollbar-track{background:transparent}.letter-text::-webkit-scrollbar-thumb{background:#d4a57466;border-radius:10px}.letter-text .typewriter-cursor{color:var(--primary, #e84393);animation:cursorBlink .8s step-end infinite;font-weight:300}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.card-hint{position:absolute;bottom:6vh;font-size:14px;font-family:var(--font-body, "Inter", system-ui, sans-serif);color:#ffffff59;font-weight:500;animation:hintFloat 2s ease-in-out infinite}@keyframes hintFloat{0%,to{transform:translateY(0);opacity:.8}50%{transform:translateY(-4px);opacity:1}}.letter-header{position:absolute;bottom:15px;right:15px;z-index:2}.letter-character{width:75px;height:75px;object-fit:contain;background:transparent;filter:drop-shadow(0 4px 8px rgba(0,0,0,.1))}.wax-seal{position:absolute;top:8px;right:12px;width:44px;height:44px;background:radial-gradient(circle at 40% 35%,#e86b86,#c2407e,#a83569);border-radius:50%;box-shadow:0 4px 12px #c2407e66,inset 0 2px 4px #fff3,inset 0 -2px 4px #00000026;display:flex;align-items:center;justify-content:center;z-index:3}.wax-seal:after{content:"♥";font-size:1.2rem;color:#ffffffd9;text-shadow:0 1px 2px rgba(0,0,0,.2)}.replay-btn{margin-top:20px;padding:14px 28px;background:transparent;color:#ffffff80;border:1px solid rgba(255,255,255,.1);border-radius:50px;font-size:.9rem;font-weight:500;font-family:var(--font-body, "Inter", system-ui, sans-serif);cursor:pointer;transition:all .3s cubic-bezier(.22,1,.36,1);box-shadow:none;max-width:280px;z-index:10;position:relative;overflow:hidden;letter-spacing:.02em}.replay-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:btnSweep 3s ease-in-out infinite}.replay-btn:hover{transform:translateY(-2px);color:#fffc;border-color:#fff3;background:#ffffff0a}.replay-btn:active{transform:translateY(0)}.make-own-btn{margin-top:14px;padding:14px 28px;background:linear-gradient(135deg,#e84393e6,#6c5ce7e6);color:#fff;border:none;border-radius:50px;font-size:.9rem;font-weight:600;font-family:var(--font-body, "Inter", system-ui, sans-serif);cursor:pointer;transition:all .3s cubic-bezier(.22,1,.36,1);box-shadow:0 4px 20px #e843934d;max-width:280px;z-index:10;position:relative;text-decoration:none;text-align:center;display:inline-block}.make-own-btn:hover{transform:translateY(-2px);box-shadow:0 6px 25px #e8439366}.make-own-btn:active{transform:translateY(0)}@media (min-width: 1025px){.card-stage{width:min(720px,88vw);height:min(900px,85vh)}.letter-card{width:80%;max-width:550px;min-height:450px;padding:10px}.letter-text{font-size:1.2rem;line-height:1.8;padding:28px 32px}}@media (min-width: 601px) and (max-width: 1024px){.card-stage{width:min(620px,90vw);height:min(800px,84vh)}.letter-card{width:82%;max-width:480px;min-height:400px;padding:10px}.letter-text{font-size:1.15rem;line-height:1.75}}@media (max-width: 600px){.card-stage{width:min(500px,94vw);height:min(700px,82vh)}.letter-card{width:88%;max-width:400px;min-height:350px;padding:8px}.letter-text{font-size:1.1rem;line-height:1.7;padding:22px 24px}.letter-character{width:65px;height:65px}.letter-header{bottom:12px;right:12px}.wax-seal{width:38px;height:38px;top:6px;right:10px}.wax-seal:after{font-size:1rem}}@media (max-width: 375px){.card-stage{width:min(350px,96vw);height:min(620px,80vh)}.letter-card{width:90%;max-width:320px;min-height:320px;padding:8px}.letter-text{font-size:1.05rem;line-height:1.65;padding:20px 22px}.letter-character{width:55px;height:55px}.letter-header{bottom:10px;right:10px}.wax-seal{width:34px;height:34px;top:5px;right:8px}.wax-seal:after{font-size:.9rem}}@media (max-width: 480px){.replay-btn{font-size:.95rem;padding:12px 24px;margin-top:15px}}.starfield{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden;background:transparent}.star-layer{position:absolute;width:1px;height:1px;background:transparent}.star-sm{animation:starDrift 120s linear infinite}.star-md{animation:starDrift 90s linear infinite}.star-lg{animation:starTwinkle 4s ease-in-out infinite alternate}@keyframes starDrift{0%{transform:translateY(0)}to{transform:translateY(-2000px)}}@keyframes starTwinkle{0%{opacity:.4}to{opacity:1}}.receiver-page{position:fixed;top:0;left:0;width:100vw;width:100dvw;height:100vh;height:100dvh;overflow:hidden;margin:0;padding:0}.receiver-page.dark-theme{background:linear-gradient(135deg,#0a0612,#0f0a1a 40%,#0d1b2a)}.page.active{opacity:1;visibility:visible;transform:translate(0)}.invitation{width:100%;max-width:600px;margin:0 auto;padding:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;z-index:2}.inv-subtitle{font-family:var(--font-body, "Inter", system-ui, sans-serif);font-size:clamp(.85rem,2vw,1rem);font-weight:400;letter-spacing:3px;text-transform:uppercase;color:#ffffff59;margin:0 0 16px;line-height:1.6}.inv-name{font-family:var(--font-display, "DM Serif Display", Georgia, serif);font-size:clamp(3rem,10vw,5.5rem);font-weight:400;font-style:italic;color:#ffffffeb;margin:0;line-height:1.1;letter-spacing:-.02em;text-shadow:0 0 80px rgba(232,67,147,.15)}.inv-divider{width:60px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);margin:28px 0}.inv-countdown-label{font-family:var(--font-body, "Inter", system-ui, sans-serif);font-size:.75rem;font-weight:500;letter-spacing:4px;text-transform:uppercase;color:#fff3;margin:0 0 8px}.inv-cta{margin-top:32px;padding:18px 64px;font-family:var(--font-body, "Inter", system-ui, sans-serif);font-size:1.1rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,#e84393e6,#6c5ce7e6);border:none;border-radius:60px;cursor:pointer;position:relative;overflow:hidden;transition:all .4s cubic-bezier(.22,1,.36,1);box-shadow:0 0 30px #e843934d,0 0 60px #e843931a;animation:ctaPulse 3s ease-in-out infinite}.inv-cta:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);animation:ctaSweep 3s ease-in-out infinite}@keyframes ctaPulse{0%,to{box-shadow:0 0 30px #e843934d,0 0 60px #e843931a}50%{box-shadow:0 0 40px #e8439366,0 0 80px #e8439326,0 0 120px #6c5ce714}}@keyframes ctaSweep{0%{left:-100%}50%{left:100%}to{left:100%}}.inv-cta:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 0 50px #e8439380,0 0 100px #e8439333}.inv-cta:active{transform:translateY(-1px) scale(1.01)}.inv-peek{margin-top:24px;padding:12px 32px;font-family:var(--font-body, "Inter", system-ui, sans-serif);font-size:.85rem;font-weight:500;letter-spacing:1px;color:#ffffff4d;background:transparent;border:1px solid rgba(255,255,255,.08);border-radius:60px;cursor:pointer;transition:all .3s ease}.inv-peek:hover{color:#fff9;border-color:#ffffff26;background:#ffffff08}.dark-loading{background:linear-gradient(135deg,#0a0612,#0f0a1a 40%,#0d1b2a)!important}.dark-loading .loading-spinner{background:#ffffff0a;border:1px solid rgba(255,255,255,.06);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.dark-loading .spinner{border-color:#ffffff0f;border-top-color:#e8439399}.dark-loading .loading-spinner p{color:#fff6}.dark-loading .error-message{background:#ffffff0a;border:1px solid rgba(255,255,255,.06);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.dark-loading .error-message h2{color:#ffffffb3}.dark-loading .error-message p{color:#ffffff59}@media (max-width: 480px){.invitation{padding:15px}.inv-cta{padding:16px 48px;font-size:1rem}.inv-subtitle{letter-spacing:2px}}@media (max-width: 375px){.inv-name{font-size:clamp(2.5rem,9vw,4rem)}}.payment-status-page{position:fixed;top:0;left:0;width:100vw;width:100dvw;height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box;background:var(--bg-gradient, linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%))}.payment-status-card{background:#ffffff0f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:20px;border:1px solid rgba(255,255,255,.1);padding:40px 30px;text-align:center;max-width:400px;width:100%}.payment-status-title{font-family:"DM Serif Display",Georgia,serif;font-size:1.5rem;color:#fff;margin:0 0 12px}.payment-status-message{font-family:Inter,sans-serif;font-size:.95rem;color:#ffffffb3;margin:0 0 24px;line-height:1.5}.payment-status-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.15);border-top-color:var(--primary, #e84393);border-radius:50%;animation:payment-spin .8s linear infinite;margin:0 auto}@keyframes payment-spin{to{transform:rotate(360deg)}}.payment-status-retry-btn{display:inline-block;padding:12px 32px;background:var(--primary, #e84393);color:#fff;border-radius:12px;text-decoration:none;font-family:Inter,sans-serif;font-weight:600;font-size:.95rem;margin-top:8px;transition:opacity .2s}.payment-status-retry-btn:hover{opacity:.9}.app{position:fixed;top:0;left:0;width:100vw;width:100dvw;height:100vh;height:100dvh;overflow:hidden;margin:0;padding:0}*{scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{width:0;height:0;background:transparent}.page{height:100vh;height:100dvh;width:100vw;width:100dvw;position:absolute;top:0;left:0;opacity:0;visibility:hidden;transform:translate(100%);transition:all .6s cubic-bezier(.22,1,.36,1);padding:env(safe-area-inset-top,20px) env(safe-area-inset-right,20px) env(safe-area-inset-bottom,20px) env(safe-area-inset-left,20px);display:flex;flex-direction:column;justify-content:center;align-items:center;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;z-index:10}.page.active{opacity:1;visibility:visible;transform:translate(0);position:relative}.page.exit-left{transform:translate(-100%);opacity:0}.landing-simple{width:100%;max-width:820px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:16px}.hero{padding:0 18px;max-width:740px;margin:0;text-align:center}.hero h1{font-family:var(--font-display, "DM Serif Display", Georgia, serif);font-size:clamp(2.05rem,4.6vw,3.1rem);margin:6px 0 10px;font-weight:400;color:#ffffffe0;line-height:1.2;letter-spacing:-.01em}.hero p{font-size:1.02rem;color:#fff6;margin:0;line-height:1.5;font-family:var(--font-body, "Inter", system-ui, sans-serif)}.highlight{background:linear-gradient(90deg,var(--primary, #e84393) 0%,var(--accent-gold, #f9ca24) 20%,var(--primary, #e84393) 40%,var(--primary-light, #fd79a8) 60%,var(--accent-gold, #f9ca24) 80%,var(--primary, #e84393) 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shimmerText 3s linear infinite;font-weight:400;font-style:italic}@keyframes shimmerText{0%{background-position:0% center}to{background-position:200% center}}.teaser{padding:0 18px;max-width:740px;margin:20px auto 10px;text-align:center}#teaserHeading{font-family:var(--font-display, "DM Serif Display", Georgia, serif);font-size:1.35rem;font-weight:400;font-style:italic;color:#ffffffb3;margin:0 0 8px;line-height:1.35}.teaser-hint{font-size:1.02rem;font-weight:500;color:#ffffff59;opacity:1;margin:0;font-family:var(--font-body, "Inter", system-ui, sans-serif)}.landing-actions{display:flex;flex-direction:column;align-items:center;gap:10px;padding:0 18px}.landing-cta{width:min(380px,100%)}#surpriseBtn{background:linear-gradient(135deg,var(--primary, #e84393),var(--primary-dark, #d63384));color:#fff;border:none;padding:14px 34px;font-size:1.1rem;font-weight:700;font-family:var(--font-body, "Inter", system-ui, sans-serif);border-radius:50px;cursor:pointer;margin:0;transition:all .3s cubic-bezier(.22,1,.36,1);box-shadow:0 12px 30px #e843934d;position:relative;overflow:hidden}#surpriseBtn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:btnSweep 3s ease-in-out infinite}@keyframes btnSweep{0%{left:-100%}50%{left:100%}to{left:100%}}#surpriseBtn:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 16px 36px #e8439366}#surpriseBtn:disabled{opacity:.5;cursor:not-allowed}#surpriseBtn:not(:disabled){animation:pulse 2s ease-in-out infinite}.celebrate-btn{background:linear-gradient(135deg,var(--primary, #e84393),var(--primary-dark, #d63384));color:#fff;border:none;padding:16px 40px;font-size:1.2rem;font-weight:700;font-family:var(--font-body, "Inter", system-ui, sans-serif);border-radius:50px;cursor:pointer;margin:0;transition:all .3s cubic-bezier(.22,1,.36,1);box-shadow:0 12px 30px #e8439359;position:relative;overflow:hidden;letter-spacing:.02em}.celebrate-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:btnSweep 3s ease-in-out infinite}.celebrate-btn:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 16px 40px #e8439373}.celebrate-btn:disabled{opacity:.5;cursor:not-allowed;background:linear-gradient(135deg,#999,#aaa)}.celebrate-btn:not(:disabled){animation:pulse-celebrate 2s ease-in-out infinite}@keyframes pulse-celebrate{0%,to{box-shadow:0 12px 30px #e8439359}50%{box-shadow:0 16px 40px #e8439380}}@keyframes pulse{0%,to{box-shadow:0 12px 24px #e8439340}50%{box-shadow:0 16px 32px #e8439366}}.back-btn{position:fixed;top:80px;left:20px;background:#ffffff0f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#ffffff80;border:1px solid rgba(255,255,255,.08);padding:10px 20px;font-size:1rem;font-family:var(--font-body, "Inter", system-ui, sans-serif);border-radius:25px;cursor:pointer;z-index:15;transition:all .3s ease;box-shadow:none}.back-btn:hover{background:#ffffff1a;color:#fffc;transform:translate(-5px)}.page-nav-btn{background:linear-gradient(135deg,var(--primary, #e84393),var(--primary-dark, #d63384));color:#fff;border:none;padding:14px 35px;font-size:1.2rem;font-weight:700;font-family:var(--font-body, "Inter", system-ui, sans-serif);border-radius:50px;cursor:pointer;margin-top:30px;transition:all .3s ease;box-shadow:0 8px 24px #e843934d}.page-nav-btn:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 12px 32px #e8439366}.loading-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:linear-gradient(135deg,#0a0612,#0f0a1a 40%,#0d1b2a);display:flex;justify-content:center;align-items:center;z-index:9999}.loading-spinner{text-align:center;padding:48px 40px;background:#ffffff0a;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:28px;box-shadow:0 20px 60px #0003;border:1px solid rgba(255,255,255,.06)}.spinner{width:48px;height:48px;margin:0 auto 20px;border:3px solid rgba(255,255,255,.06);border-top-color:#e8439399;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-spinner p{color:#fff6;font-size:1.05rem;font-weight:600;font-family:var(--font-body, "Inter", system-ui, sans-serif);margin:0}.error-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:linear-gradient(135deg,#0a0612,#0f0a1a 40%,#0d1b2a);display:flex;justify-content:center;align-items:center;z-index:9999}.error-message{text-align:center;padding:48px 40px;background:#ffffff0a;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:28px;box-shadow:0 20px 60px #0003;border:1px solid rgba(255,255,255,.06);max-width:400px;margin:20px}.error-message h2{color:#ffffffb3;font-family:var(--font-display, "DM Serif Display", Georgia, serif);font-size:1.8rem;font-weight:400;margin:0 0 15px}.error-message p{color:#ffffff59;font-size:1rem;font-family:var(--font-body, "Inter", system-ui, sans-serif);margin:10px 0;line-height:1.5}.error-hint{color:#fff3;font-size:.9rem;font-style:italic;margin-top:20px}@media (max-width: 600px){.hero h1{font-size:1.9rem;padding:0 10px}.hero p{font-size:.98rem;padding:0 10px}.back-btn{top:70px;left:15px;padding:8px 16px;font-size:.9rem}.page-nav-btn{font-size:1.1rem;padding:12px 30px}#teaserHeading{font-size:1.05rem;padding:0 15px}.teaser-hint{padding:0 15px}#surpriseBtn{font-size:1rem;padding:12px 28px}}@media (min-width: 601px) and (max-width: 1024px){.hero h1{font-size:2.5rem}.page{padding:15px}}@media (min-width: 1400px){.hero h1{font-size:3.2rem}.hero p{font-size:1.25rem}}@media (hover: none) and (pointer: coarse){button{min-height:44px;min-width:44px}.back-btn,.page-nav-btn,#surpriseBtn{padding:14px 30px}}@supports (-webkit-touch-callout: none){.app,.page,body{height:-webkit-fill-available}}@media (max-width: 932px) and (orientation: landscape){.page{padding:20px 10px 10px;justify-content:flex-start}.hero{padding:10px}.hero h1{font-size:2rem;margin-bottom:10px}}@media only screen and (max-width: 428px){.page{padding:12px;padding-top:max(env(safe-area-inset-top,15px),15px);padding-bottom:max(env(safe-area-inset-bottom,15px),15px)}.hero{padding:8px 15px}.hero h1{font-size:1.8rem;line-height:1.2;margin-bottom:8px}.teaser{padding:8px 15px}#teaserHeading{font-size:1.1rem;margin-bottom:6px}.teaser-hint{font-size:.85rem}.celebrate-btn,.page-nav-btn{padding:12px 28px;font-size:1.1rem;margin:12px auto}.back-btn{top:max(env(safe-area-inset-top,12px),70px);left:12px;padding:8px 16px;font-size:.9rem}}@media only screen and (max-width: 375px){.page{padding:10px;padding-top:max(env(safe-area-inset-top,12px),12px);padding-bottom:max(env(safe-area-inset-bottom,12px),12px)}.hero h1{font-size:1.6rem;margin-bottom:6px}.hero p{font-size:.9rem}#teaserHeading{font-size:1rem;margin-bottom:5px}.celebrate-btn,.page-nav-btn{padding:11px 24px;font-size:1rem;margin:10px auto}}@media (max-width: 480px){.loading-spinner,.error-message{padding:32px 24px;margin:15px;border-radius:24px}.spinner{width:42px;height:42px}.loading-spinner p{font-size:1rem}.error-message h2{font-size:1.5rem}.error-message p{font-size:.95rem}}
