body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{-webkit-tap-highlight-color:transparent;box-sizing:border-box;margin:0;padding:0}:root{--bg-blush:#fff0f5;--bg-peach:#ffe5ec;--bg-lavender:#f3e8ff;--primary-pink:#ff3b7f;--soft-pink:#ff85a1;--pastel-pink:#ffc2d1;--deep-plum:#4a1942;--muted-plum:#7a4968;--card-surface:#ffffffd1;--card-border:#ffffffe6;--shadow-soft:0 20px 50px #d6338424,0 4px 16px #d6338414}body{background:#ffeef4;color:#4a1942;color:var(--deep-plum);font-family:Quicksand,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}.app-container{background:radial-gradient(circle at 15% 15%,#ffb6c18c 0,#0000 45%),radial-gradient(circle at 85% 20%,#e6beff80 0,#0000 45%),radial-gradient(circle at 50% 85%,#ffd16647 0,#0000 50%),linear-gradient(165deg,#fff5f8,#ffe6ef 50%,#f6ebff);flex-direction:column;overflow-x:hidden}.app-container,.page-wrapper{align-items:center;display:flex;justify-content:center;min-height:100vh;min-height:100dvh;position:relative}.page-wrapper{transition:opacity .45s ease,transform .45s ease;width:100%;z-index:10}.page-wrapper.fade-out{opacity:0;transform:scale(.98)}.mode-preview-pill{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffe0;border:1.5px solid #ff6b9d59;border-radius:999px;box-shadow:0 4px 14px #ff3b7f26;color:#c9184a;cursor:pointer;font-family:Quicksand,sans-serif;font-size:.74rem;font-weight:700;padding:6px 12px;position:fixed;right:12px;top:12px;transition:all .2s ease;z-index:50}.mode-preview-pill:hover{background:#fff;box-shadow:0 6px 18px #ff3b7f38;transform:translateY(-1px)}.mode-preview-pill:active{transform:scale(.96)}.particles-container{height:100%;left:0;overflow:hidden;pointer-events:none;position:fixed;top:0;width:100%;z-index:1}.particle{animation:floatUp 16s linear infinite;filter:drop-shadow(0 2px 6px rgba(255,105,180,.2));opacity:0;position:absolute}@keyframes floatUp{0%{opacity:0;transform:translateY(102vh) rotate(0deg) scale(.9)}12%{opacity:.55}88%{opacity:.55}to{opacity:0;transform:translateY(-80px) rotate(1turn) scale(1.2)}}.countdown-page,.wish-page{align-items:center;display:flex;justify-content:center;min-height:100vh;min-height:100dvh;padding:46px 14px 24px;position:relative;width:100%}.mobile-shell.glass-card{animation:fadeInSlide .65s cubic-bezier(.22,1,.36,1);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);background:#ffffffd1;background:var(--card-surface);border:2px solid #ffffffe6;border:2px solid var(--card-border);border-radius:34px;box-shadow:0 20px 50px #d6338424,0 4px 16px #d6338414;box-shadow:var(--shadow-soft);max-width:420px;overflow:hidden;padding:22px 18px 24px;position:relative;text-align:center;width:100%}@keyframes fadeInSlide{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.top-pill-row{display:flex;justify-content:center;margin-bottom:8px}.romantic-tag{align-items:center;background:linear-gradient(135deg,#ffe5ec,#ffd1dc);border:1px solid #ff5c8a40;border-radius:999px;color:#c9184a;display:inline-flex;font-size:.74rem;font-weight:700;gap:6px;letter-spacing:.5px;padding:5px 13px;text-transform:uppercase}.birthday-active-tag{background:linear-gradient(135deg,#fff0b3,#ffd6e0);color:#b5179e}.countdown-header{margin-bottom:12px}.heart-decoration{align-items:center;display:flex;gap:10px;justify-content:center;margin-bottom:2px}.heart-icon{animation:heartbeat 1.5s ease-in-out infinite;filter:drop-shadow(0 3px 8px rgba(255,92,138,.35))}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.countdown-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#ff2a7a,#b5179e);-webkit-background-clip:text;font-family:Fredoka,sans-serif;font-size:2.35rem;font-weight:700;letter-spacing:.5px;margin:0}.countdown-subtitle{color:#7a4968;color:var(--muted-plum);font-size:.92rem;font-weight:600;margin-top:2px}.stage-section{margin:10px 0 14px;position:relative}.companions-stage-wrapper{background:radial-gradient(circle at 50% 35%,#fffffff2 0,#ffe4eebf 65%,#f3e0ffb3 100%);border:2px solid #ffb6c18c;border-radius:26px;box-shadow:inset 0 4px 20px #ff6b9d1f,0 8px 24px #d6338414;cursor:pointer;height:268px;overflow:hidden;position:relative;transition:transform .2s ease,box-shadow .2s ease;-webkit-user-select:none;user-select:none;width:100%}.companions-stage-wrapper.birthday-stage{background:radial-gradient(circle at 50% 30%,#fffdf9 0,#ffe5f0 60%,#f3e0ff 100%);border-color:#ff6b9db3;height:292px}.companions-stage-wrapper:active{transform:scale(.99)}.companions-canvas-mount{height:100%;width:100%}.companions-canvas-mount canvas{display:block;height:100%!important;width:100%!important}.companion-dialog-bar{align-items:center;animation:dialogFadeIn .35s cubic-bezier(.34,1.56,.64,1);background:#ffffffeb;border:1.5px solid #ff85a173;border-radius:16px;box-shadow:0 4px 12px #ff3b7f14;display:flex;gap:8px;justify-content:center;margin-top:8px;padding:7px 12px}.dialog-avatar{flex-shrink:0;font-size:.95rem}.speech-text{color:#a4133c;font-size:.76rem;font-weight:700;line-height:1.3}@keyframes dialogFadeIn{0%{opacity:0;transform:translateY(4px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.stage-status-pill{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe0;border:1px solid #ff85a166;border-radius:999px;bottom:28px;color:#800f2f;display:inline-flex;font-size:.7rem;font-weight:700;gap:6px;left:50%;padding:3px 11px;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:5}.status-dot{animation:pulse 1.4s infinite;background:#ff2a7a;border-radius:50%;box-shadow:0 0 0 3px #ff2a7a40;height:7px;width:7px}.stage-tap-hint{background:#ffffffa6;border-radius:999px;bottom:8px;color:#9e4770;font-size:.68rem;font-weight:700;left:0;margin:0 auto;padding:2px 10px;right:0;text-align:center;width:-webkit-max-content;width:max-content}.stage-emoji-burst,.stage-tap-hint{pointer-events:none;position:absolute}.stage-emoji-burst{animation:burstUp .95s ease-out forwards;bottom:35%;font-size:1.45rem;z-index:25}.companion-action-dock{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(4,1fr);margin-top:8px}.action-dock-btn{background:#ffffffe6;border:1.5px solid #ff85a166;border-radius:14px;box-shadow:0 3px 8px #ff5c8a14;color:#800f2f;cursor:pointer;font-family:Quicksand,sans-serif;font-size:.72rem;font-weight:700;padding:7px 4px;transition:all .2s ease}.action-dock-btn:hover{background:#fff;transform:translateY(-1px)}.action-dock-btn.active{background:linear-gradient(135deg,#ff3b7f,#ff7597);border-color:#ff3b7f;box-shadow:0 5px 14px #ff3b7f4d;color:#fff}.action-dock-btn:active{transform:scale(.95)}.tap-heart-burst{animation:burstUp 1s ease-out forwards;bottom:40%;font-size:1.5rem;left:50%;pointer-events:none;position:absolute;z-index:20}@keyframes burstUp{0%{opacity:1;transform:translate(-50%) scale(.7)}to{opacity:0;transform:translate(-50%,-95px) scale(1.35)}}.timer-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,1fr);margin:12px 0}.timer-box{background:linear-gradient(180deg,#fff,#fff0f5);border:1.5px solid #ff85a159;border-radius:18px;box-shadow:0 6px 16px #ff5c8a14;padding:12px 6px;transition:transform .25s ease,box-shadow .25s ease}.timer-box:hover{box-shadow:0 10px 20px #ff5c8a26;transform:translateY(-3px)}.timer-value{color:#ff2a7a;font-family:Fredoka,sans-serif;font-size:1.7rem;font-weight:700;line-height:1.1;margin-bottom:3px}.timer-label{color:#7a4968;color:var(--muted-plum);font-size:.68rem;font-weight:700;letter-spacing:1px;text-transform:uppercase}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.waiting-note-card{background:#fff0f6d9;border:1.5px dashed #ff6b9d73;border-radius:20px;cursor:pointer;margin-top:10px;padding:12px 14px;transition:background .2s ease}.waiting-note-card:active{background:#ffe4eef2}.countdown-message{color:#4a1942;color:var(--deep-plum);font-size:.92rem;font-weight:700;line-height:1.4}.waiting-subnote{color:#7a4968;color:var(--muted-plum);display:block;font-size:.75rem;font-weight:600;margin-top:4px}.icon-decoration{gap:14px;margin-top:14px}.icon-chip,.icon-decoration{display:flex;justify-content:center}.icon-chip{align-items:center;background:#fff;border:1.5px solid #ff85a159;border-radius:50%;box-shadow:0 4px 12px #ff5c8a1f;cursor:pointer;height:40px;transition:transform .2s ease;width:40px}.icon-chip:active{transform:scale(.9)}.bounce-icon{animation:bounce 2.2s ease-in-out infinite}.icon-chip:nth-child(2) .bounce-icon{animation-delay:.3s}.icon-chip:nth-child(3) .bounce-icon{animation-delay:.6s}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.confetti{animation:burst linear forwards;border-radius:3px;height:15px;left:50%;opacity:1;pointer-events:none;position:fixed;top:45%;transform:translate(-50%,-50%);width:8px;z-index:40}@keyframes burst{to{opacity:0;transform:translate(-50%,-50%) translate(var(--dx),var(--dy)) rotate(var(--rotate))}}.wish-content{position:relative;z-index:2}.wish-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#ff2a7a,#9d4edd);-webkit-background-clip:text;font-family:Fredoka,sans-serif;font-size:2.15rem;font-weight:700;margin-bottom:6px}.animate-zoomIn{animation:zoomIn .6s cubic-bezier(.34,1.56,.64,1)}@keyframes zoomIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.age-badge{background:linear-gradient(135deg,#ff4d79,#ff85a1);border-radius:999px;box-shadow:0 6px 16px #ff4d794d;color:#fff;display:inline-block;font-family:Fredoka,sans-serif;font-size:1.05rem;font-weight:600;margin-bottom:6px;padding:6px 18px}.animate-bounceIn{animation:bounceIn .8s ease-out}@keyframes bounceIn{0%{opacity:0;transform:translateY(-20px)}60%{opacity:1;transform:translateY(5px)}to{transform:translateY(0)}}.cake-section{align-items:center;display:flex;flex-direction:column;margin:12px 0 14px;width:100%}.cake-3d-wrapper{background:radial-gradient(circle at 50% 45%,#fff 0,#fff0f6 65%,#f8e8ff 100%);border:2px solid #ff85a173;border-radius:24px;box-shadow:inset 0 4px 18px #ff6b9d1a,0 8px 20px #d6338414;cursor:grab;height:245px;margin-bottom:10px;overflow:hidden;position:relative;touch-action:pan-y;-webkit-user-select:none;user-select:none;width:100%}.cake-3d-wrapper:active{cursor:grabbing}.cake-3d-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe6;border:1px solid #ff85a173;border-radius:999px;color:#a4133c;font-size:.68rem;font-weight:700;left:50%;padding:4px 12px;pointer-events:none;position:absolute;top:8px;transform:translateX(-50%);white-space:nowrap;z-index:5}.cake-3d-canvas-mount{height:100%;width:100%}.cake-3d-canvas-mount canvas{display:block;height:100%!important;width:100%!important}.candle-action-btn{align-items:center;background:linear-gradient(135deg,#fff0f5,#ffe3ec);border:1.5px solid #ff5c8a66;border-radius:999px;box-shadow:0 4px 12px #ff5c8a1f;color:#c9184a;cursor:pointer;display:inline-flex;font-family:Quicksand,sans-serif;font-size:.78rem;font-weight:700;gap:6px;padding:7px 15px;transition:all .2s ease}.candle-action-btn:hover{background:#fff;transform:translateY(-1px)}.candle-action-btn:active{transform:scale(.96)}.wish-message-box{background:linear-gradient(180deg,#ffffffe6,#fff0f5e6);border:1.5px solid #ffb6c18c;border-radius:22px;box-shadow:0 6px 20px #d633840f;margin-bottom:12px;padding:16px}.animate-fadeInUp{animation:fadeInUp .8s ease-out .25s both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.wish-greeting{color:#c9184a;font-family:Fredoka,sans-serif;font-size:1.05rem;margin-bottom:6px}.wish-message{color:#4a1942;color:var(--deep-plum);font-size:.94rem;font-weight:600;line-height:1.55}.wish-signature{color:#ff2a7a;font-family:Dancing Script,cursive;font-size:1.65rem;font-weight:700;margin-bottom:10px}.animate-fadeIn{animation:fadeIn .8s ease-out both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.heart-row{display:flex;gap:8px;justify-content:center}.animate-beat{animation:beat 1.2s ease-in-out infinite}.delay-100{animation-delay:.12s}.delay-200{animation-delay:.24s}.delay-300{animation-delay:.36s}.delay-400{animation-delay:.48s}@keyframes beat{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@media (max-width:375px){.mobile-shell.glass-card{border-radius:28px;padding:18px 14px 20px}.countdown-title{font-size:2.05rem}.companions-stage-wrapper{height:245px}.companions-stage-wrapper.birthday-stage{height:268px}.timer-value{font-size:1.45rem}}
/*# sourceMappingURL=main.056668ff.css.map*/