@import"https://fonts.googleapis.com/css2?family=Great+Vibes&family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Spectral:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,200;1,300;1,400;1,500;1,600;1,700;1,800&display=swap";:root{--primary: #D4AF37;--secondary: #800000;--bg-cream: #FFFDD0;--bg-white: #F9F9F9;--text-dark: #2C2C2C;--font-heading: "Playfair Display", serif;--font-accent: "Great Vibes", cursive;--font-body: "Spectral", serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);background-color:var(--bg-white);color:var(--text-dark);overflow-x:hidden;line-height:1.6}h1,h2,h3,h4{font-family:var(--font-heading)}.cursive{font-family:var(--font-accent)}section{min-height:100vh;padding:80px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.container{max-width:1200px;margin:0 auto;width:100%}.gold-text{color:var(--primary)}.btn-primary{background-color:var(--primary);color:#fff;padding:14px 32px;border-radius:40px;text-decoration:none;font-weight:600;transition:all .4s cubic-bezier(.175,.885,.32,1.275);border:none;cursor:pointer;font-family:var(--font-heading);display:inline-block;font-size:1.1rem;box-shadow:0 4px 15px #d4af3733}.btn-primary:hover{transform:translateY(-5px);box-shadow:0 10px 25px #d4af3766}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-white)}::-webkit-scrollbar-thumb{background:var(--primary);border-radius:10px}.app-container{width:100%;position:relative}.floating-elements-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:hidden}.floating-element{position:absolute;width:10px;height:10px;border-radius:50%;filter:blur(2px)}.floating-sparkle{position:absolute;pointer-events:none;z-index:1;-webkit-user-select:none;user-select:none;filter:blur(1px)}.content{width:100%;max-width:1100px;text-align:center;z-index:2}.hero{height:100vh;color:#fff;text-align:center}.hero-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1}.parallax-bg{width:100%;height:100%;object-fit:cover;filter:brightness(.7)}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to bottom,#0000004d,#0009)}.hero-content h1{font-size:clamp(3rem,10vw,6rem);letter-spacing:.2rem;margin:10px 0;font-weight:300}.hero-content h2{font-size:2.5rem}.date-badge{font-size:1.5rem;letter-spacing:.5rem;margin-top:20px;border-top:1px solid rgba(255,255,255,.4);border-bottom:1px solid rgba(255,255,255,.4);padding:10px 0;display:inline-block}.countdown-container{display:flex;justify-content:center;gap:20px;margin-top:30px;font-family:var(--font-heading)}.countdown-item{display:flex;flex-direction:column;align-items:center;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:15px 20px;border-radius:10px;min-width:90px;border:1px solid rgba(255,255,255,.2)}.countdown-item .number{font-size:2.5rem;font-weight:700;color:var(--primary);line-height:1}.countdown-item .label{font-size:.8rem;text-transform:uppercase;letter-spacing:2px;margin-top:5px;opacity:.8}.fireworks-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.hero-content{z-index:2}.scroll-indicator{position:absolute;bottom:40px;left:50%;transform:translate(-50%);animation:bounce 2s infinite}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%) translateY(0)}40%{transform:translate(-50%) translateY(-10px)}60%{transform:translate(-50%) translateY(-5px)}}.story{background-color:var(--bg-cream)}.story h2{font-size:3rem;margin-bottom:20px}.story-text{max-width:750px;margin:0 auto 30px;font-size:1.3rem;color:#444;font-style:italic;line-height:1.8}.story-text.secondary{font-size:1.1rem;color:#666;font-style:normal;margin-bottom:50px;opacity:.9}.couple-photos{display:flex;justify-content:center;gap:40px;flex-wrap:wrap}.photo-card{width:300px;background:#fff;padding:15px;box-shadow:0 10px 30px #0000001a;border-radius:5px;transition:transform .3s ease}.photo-card:hover{transform:rotate(-2deg) scale(1.05)}.photo-card img{width:100%;height:350px;object-fit:cover;border-radius:3px}.photo-card .name{display:block;font-size:2rem;margin-top:15px;color:var(--primary)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:40px;margin:50px 0;width:100%}.detail-item{padding:40px;background:#fff;border-radius:20px;box-shadow:0 5px 20px #0000000d;transition:all .3s ease;border:1px solid transparent}.detail-item:hover{border-color:var(--primary);transform:translateY(-10px)}.detail-item h3{font-size:1.5rem;margin:15px 0 10px}.masonry-grid{column-count:3;column-gap:20px;width:100%;margin-top:50px}.gallery-item{break-inside:avoid;margin-bottom:20px;border-radius:10px;overflow:hidden;box-shadow:0 5px 15px #0000001a;transition:transform .4s ease}.gallery-item:hover{transform:scale(1.02)}.gallery-item img{width:100%;display:block}@media (max-width: 900px){.masonry-grid{column-count:2}}@media (max-width: 600px){.masonry-grid{column-count:1}}.splash-screen{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center;overflow:hidden}.splash-bg{position:absolute;top:0;left:0;width:100%;height:100%}.splash-bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.6)}.splash-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle,transparent 20%,rgba(0,0,0,.8) 100%)}.splash-content{position:relative;z-index:2;text-align:center;color:#fff;padding:20px}.splash-content h1{font-size:4rem;letter-spacing:5px;margin:20px 0;text-shadow:0 0 20px rgba(0,0,0,.5)}.enter-btn{margin-top:40px;background:var(--primary);color:#fff;border:none;padding:15px 40px;font-size:1.2rem;font-family:var(--font-heading);cursor:pointer;border-radius:50px;transition:all .3s ease;box-shadow:0 5px 15px #d4af3766}.enter-btn:hover{transform:scale(1.05);box-shadow:0 8px 25px #d4af3799}.wish-game-section{padding:80px 15px;background:linear-gradient(to bottom,#fff,var(--secondary));text-align:center}.game-container{max-width:600px;margin:0 auto;background:#fff;padding:30px 20px;border-radius:30px;box-shadow:0 30px 80px #0000000f;border:1px solid var(--secondary)}.game-subtitle{font-family:var(--font-body);color:#888;margin-bottom:20px}.start-screen{padding:30px 0}.jar-preview-wrap{margin:20px 0}.jar-preview-emoji{font-size:5rem;display:inline-block}.game-rule{margin:15px 0 25px;font-size:1.1rem;color:var(--primary);font-family:var(--font-heading)}.guide-screen{padding:30px 0}.guide-demo{margin-bottom:25px}.guide-title{font-size:1.4rem;font-weight:700;margin-bottom:15px}.guide-visual{position:relative;height:140px;background:var(--secondary);border-radius:20px;margin:15px auto;max-width:200px;overflow:hidden}.guide-wish-demo{position:absolute;top:10px;left:50%;transform:translate(-50%);font-size:1.3rem;background:#fff;padding:8px 18px;border-radius:30px;box-shadow:0 4px 12px #0000001a}.guide-tap-hint{position:absolute;bottom:25px;left:50%;transform:translate(-50%);background:var(--primary);color:#fff;font-weight:700;font-size:.9rem;padding:6px 16px;border-radius:20px;animation:pulse-hint 1.5s infinite}@keyframes pulse-hint{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.15)}}.game-hud{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.hud-item{text-align:left}.hud-label{font-size:.8rem;color:#aaa;display:block}.hud-value{font-size:1.6rem;font-family:var(--font-heading);color:var(--primary)}.timer-number{font-size:1.6rem;font-family:var(--font-heading);color:var(--text-dark)}.timer-number.urgent{color:#e74c3c;animation:pulse-hint .5s infinite}.progress-bar{height:10px;background:#f0f0f0;border-radius:10px;overflow:hidden;margin-bottom:15px}.progress-fill{height:100%;background:linear-gradient(to right,var(--primary),#FFD700);border-radius:10px}.game-area{position:relative;height:380px;overflow:hidden;border-radius:25px;background:linear-gradient(180deg,#fffdd04d,#d4af370d);border:1px solid rgba(0,0,0,.04);touch-action:manipulation;-webkit-user-select:none;user-select:none}.wish-bubble{position:absolute;display:flex;flex-direction:column;align-items:center;cursor:pointer;z-index:10;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.wish-bubble:active{transform:scale(.85)!important}.bubble-emoji{font-size:2rem;background:#fff;width:55px;height:55px;display:flex;align-items:center;justify-content:center;border-radius:50%;box-shadow:0 6px 20px #0000001f;margin-bottom:4px}.bubble-text{font-size:.75rem;font-family:var(--font-heading);background:#fff;padding:3px 10px;border-radius:12px;box-shadow:0 2px 6px #00000014;color:var(--text-dark)}.jar-bottom{position:absolute;bottom:0;left:0;right:0;text-align:center;padding:10px 0;background:linear-gradient(transparent,#fffdd099);z-index:5}.couple-faces{display:flex;align-items:center;justify-content:center;gap:8px}.face-img{width:45px;height:45px;object-fit:cover;border-radius:50%;border:3px solid white;box-shadow:0 4px 10px #0000001f}.jar-emoji{font-size:3.5rem}.jar-catch{animation:jar-catch-shake .4s ease-out}@keyframes jar-catch-shake{0%{transform:scale(1) translateY(0)}15%{transform:scale(1.15) translateY(-8px)}30%{transform:scale(1.1) translate(-5px) translateY(-4px)}45%{transform:scale(1.1) translate(5px) translateY(-4px)}60%{transform:scale(1.05) translate(-3px)}75%{transform:scale(1.02) translate(3px)}to{transform:scale(1) translateY(0) translate(0)}}.flying-wish{position:absolute;font-size:2rem;z-index:200;pointer-events:none;filter:drop-shadow(0 0 8px rgba(212,175,55,.8))}.result-card{margin-top:20px;padding:30px 20px;border-radius:25px;text-align:center}.result-card.win{background:linear-gradient(135deg,#fff9e6,#fff);border:2px solid var(--primary)}.result-card.lose{background:#f9f9f9;border:1px solid #eee}.result-icon{font-size:3rem;margin-bottom:10px}.result-card h3{font-size:2rem;color:var(--primary)}.thank-message{font-family:var(--font-body);font-size:1.05rem;line-height:1.6;color:#555;margin:15px 0 20px}.fill-sequence{position:relative;padding:30px 0;overflow:hidden}.jar-fill-area{text-align:center;margin-bottom:20px}.jar-fill-emoji{font-size:5rem;margin-bottom:15px}.jar-wishes-stack{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:400px;margin:0 auto}.jar-wish-pill{background:#fff;padding:8px 18px;border-radius:30px;font-size:1rem;font-family:var(--font-heading);box-shadow:0 4px 12px #00000014;border:1px solid var(--secondary)}.confetti-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:100;overflow:hidden}.confetti-piece{position:absolute;top:-20px;animation:confetti-fall 3s ease-out forwards}.confetti-piece:nth-child(odd){border-radius:50%}.confetti-piece:nth-child(2n){border-radius:2px}.confetti-piece:nth-child(3n){animation-name:confetti-fall-spin}@keyframes confetti-fall{0%{transform:translateY(0) translate(0) rotate(0) scale(1);opacity:1}70%{opacity:1}to{transform:translateY(600px) translate(30px) rotate(720deg) scale(.3);opacity:0}}@keyframes confetti-fall-spin{0%{transform:translateY(0) translate(0) rotate(0) scale(1.2);opacity:1}50%{transform:translateY(300px) translate(-40px) rotate(540deg) scale(1);opacity:.8}to{transform:translateY(650px) translate(20px) rotate(1080deg) scale(.2);opacity:0}}.reveal-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.btn-secondary{background:transparent;color:var(--primary);border:2px solid var(--primary);padding:12px 30px;border-radius:30px;cursor:pointer;font-family:var(--font-heading);font-size:1rem;transition:all .3s}.btn-secondary:hover{background:var(--primary);color:#fff}@media (max-width: 600px){.wish-game-section{padding:40px 0}.game-container{padding:20px 15px;border-radius:0;border-left:none;border-right:none;max-width:100%}.game-area{height:340px;margin:0 -5px;border-radius:15px}.bubble-emoji{width:48px;height:48px;font-size:1.6rem}.face-img{width:38px;height:38px}.jar-emoji{font-size:2.8rem}.hud-value,.timer-number{font-size:1.3rem}.result-card{padding:20px 15px;margin:0 10px}.thank-message{font-size:.95rem}}.puzzle-section{padding:80px 15px;background:linear-gradient(to bottom,var(--secondary),#fff);text-align:center}.puzzle-container{max-width:500px;margin:0 auto;background:#fff;padding:30px 20px;border-radius:30px;box-shadow:0 30px 80px #0000000f;border:1px solid var(--secondary);position:relative;overflow:hidden}.puzzle-board{margin:20px auto;max-width:400px}.puzzle-grid{display:flex;flex-wrap:wrap;border-radius:15px;overflow:hidden;box-shadow:0 8px 30px #0000001a;width:100%}.puzzle-cell{position:relative;box-sizing:border-box;border:1px solid rgba(255,255,255,.3);cursor:pointer}.puzzle-cell.empty{background:#d4af3714;border:2px dashed rgba(212,175,55,.4)}.puzzle-cell.target-match{background:#4caf5033;box-shadow:inset 0 0 0 3px #4caf50;border-color:transparent;position:relative;z-index:2}.puzzle-piece-img{width:100%;height:100%;position:absolute;top:0;left:0}.empty-slot{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.empty-slot span{font-size:2rem;color:var(--primary);opacity:.5;animation:pulse-hint 2s infinite}.puzzle-pieces-tray{margin-top:25px}.tray-label{font-family:var(--font-heading);font-size:.95rem;color:#888;margin-bottom:15px}.tray-pieces{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.tray-piece{width:80px;height:80px;border-radius:12px;overflow:hidden;cursor:pointer;box-shadow:0 6px 20px #0000001f;border:3px solid var(--primary);position:relative;transition:transform .2s,box-shadow .2s,border-color .2s;-webkit-tap-highlight-color:transparent}.tray-piece:hover{transform:translateY(-5px) scale(1.05);box-shadow:0 10px 30px #d4af374d}.tray-piece:active{transform:scale(.95)}.tray-piece.selected{border-color:#4caf50;box-shadow:0 0 0 4px #4caf504d,0 10px 30px #4caf5033;transform:translateY(-5px) scale(1.08)}.tray-piece.ready{animation:pulse-ready 1.2s infinite;border-color:#4caf50}@keyframes pulse-ready{0%,to{transform:scale(1);box-shadow:0 6px 20px #0000001f}50%{transform:scale(1.05);box-shadow:0 0 0 4px #4caf504d}}.tray-piece.dragging{opacity:.4;transform:scale(.9)}@media (max-width: 600px){.puzzle-section{padding:40px 0}.puzzle-container{padding:20px 15px;border-radius:0;border-left:none;border-right:none;max-width:100%}.puzzle-board{max-width:100%;padding:0 10px}.tray-piece{width:70px;height:70px}.empty-slot span{font-size:1.5rem}}.footer{background:var(--text-dark);color:#fff;padding:100px 20px;text-align:center;position:relative;overflow:hidden}.footer-content{position:relative;z-index:2}.footer h2{font-size:3.5rem;margin-bottom:15px}.footer p{letter-spacing:.3rem;font-family:var(--font-heading);opacity:.8}
