@import"https://fonts.googleapis.com/css2?family=Great+Vibes&family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Lato:wght@300;400&display=swap";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--primary: #c9184a;--gold: #d4af37;--paper: #fffcf5}body{margin:0;background:radial-gradient(circle at center,#2b1c22,#1a1014 60%,#000);overflow:hidden;font-family:Lato,sans-serif;-webkit-tap-highlight-color:transparent}.scene{height:100dvh;width:100vw;display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden}.ambient{position:absolute;inset:0;pointer-events:none;z-index:0}.aurora{position:absolute;width:80vw;height:80vh;filter:blur(80px);opacity:.4;animation:pulse 10s infinite alternate}.a1{background:#ff4d6d;top:-20%;left:-20%}.a2{background:#ffb3c1;bottom:-20%;right:-20%}@keyframes pulse{to{transform:scale(1.2);opacity:.6}}.bg-particles{position:absolute;inset:0;pointer-events:none;z-index:1}.particle{position:absolute;font-size:1.5rem;opacity:.5;animation:rise 15s linear infinite;top:110vh;text-shadow:0 0 10px red}.particle:nth-child(2n){left:20%}.particle:nth-child(odd){left:80%}@keyframes rise{to{transform:translateY(-120vh) rotate(360deg)}}.card-3d-wrap{width:750px;height:520px;position:relative;perspective:2000px;z-index:10}.card-content{width:375px;height:520px;position:absolute;left:50%;transform:translate(-50%);transform-style:preserve-3d;transition:1s;cursor:pointer}.card-content.open{transform:translate(0)}.card-left-leaf,.card-right-leaf{position:absolute;width:100%;height:100%;transform-style:preserve-3d;transform-origin:left}.card-left-leaf{z-index:20}.card-right-leaf{z-index:5;background:var(--paper);border-radius:0 16px 16px 0;padding:40px;box-shadow:inset 15px 0 30px #0000000d;display:flex;flex-direction:column;justify-content:center}.face{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:8px 16px 16px 8px;overflow:hidden}.front-face{background:linear-gradient(135deg,#ff758c,#ff7eb3);display:flex;justify-content:center;align-items:center}.back-face{transform:rotateY(180deg);background:#f8f5f2;display:flex;justify-content:center;align-items:center;border-right:1px solid #ddd}.glass-panel{background:#ffffff40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:40px;border-radius:20px;text-align:center;border:1px solid rgba(255,255,255,.4)}.glass-panel h1{font-family:Great Vibes,cursive;font-size:3.5rem;color:#fff;margin:0}.heart-seal{font-size:3rem;animation:beat 1.5s infinite}.click-hint{margin-top:8px;letter-spacing:.2em;text-transform:uppercase;font-size:.75rem;color:#ffffffd9;animation:pulse 2s infinite}.polaroid-inner{background:#fff;padding:12px 12px 45px;transform:rotate(-2deg);box-shadow:0 10px 20px #0000001a;width:80%}.polaroid-img{width:100%;height:320px;object-fit:cover;border:1px solid #eee}.text-content-wrapper{text-align:center}.text-content-wrapper h2{font-family:Playfair Display,serif;font-size:2.2rem;color:var(--primary);margin-bottom:5px}.divider{color:var(--gold);font-size:1.5rem;margin:10px 0}.body-text{font-family:Playfair Display,serif;font-size:1.15rem;line-height:1.7;font-style:italic;color:#444}.signature{font-family:Great Vibes,cursive;font-size:2rem;color:var(--primary);margin-top:20px}.nav-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--primary);color:var(--primary);background:transparent;cursor:pointer;display:flex;justify-content:center;align-items:center}.nav-btn:disabled{opacity:.3}.dots{display:flex;gap:5px;align-items:center}.dot{width:6px;height:6px;background:#ddd;border-radius:50%}.dot.active{background:var(--primary);transform:scale(1.3)}@keyframes beat{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.mobile-cover{position:absolute;inset:0;z-index:100;display:flex;justify-content:center;align-items:center;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.glass-panel-mobile{width:80vw;max-width:300px;background:#ffffff26;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:30px 20px;border-radius:20px;text-align:center;border:1px solid rgba(255,255,255,.3);animation:float 3s infinite ease-in-out}.glass-panel-mobile h1{font-family:Great Vibes,cursive;font-size:2.8rem;color:#fff;margin:10px 0;text-shadow:0 2px 10px rgba(0,0,0,.3)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.mobile-deck-container{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:180px;position:relative;perspective:1000px}.mobile-card-wrapper{width:82vw;max-width:320px;height:55vh;max-height:460px;min-height:380px;position:relative;perspective:1500px;z-index:10}.mobile-flip-card{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.8,.2,1);cursor:pointer}.mobile-flip-card.flipped{transform:rotateY(180deg)}.mobile-card-inner{width:100%;height:100%;position:absolute;transform-style:preserve-3d}.mobile-card-front,.mobile-card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.5);box-shadow:0 15px 40px #0006}.mobile-card-front{background:#fff;padding:12px 12px 60px;display:flex;flex-direction:column}.mobile-polaroid{width:100%;height:100%;border:1px solid #f0f0f0;padding:8px;display:flex;flex-direction:column;background:#fff;box-shadow:inset 0 0 15px #00000005}.mobile-polaroid img{width:100%;flex-grow:1;object-fit:cover;border-radius:4px;filter:contrast(1.05)}.handwritten-caption{font-family:Great Vibes,cursive;font-size:1.4rem;color:#444;text-align:center;margin-top:8px;line-height:1}.tap-hint-btn{position:absolute;bottom:15px;left:50%;transform:translate(-50%);background:#ff4d6d;color:#fff;padding:8px 20px;border-radius:50px;font-size:.75rem;font-weight:700;letter-spacing:1px;box-shadow:0 4px 12px #ff4d6d66;animation:pulseBtn 2s infinite;pointer-events:none;white-space:nowrap}@keyframes pulseBtn{0%{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.05)}to{transform:translate(-50%) scale(1)}}.mobile-card-back{background:linear-gradient(to bottom right,#fffcf5,#fff0f3);transform:rotateY(180deg);padding:25px 15px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border:6px solid white}.mobile-letter-content{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow-y:auto;scrollbar-width:none}.mobile-letter-content::-webkit-scrollbar{display:none}.mobile-letter-content h2{font-family:Great Vibes,cursive;font-size:2.2rem;color:var(--primary);margin:0}.mobile-letter-content .body-text{font-family:Playfair Display,serif;font-size:1rem;line-height:1.5;color:#333;margin:10px 0}.mobile-letter-content .signature{font-family:Great Vibes,cursive;font-size:1.5rem;color:#800f2f;margin-top:15px}.back-hint{margin-top:auto;font-size:.65rem;color:#bbb;text-transform:uppercase;letter-spacing:1px;padding-top:5px}.mobile-nav{position:absolute;bottom:20vh;display:flex;gap:20px;align-items:center;z-index:50;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:8px 25px;border-radius:50px;border:1px solid rgba(255,255,255,.25);box-shadow:0 5px 20px #0003}.mobile-nav .nav-btn{background:#fff3;border:1px solid rgba(255,255,255,.5);color:#fff}.page-indicator{color:#fff;font-weight:700;font-size:.9rem;text-shadow:0 2px 4px rgba(0,0,0,.3)}
