*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0a0f;--bg2: #0f0f1a;--surface: rgba(255,255,255,.04);--surface-hover: rgba(255,255,255,.07);--border: rgba(255,255,255,.08);--border-light: rgba(255,255,255,.12);--text: #f0f0f5;--text-muted: rgba(240,240,245,.5);--text-dim: rgba(240,240,245,.3);--accent: #a78bfa;--accent2: #f472b6;--gold: #f59e0b;--blue: #38bdf8;--pink: #f9a8d4;--radius: 16px;--radius-sm: 10px;--font-display: "Playfair Display", Georgia, serif;--font-body: "Inter", system-ui, sans-serif;--transition: .3s cubic-bezier(.4, 0, .2, 1);--glow: 0 0 40px rgba(167,139,250,.15)}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);min-height:100vh;overflow-x:hidden;position:relative}.stars{position:fixed;inset:0;pointer-events:none;z-index:0}.star{position:absolute;width:2px;height:2px;background:#fff;border-radius:50%;animation:twinkle var(--dur, 3s) ease-in-out infinite var(--delay, 0s);opacity:0}@keyframes twinkle{0%,to{opacity:0;transform:scale(.8)}50%{opacity:var(--brightness, .6);transform:scale(1.2)}}.glass-card{background:#ffffff0a;backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 32px #0006,inset 0 1px #ffffff0f}.gradient-text{background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn-primary{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-family:var(--font-body);font-weight:600;font-size:1rem;border:none;border-radius:50px;cursor:pointer;text-decoration:none;transition:var(--transition);position:relative;overflow:hidden;white-space:nowrap}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 32px #a78bfa66}.btn-primary:active{transform:translateY(0)}.btn-primary.btn-large{padding:16px 36px;font-size:1.1rem}.btn-primary.btn-full{width:100%;justify-content:center;border-radius:var(--radius-sm)}.btn-glow{box-shadow:0 0 30px #a78bfa4d;animation:pulse-glow 2.5s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 30px #a78bfa4d}50%{box-shadow:0 0 50px #a78bfa99,0 0 80px #f472b633}}.btn-shine{position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transform:translate(-100%);animation:shine 3s ease-in-out infinite}@keyframes shine{0%{transform:translate(-100%)}30%{transform:translate(100%)}to{transform:translate(100%)}}.btn-secondary{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:transparent;color:var(--text-muted);font-family:var(--font-body);font-weight:500;font-size:.95rem;border:1px solid var(--border-light);border-radius:50px;cursor:pointer;text-decoration:none;transition:var(--transition)}.btn-secondary:hover{color:var(--text);border-color:#fff3;background:var(--surface)}.btn-whatsapp{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;background:#25d366;color:#fff;font-weight:600;font-size:1rem;border-radius:50px;text-decoration:none;transition:var(--transition);font-family:var(--font-body)}.btn-whatsapp:hover{background:#22c55e;transform:translateY(-2px);box-shadow:0 8px 24px #25d3664d}.app-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:20px 24px;display:flex;align-items:center}.header-logo{font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:var(--text);text-decoration:none;letter-spacing:.02em;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px;padding:80px 60px 60px;max-width:1200px;margin:0 auto;position:relative;z-index:1}.logo-badge{display:inline-block;font-family:var(--font-display);font-size:1.1rem;color:var(--accent);margin-bottom:20px;letter-spacing:.05em}.landing-title{font-family:var(--font-display);font-size:clamp(2.4rem,5vw,3.8rem);line-height:1.15;font-weight:700;margin-bottom:20px}.landing-sub{font-size:1.1rem;color:var(--text-muted);line-height:1.7;margin-bottom:36px;max-width:480px}.landing-note{margin-top:16px;font-size:.85rem;color:var(--text-dim);letter-spacing:.03em}.landing-preview{display:flex;justify-content:center;align-items:center}.preview-card{width:280px;padding:32px 28px;border-radius:20px;text-align:center;animation:float 4s ease-in-out infinite;position:relative}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.preview-gift{font-size:3rem;margin-bottom:16px}.preview-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:8px}.preview-msg{font-family:var(--font-display);font-size:1rem;line-height:1.5;margin-bottom:12px}.preview-from{font-size:.85rem;color:var(--text-muted);font-style:italic}.create-page{max-width:680px;margin:0 auto;padding:100px 24px 60px;position:relative;z-index:1}.page-header{text-align:center;margin-bottom:40px}.page-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,2.8rem);font-weight:700;margin-bottom:12px}.page-sub{color:var(--text-muted);font-size:1rem;line-height:1.6}.wish-form{padding:36px}.form-section{margin-bottom:36px;padding-bottom:36px;border-bottom:1px solid var(--border)}.form-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.section-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600;margin-bottom:20px;color:var(--text)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.field-group{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.field-group:last-child{margin-bottom:0}label{font-size:.875rem;font-weight:500;color:var(--text-muted)}.required{color:var(--accent2)}.optional-label{font-size:.78rem;color:var(--text-dim);font-weight:400;margin-left:4px}input[type=text],input[type=number],select,textarea{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-body);font-size:.95rem;transition:var(--transition);outline:none;-webkit-appearance:none;appearance:none}input[type=text]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:var(--accent);background:#a78bfa0f;box-shadow:0 0 0 3px #a78bfa1f}input::placeholder,textarea::placeholder{color:var(--text-dim)}select{cursor:pointer}select option{background:#1a1a2e;color:var(--text)}textarea{resize:vertical;min-height:110px;line-height:1.6}.char-count{text-align:right;font-size:.78rem;color:var(--text-dim);margin-top:-4px}.field-error{font-size:.8rem;color:#f87171;min-height:16px;display:block}.theme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.theme-card{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;border-radius:var(--radius-sm);padding:8px;border:2px solid transparent;transition:var(--transition)}.theme-card:hover{border-color:#fff3}.theme-card.active{border-color:var(--accent);background:#a78bfa14}.theme-preview{width:100%;aspect-ratio:1;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.6rem}.theme-label{font-size:.75rem;color:var(--text-muted);text-align:center}.upload-zone{border:2px dashed var(--border-light);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);overflow:hidden}.upload-zone:hover{border-color:var(--accent);background:#a78bfa0a}.upload-prompt{padding:28px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.upload-icon{font-size:2rem}.upload-prompt p{font-size:.9rem;color:var(--text-muted)}.upload-prompt span{font-size:.78rem;color:var(--text-dim)}.upload-preview{padding:16px;display:flex;flex-direction:column;align-items:center;gap:12px}.upload-preview img{max-width:200px;max-height:180px;border-radius:10px;object-fit:cover}.upload-preview audio{width:100%}.remove-upload{background:#f871711a;border:1px solid rgba(248,113,113,.2);color:#f87171;border-radius:20px;padding:6px 14px;font-size:.8rem;cursor:pointer;transition:var(--transition);font-family:var(--font-body)}.remove-upload:hover{background:#f8717133}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.large-spinner{width:44px;height:44px;border-width:3px;border-color:var(--border-light);border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.submit-error{margin-top:12px;color:#f87171;font-size:.85rem;text-align:center;min-height:20px}.success-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;position:relative;z-index:1}.success-card{max-width:520px;width:100%;padding:48px 36px;text-align:center}.success-icon{font-size:3.5rem;margin-bottom:20px;animation:bounce .6s ease}@keyframes bounce{0%{transform:scale(0) rotate(-10deg)}60%{transform:scale(1.2) rotate(4deg)}to{transform:scale(1) rotate(0)}}.success-card h2{font-family:var(--font-display);font-size:2rem;margin-bottom:10px}.success-sub{color:var(--text-muted);margin-bottom:28px;line-height:1.6}.link-box{display:flex;align-items:center;gap:10px;background:#ffffff0d;border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:8px;word-break:break-all;text-align:left}.link-box span{flex:1;font-size:.85rem;color:var(--accent);font-family:monospace}.copy-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:6px;transition:var(--transition);flex-shrink:0}.copy-btn:hover{color:var(--accent);background:#a78bfa1a}.copy-toast{font-size:.8rem;color:#4ade80;margin-bottom:24px;height:20px;opacity:0;transition:opacity .3s}.copy-toast.visible{opacity:1}.share-actions{display:flex;flex-direction:column;gap:12px;align-items:center}.wish-step{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;position:relative;z-index:1}.teaser-content{text-align:center;display:flex;flex-direction:column;align-items:center;gap:0}.teaser-sparkles{position:relative;height:40px;width:120px;margin-bottom:16px}.sparkle{position:absolute;font-size:1.2rem;color:var(--accent);animation:sparkle-float 2s ease-in-out infinite}.s1{left:10px;top:0;animation-delay:0s}.s2{left:50%;top:50%;transform:translate(-50%,-50%);animation-delay:.5s;font-size:1.8rem}.s3{right:10px;top:0;animation-delay:1s}@keyframes sparkle-float{0%,to{transform:translateY(0) scale(1);opacity:.6}50%{transform:translateY(-6px) scale(1.2);opacity:1}}.teaser-label{font-size:1.1rem;color:var(--text-muted);margin-bottom:40px;font-style:italic}.gift-box-wrap{margin-bottom:48px;cursor:pointer}.gift-box{width:120px;height:110px;position:relative;animation:gift-wiggle 3s ease-in-out infinite}@keyframes gift-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.gift-box.opened{animation:gift-open .6s ease forwards}@keyframes gift-open{0%{transform:scale(1)}30%{transform:scale(1.15) rotate(-5deg)}60%{transform:scale(.9) rotate(5deg)}to{transform:scale(0) rotate(360deg);opacity:0}}.gift-lid{position:absolute;top:0;left:0;right:0;height:38px;background:linear-gradient(135deg,#7c3aed,#a855f7);border-radius:6px 6px 0 0;display:flex;align-items:center;justify-content:center;z-index:2}.gift-body{position:absolute;bottom:0;left:0;right:0;height:75px;background:linear-gradient(135deg,#6d28d9,#9333ea);border-radius:0 0 8px 8px;display:flex;align-items:center;justify-content:center;overflow:hidden}.gift-bow{position:relative;width:40px;height:28px}.bow-left,.bow-right{position:absolute;width:18px;height:14px;background:#f9a8d4;border-radius:50%;top:0}.bow-left{left:0;transform:rotate(-30deg)}.bow-right{right:0;transform:rotate(30deg)}.bow-center{position:absolute;width:10px;height:10px;background:#fce7f3;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1}.gift-ribbon-v{width:12px;height:100%;background:#f9a8d499;border-radius:2px}.countdown-wrap{text-align:center}.countdown-number{font-family:var(--font-display);font-size:clamp(8rem,25vw,16rem);font-weight:700;line-height:1;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:count-pop .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes count-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.reveal-content{max-width:600px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:28px;padding:24px 0 60px;animation:reveal-in .8s cubic-bezier(.4,0,.2,1)}@keyframes reveal-in{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.reveal-header{display:flex;flex-direction:column;align-items:center;gap:12px}.reveal-emoji{font-size:3.5rem;animation:bounce .6s ease}.reveal-title{font-family:var(--font-display);font-size:clamp(2rem,6vw,3.2rem);font-weight:700;line-height:1.2}.reveal-photo{max-width:320px;width:100%;border-radius:16px;object-fit:cover;box-shadow:0 20px 60px #00000080,0 0 0 1px var(--border);animation:photo-in .8s ease .3s both}@keyframes photo-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.reveal-message-wrap{padding:28px 32px;max-width:520px;width:100%}.reveal-message{font-family:var(--font-display);font-size:1.15rem;line-height:1.8;color:var(--text);font-style:italic}.voice-label{font-size:.9rem;color:var(--text-muted);margin-bottom:12px}.reveal-audio{width:100%;max-width:400px;filter:invert(1) opacity(.7)}.reveal-sender{display:flex;align-items:center;gap:16px;width:100%;max-width:320px}.sender-line{flex:1;height:1px;background:var(--border)}.sender-text{font-size:.9rem;color:var(--text-muted);white-space:nowrap}.sender-text strong{color:var(--text);font-weight:600}.view-count-wrap{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--text-dim)}.view-icon{font-size:.9rem}.reveal-cta{margin-top:8px}.loading-content,.error-content{text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.error-content{padding:48px 36px;max-width:380px}.error-icon{font-size:3rem}.error-content h2{font-family:var(--font-display);font-size:1.6rem}.error-content p{color:var(--text-muted);margin-bottom:8px}.confetti-container{position:fixed;inset:0;pointer-events:none;z-index:999;overflow:hidden}.confetti-piece{position:absolute;top:-10px;width:8px;height:8px;border-radius:2px;animation:confetti-fall var(--duration) ease-in var(--delay) forwards;opacity:0}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0) rotate(0) translate(0)}to{opacity:0;transform:translateY(100vh) rotate(720deg) translate(var(--drift))}}.theme-dark-premium{background:linear-gradient(135deg,#1a0533,#0d1b3e);border:1px solid rgba(167,139,250,.2)}.theme-gold-luxury{background:linear-gradient(135deg,#1c1000,#2d1f00);border:1px solid rgba(245,158,11,.3)}.theme-blue-sky{background:linear-gradient(135deg,#001528,#024);border:1px solid rgba(56,189,248,.3)}.theme-cute-pink{background:linear-gradient(135deg,#2a0018,#1a0028);border:1px solid rgba(249,168,212,.3)}body.wish-dark-premium{background:radial-gradient(ellipse at 50% 0%,#1a0533,#0a0a0f 60%)}body.wish-gold-luxury{background:radial-gradient(ellipse at 50% 0%,#1c1000,#080600 60%)}body.wish-gold-luxury .gradient-text{background:linear-gradient(135deg,#f59e0b,#fbbf24);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}body.wish-gold-luxury .btn-glow{box-shadow:0 0 30px #f59e0b66}body.wish-gold-luxury .countdown-number{background:linear-gradient(135deg,#f59e0b,#fbbf24);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}body.wish-blue-sky{background:radial-gradient(ellipse at 50% 0%,#001528,#000a14 60%)}body.wish-blue-sky .gradient-text{background:linear-gradient(135deg,#38bdf8,#7dd3fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}body.wish-blue-sky .btn-primary{background:linear-gradient(135deg,#0284c7,#38bdf8)}body.wish-blue-sky .btn-glow{box-shadow:0 0 30px #38bdf866}body.wish-blue-sky .countdown-number{background:linear-gradient(135deg,#38bdf8,#7dd3fc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}body.wish-cute-pink{background:radial-gradient(ellipse at 50% 0%,#2a0018,#0f000a 60%)}body.wish-cute-pink .gradient-text{background:linear-gradient(135deg,#f9a8d4,#f472b6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}body.wish-cute-pink .btn-primary{background:linear-gradient(135deg,#db2777,#f9a8d4)}body.wish-cute-pink .btn-glow{box-shadow:0 0 30px #f9a8d466}body.wish-cute-pink .countdown-number{background:linear-gradient(135deg,#f9a8d4,#f472b6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}@media(max-width:768px){.landing{grid-template-columns:1fr;padding:90px 24px 48px;gap:40px;text-align:center}.landing-sub{margin-left:auto;margin-right:auto}.landing-preview{order:-1}.preview-card{width:220px}.wish-form{padding:24px 20px}.field-row{grid-template-columns:1fr}.theme-grid{grid-template-columns:repeat(2,1fr)}.success-card{padding:36px 24px}.reveal-message-wrap{padding:22px 20px}}.sdh-attribution{display:inline-flex;align-items:center;gap:6px;font-family:Inter,sans-serif;font-size:.75rem;font-weight:400;color:#ffffff59;letter-spacing:.03em;margin-top:6px;transition:color .2s ease}.sdh-attribution a{color:#a78bfa99;text-decoration:none;transition:color .2s ease}.sdh-attribution a:hover{color:#a78bfa}.sdh-attribution:before{content:"";display:inline-block;width:3px;height:3px;border-radius:50%;background:#ffffff40}.sdh-replit-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:99px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);font-family:Inter,sans-serif;font-size:.72rem;font-weight:500;color:#ffffff73;letter-spacing:.04em;text-decoration:none;margin-top:10px;transition:background .2s ease,border-color .2s ease,color .2s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.sdh-replit-badge:hover{background:#ffffff17;border-color:#a78bfa66;color:#ffffffb3}.sdh-replit-badge svg{width:13px;height:13px;opacity:.7;flex-shrink:0}.sdh-replit-cta{display:inline-flex;align-items:center;gap:8px;font-family:Inter,sans-serif;font-size:.8rem;font-weight:500;color:#a78bfab3;text-decoration:none;padding:8px 16px;border-radius:8px;border:1px solid rgba(167,139,250,.2);background:#a78bfa0d;transition:all .2s ease;margin-top:8px}.sdh-replit-cta:hover{color:#a78bfa;border-color:#a78bfa73;background:#a78bfa1a;transform:translateY(-1px)}.sdh-footer{width:100%;padding:24px 20px 20px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;border-top:1px solid rgba(255,255,255,.06);margin-top:auto}.sdh-footer-copy{font-family:Inter,sans-serif;font-size:.75rem;font-weight:400;color:#ffffff4d;letter-spacing:.02em}.sdh-footer-copy a{color:#ffffff73;text-decoration:none;transition:color .2s ease}.sdh-footer-copy a:hover{color:#a78bfae6}.sdh-footer-built{font-family:Inter,sans-serif;font-size:.7rem;font-weight:400;color:#fff3;letter-spacing:.03em}.sdh-footer-built a{color:#ffffff4d;text-decoration:none;transition:color .2s ease}.sdh-footer-built a:hover{color:#a78bfab3}.sdh-mobile-banner{display:none}@media(max-width:768px){.sdh-mobile-banner{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:999;align-items:center;justify-content:center;padding:11px 16px;background:#0a0a0feb;border-top:1px solid rgba(167,139,250,.2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.sdh-mobile-banner a{font-family:Inter,sans-serif;font-size:.78rem;font-weight:500;color:#a78bfad9;text-decoration:none;letter-spacing:.02em;transition:color .2s ease}.sdh-mobile-banner a:hover{color:#a78bfa}body.sdh-has-banner{padding-bottom:44px}}
