*,:after,:before{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#050712;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;min-height:100vh}button{font-family:inherit}.App{background:radial-gradient(circle at top left,#ffb6c1 0,#0b1021 50%,#050712 100%);box-sizing:border-box;color:#fff;display:flex;justify-content:center;min-height:100vh;overflow-x:hidden;padding:32px 16px 48px;position:relative}.app-gradient{background:radial-gradient(circle at 10% 20%,#ffb6c147 0,#0000 55%),radial-gradient(circle at 80% 0,#ffd70040 0,#0000 55%),radial-gradient(circle at 50% 100%,#ff69b440 0,#0000 55%);inset:0;opacity:.95;pointer-events:none;position:fixed;z-index:0}.page{max-width:980px;position:relative;width:100%;z-index:1}.section{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#050712cc;border-radius:24px;box-shadow:0 18px 60px #000000a6,0 0 0 1px #ffffff0a;margin-bottom:24px;padding:28px 22px}.section-title{font-size:1.7rem;letter-spacing:.06em;margin:0 0 8px}.section-subtitle{color:#ffffffc7;font-size:.98rem;margin:0 0 18px}.hero{overflow:hidden;padding-bottom:32px;padding-top:36px;position:relative;text-align:left}.hero:after{background:radial-gradient(circle at 30% 10%,#ffe08a 0,#ff6fb5 40%,#0000 70%);content:"";filter:blur(4px);height:200px;inset:auto -60px -80px auto;opacity:.5;position:absolute;width:200px}.hero-date{color:#ffffffb3;font-size:.9rem;letter-spacing:.24em;margin-bottom:10px;text-transform:uppercase}.hero-title{font-size:clamp(2.1rem,4vw,2.8rem);font-weight:700;margin:0 0 10px}.hero-name{color:#ffe08a;text-shadow:0 0 18px #ffdf80cc}.hero-subtitle{color:#ffffffd1;font-size:1rem;margin:0 0 14px}.hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.hero-tags span{background:#ffffff0f;border:1px solid #ffffff14;border-radius:999px;font-size:.82rem;padding:6px 12px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.primary-button,.secondary-button{align-items:center;border:none;border-radius:999px;cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:500;justify-content:center;padding:10px 18px;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,background .2s ease,color .2s ease}.primary-button{background:linear-gradient(135deg,#ff6fb5,#ffe08a);box-shadow:0 12px 30px #ff6fb580;color:#220b27}.primary-button:hover{box-shadow:0 16px 40px #ff6fb5b3;transform:translateY(-1px)}.secondary-button{background:#0000;border:1px solid #ffffff40;color:#ffe9ff}.secondary-button:hover{background:#ffffff0f;transform:translateY(-1px)}.cake-section{text-align:center}.cake-wrapper{display:flex;justify-content:center;margin:22px 0 10px}.cake{animation:cake-bounce 3.2s ease-in-out infinite;height:200px;position:relative;width:220px}.cake-hint{color:#fffc;font-size:.95rem;margin:6px 0 2px}.cake-plate{background:radial-gradient(circle at 50% 0,#fff 0,#d4d7ff 60%);border-radius:999px;bottom:0;box-shadow:0 10px 20px #00000080;height:26px;transform:translateX(-50%);width:220px}.cake-layer,.cake-plate{left:50%;position:absolute}.cake-layer{border-radius:18px 18px 12px 12px;box-shadow:0 10px 20px #00000059;opacity:0;transform:translateX(-50%) translateY(22px)}.cake-layer-visible{opacity:1;transform:translateX(-50%) translateY(0);transition:opacity .45s ease-out,transform .45s ease-out}.cake-layer-bottom{background:linear-gradient(180deg,#ffb6c1,#ff6fb5);bottom:32px;height:70px;width:210px}.cake-layer-middle{background:linear-gradient(180deg,#ffe08a,#ffb347);bottom:82px;height:58px;width:170px}.cake-layer-top{background:linear-gradient(180deg,#fff,#ffe9ff);bottom:125px;height:46px;width:130px}.cake-sprinkles{background-image:radial-gradient(circle,#ff6fb5 2px,#0000 3px),radial-gradient(circle,#ffe08a 2px,#0000 3px),radial-gradient(circle,#8be9fd 2px,#0000 3px);background-size:16px 16px;bottom:126px;height:40px;left:50%;mix-blend-mode:screen;opacity:0;position:absolute;transform:translateX(-50%) translateY(12px);width:120px}.cake-sprinkles-visible{opacity:.85;transform:translateX(-50%) translateY(0);transition:opacity .45s ease-out .05s,transform .45s ease-out .05s}.cake-candles{bottom:160px;display:flex;gap:12px;left:50%;position:absolute;transform:translateX(-50%)}.cake-candles-dropping{animation:candle-drop .7s ease-out forwards}.candle{height:40px;position:relative;width:12px}.candle-body{background-image:linear-gradient(180deg,#ff6fb5,#ffb6c1);border-radius:999px;box-shadow:0 0 0 2px #ffffff59;height:100%;width:100%}.candle-flame{animation:flame-flicker 1.1s ease-in-out infinite alternate;background:radial-gradient(circle at 30% 0,#fff 0,#ffe08a 55%,#ff6f61 100%);border-radius:50% 50% 50% 50%;box-shadow:0 0 16px #ffdf80e6,0 0 30px #ffa500cc;height:22px;left:50%;position:absolute;top:-16px;transform:translateX(-50%);width:14px}.candle-flame.candle-flame-out{animation:flame-blow-out .65s ease-in forwards;box-shadow:none}.cake-message{color:#ffffffd6;font-size:.98rem;margin-top:8px}.cake-blow-button{background:linear-gradient(135deg,#ffe08a,#ff6fb5);border:none;border-radius:999px;box-shadow:0 10px 26px #ff6fb566;color:#220b27;cursor:pointer;font-size:.9rem;font-weight:600;margin-top:10px;padding:8px 18px;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease,opacity .15s ease}.cake-blow-button:hover:not(:disabled){box-shadow:0 14px 36px #ff6fb58c;filter:brightness(1.05);transform:translateY(-1px)}.cake-blow-button:disabled{box-shadow:none;cursor:default;opacity:.5}.cake-happy-message{color:#ffe08a;font-size:1.02rem;font-weight:500;margin-top:10px;text-shadow:0 0 12px #ffd08080;transition:opacity .45s ease-out,transform .45s ease-out}.confetti-layer{inset:-10px -10px 40px -10px;overflow:visible;pointer-events:none;position:absolute}.confetti-piece{animation-fill-mode:forwards;animation-name:confetti-fall;animation-timing-function:ease-out;border-radius:2px;height:14px;opacity:0;position:absolute;top:-24px;width:7px}@keyframes cake-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes flame-flicker{0%{opacity:.9;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.05) translateY(-1px)}to{opacity:.85;transform:translateX(-50%) scale(.95) translateY(1px)}}@keyframes flame-blow-out{0%{opacity:1;transform:translateX(-50%) scale(1)}60%{opacity:.6;transform:translateX(-70%) scale(.7)}to{opacity:0;transform:translateX(-95%) scale(.3)}}@keyframes confetti-fall{0%{opacity:0;transform:translateY(0) rotate(0deg)}15%{opacity:1}to{opacity:0;transform:translateY(230px) rotate(1turn)}}@keyframes candle-drop{0%{opacity:0;transform:translateX(-50%) translateY(-80px)}75%{opacity:1;transform:translateX(-50%) translateY(6px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.love-section{text-align:center}.love-card{cursor:pointer;height:320px;margin:12px auto 0;perspective:1200px;width:min(100%,420px)}.love-card-inner{border-radius:22px;box-shadow:0 18px 45px #0009,0 0 0 1px #ffffff14;height:100%;position:relative;transform-style:preserve-3d;transition:transform .7s ease;width:100%}.love-card-open .love-card-inner{transform:rotateY(180deg)}.love-card-back,.love-card-front{-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:inherit;box-sizing:border-box;inset:0;padding:20px 20px 18px;position:absolute}.love-card-front{align-items:center;background:linear-gradient(135deg,#ff6fb5,#ff9a9e);display:flex;flex-direction:column;justify-content:center;text-align:center}.love-card-greeting{font-size:1.3rem;margin:0 0 6px}.love-card-hint{font-size:.95rem;opacity:.9}.love-card-icon{animation:heartbeat 1.4s ease-in-out infinite;font-size:1.8rem;margin-top:12px}.love-card-back{background:linear-gradient(135deg,#141629,#311e3e);display:flex;font-size:.95rem;line-height:1.55;text-align:left;transform:rotateY(180deg)}.love-card-scroll{max-height:100%;overflow-y:auto;padding-right:6px}.love-card-scroll p{margin:0 0 8px}.love-card-signoff{color:#ffe08a;font-style:italic;margin-top:12px}@keyframes heartbeat{0%,to{transform:scale(1)}25%{transform:scale(1.1)}40%{transform:scale(.97)}60%{transform:scale(1.07)}}.memories-section{text-align:left}.memories-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:16px}.memory-card{margin:0}.memory-button{background:#0000;border:none;border-radius:16px;cursor:pointer;display:block;margin:0;padding:0;width:100%}.memory-button:focus-visible{outline:2px solid #ffe08a;outline-offset:3px}.memory-image-wrapper{border:1px solid #ffffff1f;border-radius:16px;overflow:hidden;position:relative}.memory-image-wrapper img{display:block;height:210px;object-fit:cover;transition:transform .4s ease;width:100%}.memory-overlay{background:linear-gradient(180deg,#0000,#00000026 50%,#00000073);inset:0;opacity:0;position:absolute;transition:opacity .3s ease}.memory-card:hover .memory-image-wrapper img{transform:scale(1.05)}.memory-card:hover .memory-overlay{opacity:1}.memory-caption{color:#ffffffe0;font-size:.9rem;margin-top:6px}.memory-modal-backdrop{align-items:center;background:#000000db;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:60}.memory-modal{background:radial-gradient(circle at top,#1a1830 0,#050712 60%);border-radius:20px;box-shadow:0 22px 80px #000000e6,0 0 0 1px #ffffff1a;max-height:90vh;max-width:720px;padding:18px 18px 16px;position:relative;width:100%}.memory-modal-image-wrapper{border:1px solid #ffffff2e;border-radius:16px;overflow:hidden}.memory-modal-image{display:block;max-height:62vh;max-width:100%;object-fit:contain;width:100%}.memory-modal-caption{color:#ffffffe6;font-size:.95rem;margin-top:10px}.memory-modal-close{align-items:center;background:#0009;border:none;border-radius:999px;color:#fff;cursor:pointer;display:flex;font-size:18px;height:26px;justify-content:center;position:absolute;right:12px;top:10px;width:26px}.memory-modal-close:hover{background:#000000d9}.footer{color:#ffffffbf;font-size:.9rem;margin-top:8px;text-align:center}.footer-heart{color:#ff6fb5}.footer-link{color:#fffc;display:inline-block;font-size:.9rem;margin-top:6px;text-decoration:none}.footer-link:hover{text-decoration:underline}@media (min-width:768px){.App{padding:40px 32px 56px}.section{padding:32px 28px}}
/*# sourceMappingURL=main.202c348c.css.map*/