*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;min-height:100%}body{font-family:Cormorant Garamond,serif;background:#0d0208;background:radial-gradient(ellipse at 50% 50%,#1a0a10,#0d0208 70%);color:#f4e4c1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}#root{width:100%;height:100%}.landing{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 40%,#1a0a10,#0d0208);color:#f4e4c1;position:relative;overflow:hidden;padding:40px 20px}.landing-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}.floating-heart{position:absolute;bottom:-30px;color:#e63946;animation:floatUp linear infinite}@keyframes floatUp{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:.15}90%{opacity:.15}to{transform:translateY(-110vh) rotate(360deg);opacity:0}}.landing-content{text-align:center;max-width:560px;position:relative;z-index:1}.landing-badge{display:inline-block;font-family:Cormorant Garamond,serif;font-size:.9rem;letter-spacing:.15em;text-transform:uppercase;color:#e63946;border:1px solid rgba(230,57,70,.3);padding:6px 18px;border-radius:20px;margin-bottom:28px}.landing-title{font-family:Playfair Display,serif;font-style:italic;font-size:clamp(2.2rem,7vw,3.6rem);font-weight:700;color:#d4af37;line-height:1.2;margin-bottom:20px;text-shadow:0 0 60px rgba(212,175,55,.2)}.landing-desc{font-family:Cormorant Garamond,serif;font-size:clamp(1rem,2.5vw,1.2rem);line-height:1.7;color:#f4e4c1a6;margin-bottom:36px}.landing-steps{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:36px;flex-wrap:wrap}.step{display:flex;align-items:center;gap:10px}.step-num{width:32px;height:32px;border-radius:50%;border:1px solid rgba(212,175,55,.4);display:flex;align-items:center;justify-content:center;font-family:Playfair Display,serif;font-size:.85rem;color:#d4af37;flex-shrink:0}.step-text{font-family:Cormorant Garamond,serif;font-size:.95rem;color:#f4e4c1b3;white-space:nowrap}.step-arrow{color:#d4af374d;font-size:1.2rem}.landing-cta{display:inline-block;padding:16px 48px;border-radius:8px;border:none;background:linear-gradient(135deg,#e63946,#c9184a);color:#fff;font-family:Playfair Display,serif;font-size:1.15rem;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 4px 30px #e6394659;margin-bottom:16px}.landing-cta:hover{transform:translateY(-2px);box-shadow:0 8px 40px #e6394680}.landing-note{font-family:Cormorant Garamond,serif;font-size:.85rem;color:#f4e4c159}.ambient-layer{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.ambient-particle{position:absolute;background:#d4af374d;border-radius:50%;animation:ambientFloat linear infinite}@keyframes ambientFloat{0%{transform:translateY(100vh) translate(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-10vh) translate(var(--drift));opacity:0}}.instruction{position:fixed;top:30px;left:50%;transform:translate(-50%);text-align:center;z-index:100;pointer-events:none;animation:fadeInDown 1.5s ease-out;transition:opacity .6s ease}.instruction h2{font-family:Playfair Display,serif;font-style:italic;font-weight:400;font-size:clamp(.95rem,2.8vw,2rem);color:#d4af37;letter-spacing:.05em;text-shadow:0 0 30px rgba(212,175,55,.3)}@keyframes fadeInDown{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.counter{position:fixed;bottom:25px;left:50%;transform:translate(-50%);z-index:100;text-align:center;pointer-events:none;transition:opacity .6s ease}.count-number{font-family:Playfair Display,serif;font-size:clamp(2.5rem,6vw,4rem);font-weight:700;color:#e63946;text-shadow:0 0 40px rgba(230,57,70,.4);display:inline-block;animation:countPulse .35s ease}@keyframes countPulse{0%{transform:scale(1.35)}to{transform:scale(1)}}.count-label{font-family:Cormorant Garamond,serif;font-size:clamp(.75rem,1.8vw,1rem);color:#f4e4c173;letter-spacing:.15em;text-transform:uppercase;margin-top:2px}.hearts-container{position:fixed;inset:0;z-index:10}.heart-wrapper{position:absolute;opacity:0;animation:heartEntrance .7s ease forwards}@keyframes heartEntrance{0%{opacity:0;transform:translateY(45px) scale(.5)}to{opacity:1;transform:translateY(0) scale(1)}}.heart-balloon{cursor:pointer;animation:floatBalloon var(--float-duration) ease-in-out var(--float-delay) infinite;transition:filter .2s ease;-webkit-tap-highlight-color:transparent}.heart-balloon:hover{filter:brightness(1.3) drop-shadow(0 0 14px var(--heart-color))}.heart-balloon:hover .heart-shape{transform:scale(1.15)}.name-text{font-size:3rem;line-height:1.2}@keyframes floatBalloon{0%,to{transform:translate(0) rotate(var(--rot-start))}25%{transform:translate(var(--drift-x),var(--drift-y1)) rotate(var(--rot-mid))}50%{transform:translate(calc(var(--drift-x) * -.5),var(--drift-y2)) rotate(var(--rot-start))}75%{transform:translate(calc(var(--drift-x) * .7),var(--drift-y1)) rotate(var(--rot-end))}}.heart-shape{width:var(--heart-size);height:var(--heart-size);transition:transform .2s ease}.heart-shape svg{width:100%;height:100%;display:block;filter:drop-shadow(0 4px 12px rgba(0,0,0,.4))}.balloon-string{position:absolute;left:50%;top:100%;transform:translate(-50%);width:1px;height:var(--string-length);background:linear-gradient(to bottom,#f4e4c159,#f4e4c10a)}.heart-balloon.popping{animation:none!important;pointer-events:none;cursor:default}.heart-balloon.popping .heart-shape{animation:popHeart .4s ease-out forwards}.heart-balloon.popping .balloon-string{animation:stringFade .2s ease-out forwards}@keyframes popHeart{0%{transform:scale(1);opacity:1}25%{transform:scale(1.4);opacity:1}to{transform:scale(0);opacity:0}}@keyframes stringFade{to{opacity:0}}.pop-glow{position:fixed;pointer-events:none;z-index:999;border-radius:50%;transform:translate(-50%,-50%);animation:glowBurst .55s ease-out forwards}@keyframes glowBurst{0%{transform:translate(-50%,-50%) scale(0);opacity:.9}to{transform:translate(-50%,-50%) scale(3);opacity:0}}.pop-particle{position:fixed;pointer-events:none;z-index:1000}@keyframes particleFly{0%{transform:translate(0) scale(1) rotate(0);opacity:1}to{transform:translate(var(--px),var(--py)) scale(0) rotate(var(--pr));opacity:0}}.reveal{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2000;opacity:0;pointer-events:none;background:radial-gradient(ellipse at 50% 40%,#1a0a10,#0d0208);transition:opacity 1.5s ease;padding:20px;overflow-y:auto}.reveal.active{opacity:1;pointer-events:auto}.reveal-content{text-align:center;max-width:600px}.reveal-line{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}.reveal.active .reveal-line:nth-child(1){opacity:1;transform:translateY(0);transition-delay:.6s}.reveal.active .reveal-line:nth-child(2){opacity:1;transform:translateY(0);transition-delay:1.2s}.reveal.active .reveal-line:nth-child(3){opacity:1;transform:translateY(0);transition-delay:1.8s}.reveal.active .reveal-line:nth-child(4){opacity:1;transform:translateY(0);transition-delay:2.4s}.reveal.active .reveal-line:nth-child(5){opacity:1;transform:translateY(0);transition-delay:3s}.reveal.active .reveal-line:nth-child(6){opacity:1;transform:translateY(0);transition-delay:3.6s}.reveal-title{font-family:Playfair Display,serif;font-style:italic;font-size:clamp(2rem,8vw,3.8rem);font-weight:700;color:#e63946;line-height:1.2;margin-bottom:8px;text-shadow:0 0 60px rgba(212,175,55,.3);white-space:nowrap}.reveal-ampersand{font-family:Playfair Display,serif;font-style:italic;font-size:clamp(1.2rem,4vw,2rem);color:#d4af37;margin:4px 0}.reveal-subtitle{font-family:Playfair Display,serif;font-style:italic;font-size:clamp(1.7rem,6vw,3.2rem);font-weight:700;color:#d4af37;line-height:1.2;margin-bottom:24px;text-shadow:0 0 60px rgba(230,57,70,.3)}.reveal-divider{width:60px;height:1px;background:linear-gradient(90deg,transparent,#d4af37,transparent);margin:0 auto 24px}.reveal-message{font-family:Cormorant Garamond,serif;font-size:clamp(1.3rem,3.5vw,1.85rem);font-weight:300;line-height:1.9;color:#f4e4c1d9;font-style:italic}.reveal-heart{font-size:clamp(2rem,5vw,3rem);margin-top:24px;color:#e63946;animation:heartbeat 1.2s ease-in-out infinite}.confetti-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:2001}.sparkle{position:fixed;pointer-events:none;z-index:2002;animation:sparkleAnim var(--sparkle-duration) ease-in-out forwards}@keyframes sparkleAnim{0%{transform:scale(0) rotate(0);opacity:0}30%{opacity:1}to{transform:scale(1) rotate(180deg);opacity:0}}@media(max-width:600px){.instruction{top:15px}.instruction h2{white-space:normal;padding:0 20px}.counter{bottom:12px}}.create-page{min-height:100vh;background:radial-gradient(ellipse at 50% 50%,#1a0a10,#0d0208 70%);color:#f4e4c1;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto}.create-container{max-width:900px;width:100%}.back-link{background:none;border:none;color:#d4af37;font-family:Cormorant Garamond,serif;font-size:1rem;cursor:pointer;padding:0;margin-bottom:24px;display:inline-block}.back-link:hover{text-decoration:underline}.create-heading{font-family:Playfair Display,serif;font-style:italic;font-size:clamp(1.8rem,5vw,2.8rem);color:#d4af37;margin-bottom:8px}.create-subheading{font-family:Cormorant Garamond,serif;font-size:1.1rem;color:#f4e4c199;margin-bottom:32px}.create-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px}@media(max-width:700px){.create-layout{grid-template-columns:1fr}}.form-section{display:flex;flex-direction:column;gap:18px}.field-label{display:flex;flex-direction:column;gap:6px;font-family:Cormorant Garamond,serif;font-size:.95rem;color:#f4e4c1b3}.field-input,.field-textarea{background:#ffffff0f;border:1px solid rgba(212,175,55,.25);border-radius:8px;padding:10px 14px;font-family:Cormorant Garamond,serif;font-size:1.05rem;color:#f4e4c1;outline:none;transition:border-color .2s}.field-input:focus,.field-textarea:focus{border-color:#d4af37}.field-textarea{resize:vertical;min-height:100px}.field-range{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:#ffffff1a;outline:none;cursor:pointer}.field-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#e63946;border:2px solid #d4af37;cursor:pointer}.field-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#e63946;border:2px solid #d4af37;cursor:pointer}.range-hints{display:flex;justify-content:space-between;font-size:.8rem;color:#f4e4c159}.form-actions{display:flex;gap:12px;margin-top:8px;flex-wrap:wrap}.preview-btn{padding:12px 28px;border-radius:8px;border:1px solid #d4af37;background:transparent;color:#d4af37;font-family:Playfair Display,serif;font-size:1rem;cursor:pointer;transition:all .2s}.preview-btn:hover:not(:disabled){background:#d4af371a}.preview-btn:disabled{opacity:.4;cursor:not-allowed}.checkout-btn{padding:12px 28px;border-radius:8px;border:none;background:linear-gradient(135deg,#e63946,#c9184a);color:#fff;font-family:Playfair Display,serif;font-size:1rem;cursor:pointer;transition:all .2s;box-shadow:0 4px 20px #e639464d}.checkout-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 25px #e6394666}.checkout-btn:disabled{opacity:.5;cursor:not-allowed}.checkout-error{color:#ff6b81;font-size:.9rem;margin-top:8px}.mini-preview{position:sticky;top:40px}.mini-preview-label{font-family:Cormorant Garamond,serif;font-size:.85rem;text-transform:uppercase;letter-spacing:.15em;color:#f4e4c166;margin-bottom:12px}.mini-preview-card{background:radial-gradient(ellipse at 50% 40%,#1a0a10,#0d0208);border:1px solid rgba(212,175,55,.15);border-radius:12px;padding:32px 24px;text-align:center}.mini-title{font-family:Playfair Display,serif;font-style:italic;font-size:1.5rem;font-weight:700;color:#e63946;margin-bottom:4px}.mini-amp{font-family:Playfair Display,serif;font-style:italic;color:#d4af37;font-size:1rem}.mini-subtitle{font-family:Playfair Display,serif;font-style:italic;font-size:1.3rem;font-weight:700;color:#d4af37;margin-bottom:16px}.mini-divider{width:40px;height:1px;background:linear-gradient(90deg,transparent,#d4af37,transparent);margin:16px auto}.mini-dear{font-family:Cormorant Garamond,serif;font-style:italic;color:#f4e4c1d9;margin-bottom:8px}.mini-message{font-family:Cormorant Garamond,serif;font-size:1rem;line-height:1.7;color:#f4e4c1b3;white-space:pre-wrap;word-break:break-word}.mini-sender{margin-top:16px;font-family:Playfair Display,serif;font-size:1.2rem;color:#f4e4c1}.mini-heart{color:#e63946}.preview-fullscreen{position:fixed;inset:0;z-index:9999;background:#0d0208}.preview-close{position:fixed;top:16px;right:16px;z-index:10000;background:#000000b3;border:1px solid rgba(212,175,55,.3);color:#d4af37;font-family:Cormorant Garamond,serif;font-size:1rem;padding:8px 20px;border-radius:8px;cursor:pointer}.preview-close:hover{background:#000000e6}.share-card{text-align:center;max-width:500px;margin:80px auto 0}.share-icon{font-size:4rem;color:#e63946;margin-bottom:16px;animation:heartbeat 1.2s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1)}15%{transform:scale(1.18)}30%{transform:scale(1)}45%{transform:scale(1.12)}}.share-card h1{font-family:Playfair Display,serif;font-style:italic;font-size:2rem;color:#d4af37;margin-bottom:8px}.share-subtitle{font-family:Cormorant Garamond,serif;color:#f4e4c199;margin-bottom:24px}.share-link-box{background:#ffffff0f;border:1px solid rgba(212,175,55,.25);border-radius:8px;padding:14px 18px;margin-bottom:24px;cursor:pointer;transition:border-color .2s,background .2s;word-break:break-all}.share-link-box:hover{border-color:#d4af37;background:#ffffff1a}.share-link-text{font-family:Cormorant Garamond,serif;font-size:1.05rem;color:#d4af37}.share-actions{display:flex;gap:12px;justify-content:center;margin-bottom:20px}.share-btn{padding:14px 48px;border-radius:8px;border:none;background:linear-gradient(135deg,#e63946,#c9184a);color:#fff;font-family:Playfair Display,serif;font-size:1.05rem;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 4px 20px #e639464d}.share-btn:hover{transform:translateY(-1px);box-shadow:0 6px 25px #e6394666}.share-actions-secondary{display:flex;gap:12px;justify-content:center}.toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%);background:#d4af37f2;color:#0d0208;font-family:Cormorant Garamond,serif;font-size:1rem;font-weight:600;padding:12px 28px;border-radius:8px;z-index:9999;animation:toastIn .3s ease,toastOut .3s ease 2.2s forwards;pointer-events:none}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(12px)}}.btn-secondary{padding:10px 24px;border-radius:8px;border:1px solid rgba(212,175,55,.3);background:transparent;color:#d4af37;font-family:Cormorant Garamond,serif;font-size:.95rem;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:#d4af371a}.wish-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 50%,#1a0a10,#0d0208 70%);color:#f4e4c1}.wish-loading-heart{font-size:4rem;color:#e63946;animation:heartPulse 1.2s ease-in-out infinite}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.wish-loading p{font-family:Cormorant Garamond,serif;font-size:1.2rem;color:#f4e4c199;margin-top:16px}.wish-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 50%,#1a0a10,#0d0208 70%);color:#f4e4c1;text-align:center;padding:20px}.wish-error h1{font-family:Playfair Display,serif;font-style:italic;font-size:2rem;color:#d4af37;margin-bottom:12px}.wish-error p{font-family:Cormorant Garamond,serif;font-size:1.1rem;color:#f4e4c180}
