@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;900&family=Inter:wght@300;400;500;600&display=swap";:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;background:linear-gradient(135deg,#0f0c29,#1a1a3e,#24243e 60%,#0f0c29);color:#fafafa;overflow-x:hidden}.floating-hearts{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.floating-hearts span{position:absolute;font-size:1.4rem;animation:floatUp linear infinite;opacity:.25}@keyframes floatUp{0%{transform:translateY(100vh) rotate(0) scale(.8);opacity:0}10%{opacity:.25}90%{opacity:.25}to{transform:translateY(-10vh) rotate(720deg) scale(1.2);opacity:0}}.proposal-header{text-align:center;padding:3rem 1rem 1.5rem;position:relative;z-index:1}.proposal-header .ring-icon{font-size:4rem;display:block;margin-bottom:.5rem;animation:sparkle 2s ease-in-out infinite}@keyframes sparkle{0%,to{transform:scale(1) rotate(0);filter:brightness(1)}25%{transform:scale(1.1) rotate(-5deg);filter:brightness(1.3)}50%{transform:scale(1) rotate(0);filter:brightness(1)}75%{transform:scale(1.1) rotate(5deg);filter:brightness(1.3)}}.proposal-header h1{font-family:Playfair Display,serif;font-size:2.2rem;font-weight:700;background:linear-gradient(135deg,#818cf8,#c084fc,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.3rem}.proposal-header p{color:#ffffff8c;font-size:.95rem;font-style:italic}.progress-bar{max-width:500px;margin:0 auto 2rem;padding:0 1rem;position:relative;z-index:1}.progress-track{height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#818cf8,#c084fc);border-radius:3px;transition:width .5s cubic-bezier(.34,1.56,.64,1)}.progress-text{text-align:center;font-size:.75rem;color:#fff6;margin-top:.4rem}.box-ring{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;max-width:600px;margin:0 auto;padding:0 1.5rem 3rem;position:relative;z-index:1}@media(max-width:500px){.box-ring{grid-template-columns:repeat(3,1fr);gap:.9rem;padding:0 1rem 3rem}.proposal-header h1{font-size:1.6rem}}.gift-box{aspect-ratio:1;perspective:600px;cursor:pointer;position:relative}.gift-box.disabled{pointer-events:none}.box-inner{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.34,1.56,.64,1);border-radius:1rem}.gift-box.opened .box-inner{transform:rotateY(180deg)}.box-front,.box-back{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:1rem;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:.6rem}.box-front{background:linear-gradient(145deg,#1e1b4b,#1e1145);border:2px solid rgba(129,140,248,.3);box-shadow:0 4px 20px #818cf826,inset 0 1px #ffffff1a;transition:border-color .3s,box-shadow .3s}.gift-box:hover .box-front{border-color:#818cf899;box-shadow:0 8px 30px #818cf840,inset 0 1px #ffffff26}.box-front .box-number{font-family:Playfair Display,serif;font-size:1.8rem;font-weight:900;background:linear-gradient(135deg,#818cf8,#c084fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.box-front .box-hint{font-size:.6rem;color:#ffffff59;text-transform:uppercase;letter-spacing:.15em;margin-top:.2rem}.box-front .box-ribbon{position:absolute;top:-1px;left:50%;transform:translate(-50%);width:20px;height:100%;background:linear-gradient(180deg,rgba(129,140,248,.4),transparent);border-radius:0 0 2px 2px;pointer-events:none}.box-front .box-bow{position:absolute;top:-8px;left:50%;transform:translate(-50%);font-size:1.2rem;pointer-events:none}.box-back{background:linear-gradient(145deg,#1a0a2e,#0f1b3d);border:2px solid rgba(129,140,248,.4);transform:rotateY(180deg);padding:.5rem;gap:.4rem}.box-back .question-text{font-family:Playfair Display,serif;font-size:.65rem;font-weight:600;line-height:1.3;color:#f0e6ff}.box-back .answer-buttons{display:flex;gap:.4rem;margin-top:auto}.box-back .answer-btn{padding:.3rem .7rem;border:none;border-radius:.4rem;font-size:.65rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;font-family:Inter,sans-serif}.box-back .answer-btn:active{transform:scale(.92)}.answer-btn.yes{background:linear-gradient(135deg,#10b981,#34d399);color:#fff;box-shadow:0 2px 10px #10b9814d}.answer-btn.no{background:linear-gradient(135deg,#64748b,#94a3b8);color:#fff;box-shadow:0 2px 10px #64748b4d}.answer-btn.selected{transform:scale(1.05);box-shadow:0 0 15px #ffffff4d;outline:2px solid #fff;outline-offset:2px}.gift-box.answered .box-front:after{content:"";position:absolute;top:6px;right:6px;width:16px;height:16px;background:#10b981;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.55rem}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.reveal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.reveal-content{position:relative;z-index:1;text-align:center;padding:2rem;animation:popIn .6s cubic-bezier(.34,1.56,.64,1);max-width:90vw}@keyframes popIn{0%{transform:scale(.3) rotate(-10deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.reveal-content.yes-result .reveal-banner{font-family:Playfair Display,serif;font-size:2.5rem;font-weight:900;background:linear-gradient(135deg,#818cf8,#c084fc,#a78bfa,#f0abfc);background-size:300% 300%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 3s ease infinite;line-height:1.2;margin-bottom:1rem}@keyframes shimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.reveal-content.no-result .reveal-banner{font-family:Playfair Display,serif;font-size:2rem;font-weight:700;color:#94a3b8;line-height:1.3;margin-bottom:1rem}.reveal-score{font-size:1rem;color:#fff9;margin-bottom:1.5rem}.reveal-emoji{font-size:4rem;display:block;margin-bottom:1rem;animation:bounce 1s ease infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.reveal-btn{padding:.8rem 2rem;border:none;border-radius:2rem;font-size:1rem;font-weight:600;cursor:pointer;font-family:Inter,sans-serif;background:linear-gradient(135deg,#818cf8,#c084fc);color:#fff;box-shadow:0 4px 20px #818cf84d;transition:transform .2s}.reveal-btn:hover{transform:scale(1.05)}.confetti-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:101;overflow:hidden}.confetti-piece{position:absolute;width:10px;height:10px;top:-10px;animation:confettiFall linear forwards}@keyframes confettiFall{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}to{transform:translateY(110vh) rotate(1080deg) scale(.5);opacity:0}}.party-popper{position:fixed;font-size:3rem;z-index:102;animation:popperShoot 1.5s ease-out forwards;pointer-events:none}@keyframes popperShoot{0%{transform:scale(0) rotate(0);opacity:0}30%{transform:scale(1.5) rotate(-20deg);opacity:1}to{transform:scale(.8) rotate(15deg) translateY(-40px);opacity:0}}.sparkle-trail{position:fixed;pointer-events:none;z-index:50;font-size:1rem;animation:sparkleFade .8s ease-out forwards}@keyframes sparkleFade{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0) translateY(-20px)}}.start-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;position:relative;z-index:1}.start-screen .big-ring{font-size:6rem;animation:sparkle 2s ease-in-out infinite;margin-bottom:1rem}.start-screen h1{font-family:Playfair Display,serif;font-size:2.8rem;font-weight:900;background:linear-gradient(135deg,#818cf8,#c084fc,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem}.start-screen p{color:#ffffff80;font-size:1rem;max-width:350px;margin-bottom:2rem;font-style:italic}.start-btn{padding:1rem 3rem;border:none;border-radius:3rem;font-size:1.2rem;font-weight:600;cursor:pointer;font-family:Inter,sans-serif;background:linear-gradient(135deg,#818cf8,#c084fc);color:#fff;box-shadow:0 8px 30px #818cf859;transition:transform .2s,box-shadow .2s;animation:pulse 2s ease-in-out infinite}.start-btn:hover{transform:scale(1.08);box-shadow:0 12px 40px #818cf880}@keyframes pulse{0%,to{box-shadow:0 8px 30px #818cf859}50%{box-shadow:0 8px 50px #818cf899}}
