:root{--font-serif:"Fraunces",Georgia,serif;--font-script:"Dancing Script",cursive;--font-calligraphy:"Parisienne",cursive;--font-sans:"Plus Jakarta Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--bg-warm:#fff9fa;--bg-cream:#fdf6f0;--pink-soft:#ffe4e9;--pink-light:#fce7f3;--pink-primary:#f43f5e;--pink-accent:#fb7185;--pink-hover:#e11d48;--rose-deep:#be123c;--lavender-soft:#f3e8ff;--lavender-mid:#d8b4fe;--purple-deep:#4c1d95;--text-ink:#1e1b4b;--text-muted:#64748b;--gold-warm:#f59e0b;--gold-glow:#fef08a;--glass-bg:hsla(0,0%,100%,.78);--glass-border:hsla(0,0%,100%,.9);--glass-shadow:0 20px 45px -12px rgba(244,63,94,.14),0 4px 18px rgba(216,180,254,.16)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--bg-warm);color:var(--text-ink);font-family:var(--font-sans);overflow-x:hidden;position:relative;min-height:100vh}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#fdf2f4}::-webkit-scrollbar-thumb{background:#f472b6;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:#e11d48}.dotted-romance-bg{background-color:#fdf5f7;background-image:radial-gradient(#f472b626 1.5px,transparent 0),radial-gradient(#c084fc1e 1.5px,transparent 0);background-size:26px 26px;background-position:0 0,13px 13px}.bg-glow-orb{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;z-index:0;opacity:.55;animation:orbFloat 16s ease-in-out infinite alternate}@keyframes orbFloat{0%{transform:translate(0) scale(1)}50%{transform:translate(30px,-35px) scale(1.08)}to{transform:translate(-25px,20px) scale(.95)}}.glass-panel{background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:24px}.glass-pill{background:hsla(0,0%,100%,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.95);box-shadow:0 8px 24px rgba(244,63,94,.1);border-radius:9999px}.font-serif{font-family:var(--font-serif)}.font-script{font-family:var(--font-script)}.font-calligraphy{font-family:var(--font-calligraphy)}.text-gradient-rose{background:linear-gradient(135deg,#e11d48,#db2777 50%,#9333ea);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.text-gradient-gold{background:linear-gradient(135deg,#d97706,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.top-gradient-bar{position:fixed;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#f472b6,#ec4899,#a855f7,#f43f5e);z-index:100;box-shadow:0 0 10px rgba(244,63,94,.5)}.sound-bar{display:inline-block;width:3.5px;background-color:#f43f5e;border-radius:9999px;margin:0 1.5px;animation:soundWave 1.1s ease-in-out infinite alternate}.sound-bar:first-child{height:8px;animation-delay:.1s}.sound-bar:nth-child(2){height:16px;animation-delay:.25s}.sound-bar:nth-child(3){height:11px;animation-delay:.4s}.sound-bar:nth-child(4){height:20px;animation-delay:.15s}.sound-bar:nth-child(5){height:9px;animation-delay:.3s}@keyframes soundWave{0%{transform:scaleY(.4)}to{transform:scaleY(1.35)}}.sound-bar.paused{animation-play-state:paused;height:4px!important}@keyframes heartFloatUp{0%{opacity:1;transform:translate(0) scale(.6) rotate(0deg)}to{opacity:0;transform:translate(var(--tx,0),-130px) scale(1.4) rotate(var(--tr,20deg))}}.floating-click-heart{position:fixed;pointer-events:none;z-index:99999;animation:heartFloatUp 1.2s cubic-bezier(.22,1,.36,1) forwards}.portrait-card{position:relative;border-radius:20px;overflow:hidden;background:#fff;border:3px solid hsla(0,0%,100%,.95);box-shadow:0 16px 36px -10px rgba(244,63,94,.15),0 4px 16px rgba(0,0,0,.06);transition:all .4s cubic-bezier(.165,.84,.44,1);cursor:pointer}.portrait-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 24px 48px -10px rgba(244,63,94,.3),0 8px 24px rgba(0,0,0,.08)}.portrait-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(30,27,75,.85) 0,rgba(30,27,75,.25) 55%,transparent);transition:opacity .3s ease;display:flex;flex-direction:column;justify-content:flex-end;padding:20px;color:#fff}.polaroid-card{background:#fff;padding:14px 14px 26px;border-radius:6px;box-shadow:0 16px 36px -10px rgba(0,0,0,.1),0 4px 14px rgba(244,63,94,.08);transition:all .35s cubic-bezier(.165,.84,.44,1);position:relative;cursor:pointer}.polaroid-card:hover{transform:translateY(-8px) rotate(0deg) scale(1.03)!important;box-shadow:0 24px 50px -10px rgba(244,63,94,.25),0 8px 24px rgba(0,0,0,.09);z-index:20}.washi-tape{position:absolute;top:-12px;left:50%;transform:translateX(-50%);width:90px;height:24px;background:rgba(254,205,211,.75);border-left:2px dashed rgba(244,63,94,.35);border-right:2px dashed rgba(244,63,94,.35);box-shadow:0 2px 6px rgba(0,0,0,.05);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:5}.coupon-card{background:linear-gradient(135deg,#fff,#fff1f2);border:2px dashed #fda4af;border-radius:18px;position:relative;overflow:hidden;transition:all .3s cubic-bezier(.16,1,.3,1)}.coupon-card:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(244,63,94,.16);border-color:#f43f5e}.coupon-card.redeemed{background:linear-gradient(135deg,#fdf2f4,#fce7f3);border-color:#f472b6;opacity:.92}.coupon-notch-left,.coupon-notch-right{position:absolute;top:50%;transform:translateY(-50%);width:20px;height:20px;background-color:var(--bg-warm);border-radius:50%;border:2px dashed #fda4af;z-index:2}.coupon-notch-left{left:-11px}.coupon-notch-right{right:-11px}.flip-card{perspective:1000px;height:220px;cursor:pointer}.flip-card-inner{position:relative;width:100%;height:100%;text-align:center;transition:transform .65s cubic-bezier(.34,1.56,.64,1);transform-style:preserve-3d}.flip-card.is-flipped .flip-card-inner{transform:rotateY(180deg)}.flip-card-back,.flip-card-front{position:absolute;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:20px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px}.flip-card-front{background:hsla(0,0%,100%,.88);border:1px solid hsla(0,0%,100%,.95);box-shadow:0 12px 30px rgba(244,63,94,.08)}.flip-card-back{background:linear-gradient(135deg,#fff0f3,#fce7f3);border:1px solid #fbcfe8;box-shadow:0 14px 35px rgba(244,63,94,.15);transform:rotateY(180deg)}.parchment-letter{background-color:#fffefb;background-image:radial-gradient(#f7eedb 15%,transparent 16%),radial-gradient(#f7eedb 15%,transparent 16%);background-size:50px 50px;background-position:0 0,25px 25px;border:1px solid #f2e2ca;box-shadow:inset 0 0 60px hsla(33,58%,81%,.3),0 20px 48px -12px hsla(23,35%,55%,.22);position:relative;border-radius:16px}.parchment-inner-border{position:absolute;inset:14px;border:1px solid hsla(32,52%,68%,.45);border-radius:10px;pointer-events:none}.wax-seal-btn{animation:waxPulse 2.5s ease-in-out infinite;cursor:pointer;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.wax-seal-btn:hover{transform:scale(1.08)}@keyframes waxPulse{0%,to{transform:scale(1);filter:drop-shadow(0 6px 14px rgba(225,29,72,.35))}50%{transform:scale(1.05);filter:drop-shadow(0 10px 22px rgba(225,29,72,.55))}}@keyframes petalDrift{0%{transform:translateY(-40px) translateX(0) rotate(0deg);opacity:0}15%{opacity:.85}85%{opacity:.75}to{transform:translateY(105vh) translateX(90px) rotate(1turn);opacity:0}}.sakura-petal{position:fixed;top:-40px;pointer-events:none;z-index:1;background:radial-gradient(circle,#fbcfe8 25%,#f472b6 100%);border-radius:14px 2px 14px 2px;opacity:.7;animation:petalDrift linear infinite}.flex-col-center{flex-direction:column}.flex-col-center,.flex-row-center{display:flex;align-items:center;justify-content:center}.flex-row-center{flex-direction:row}.btn-romantic{background:linear-gradient(135deg,#f43f5e,#ec4899);color:#fff;font-weight:600;padding:12px 28px;border-radius:9999px;border:none;cursor:pointer;box-shadow:0 10px 25px rgba(244,63,94,.35);transition:all .3s cubic-bezier(.165,.84,.44,1);display:inline-flex;align-items:center;gap:8px;font-size:.95rem}.btn-romantic:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 14px 32px rgba(244,63,94,.45);background:linear-gradient(135deg,#e11d48,#db2777)}.btn-romantic:active{transform:translateY(0) scale(.98)}