:root{color:#f7e9c8;background:#121a33;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,serif;font-synthesis:none;font-weight:600}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0;overflow:hidden}body{min-height:100dvh;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}button{border:0;font:inherit;color:inherit}.gift{position:relative;display:flex;min-height:100dvh;min-height:100svh;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 50% 35%,#29385f,#1b2748 47%,#10182f);padding:calc(24px + env(safe-area-inset-top)) 24px calc(20px + env(safe-area-inset-bottom))}.gift:before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 50% 45%,rgba(239,195,126,.09),transparent 38%),linear-gradient(155deg,rgba(255,255,255,.05),transparent 44%,rgba(5,10,24,.24))}.ambient{position:absolute;z-index:-1;border-radius:50%;pointer-events:none;filter:blur(1px);opacity:.75;animation:ambient-drift 9s ease-in-out infinite alternate}.ambient--one{width:190px;height:190px;top:9%;left:-100px;background:#d9a37529}.ambient--two{width:170px;height:170px;right:-90px;bottom:15%;background:#ddb86826;animation-delay:-3s}.top-mark,.footer-mark{position:absolute;z-index:4;left:24px;right:24px;display:flex;justify-content:center;align-items:center;gap:10px;color:#f4d397cc;font:600 11px/1 Arial,sans-serif;letter-spacing:.2em}.top-mark{top:calc(28px + env(safe-area-inset-top))}.footer-mark{bottom:calc(22px + env(safe-area-inset-bottom));font-size:9px;letter-spacing:.14em;opacity:.78}.top-mark__line{width:30px;height:1px;background:#efc7847a}.music-control{position:absolute;top:calc(18px + env(safe-area-inset-top));right:18px;z-index:5;display:flex;align-items:center;gap:8px}.music-toggle{position:relative;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid rgba(239,199,132,.38);border-radius:50%;background:#141e37b8;box-shadow:0 5px 16px #04081433;cursor:pointer}.music-toggle>span{color:#f0c979;font:25px/1 Georgia,serif}.music-toggle.is-playing>span{animation:music-spin 5s linear infinite}.music-toggle>i{position:absolute;right:-1px;bottom:-1px;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#b68a4b;color:#fff8e5;font:8px/1 Arial,sans-serif;font-style:normal}.music-toggle:disabled{opacity:.55;cursor:default}.gift-content{position:relative;z-index:3;display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;width:100%;padding-top:18px}.intro-copy{position:relative;z-index:2;text-align:center;min-height:107px}.eyebrow{margin:0 0 15px;color:#edc989;font:700 13px/1.2 PingFang SC,Microsoft YaHei,sans-serif;letter-spacing:.14em}h1{margin:0;color:#fff3d2;font-size:clamp(28px,7.5vw,34px);font-weight:700;letter-spacing:.07em;line-height:1.42;text-shadow:0 2px 18px rgba(5,9,22,.24)}.hint,.blessing{margin:13px 0 0;color:#e8c98e;font-size:15px;font-weight:700;letter-spacing:.06em}.blessing{color:#efd59e;line-height:1.85}.bouquet{position:relative;display:block;width:min(84vw,345px);height:min(123vw,500px);margin:-5px 0 -14px;padding:0;cursor:pointer;background:transparent;outline:none;touch-action:manipulation;transition:opacity .9s ease,transform .9s ease}.bouquet:focus-visible{outline:2px solid #c79987;outline-offset:8px;border-radius:50%}.bouquet svg{display:block;width:100%;height:100%;overflow:visible}.bouquet-halo{animation:halo-breathe 4s ease-in-out infinite;transform-origin:center}.stem-group,.leaf-group,.petal,.flower-core,.bud,.small-bud{transform-box:fill-box}.petal{fill:#d99289;stroke:#9a534b2e;stroke-width:1}.petal-ring--coral .petal{fill:#d98980}.petal-ring--pink .petal{fill:#e5a5a0}.petal-ring--champagne .petal{fill:#e7c68e}.petal-ring--blush .petal{fill:#e9b9b0}.petal-ring--inner .petal{opacity:.88}.bud{fill:#c98077;opacity:.72}.small-bud{fill:#d69b84}.flower-core{fill:#b96d60}.flower-core--light{fill:#f3d69a}.flower-group{transform-origin:188px 275px}.stem-group,.leaf-group,.petal,.flower-core,.bud,.small-bud{will-change:transform,opacity}.wrap{opacity:.96}.wrap-fold{fill:none;stroke:#b17a663d;stroke-width:2}.ribbon{fill:none;stroke:#c99578;stroke-linecap:round;stroke-width:3}.bouquet--idle .petal{transform:scale(.65);opacity:.5}.bouquet--blooming .bouquet-glow,.bouquet--revealed .bouquet-glow{opacity:.9}.touch-ring{position:absolute;top:43%;left:50%;width:67px;height:67px;border:1px solid rgba(194,141,126,.45);border-radius:50%;transform:translate(-50%,-50%);animation:ring-pulse 2.1s ease-out infinite;pointer-events:none}.replay{position:relative;z-index:2;margin-top:-2px;padding:9px 14px;background:transparent;color:#e4b87f;font-size:14px;font-weight:700;letter-spacing:.06em;cursor:pointer}.replay span{display:inline-block;margin-right:5px;font:20px/1 sans-serif;vertical-align:-1px}.cake-scene{position:absolute;inset:24% 0 12%;z-index:6;display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .45s ease}.cake-svg{width:min(82vw,330px);height:auto;overflow:visible}.cake-glow{position:absolute;top:52%;left:50%;width:min(70vw,260px);height:min(52vw,190px);border-radius:50%;background:radial-gradient(ellipse,#ffd38552,#ffd38500 72%);opacity:.75;transform:translate(-50%,-50%)}.cake-art{opacity:0;transform-box:fill-box;transform-origin:50% 100%}.cake-shadow{fill:#0509165c;filter:blur(2px)}.cake-scene.is-active{opacity:1}.cake-flame{transform-box:fill-box;transform-origin:50% 100%;opacity:0}.cake-scene.is-active .cake-flame{animation:flame-breathe 1.15s ease-in-out infinite alternate}.fireworks-scene{position:absolute;inset:0;z-index:1;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .55s ease}.fireworks-scene.is-active{opacity:1}.fireworks-svg{display:block;width:100%;height:100%;overflow:visible}.firework-rays{fill:none;stroke:#f4cf86;stroke-linecap:round;stroke-width:1.7;opacity:0}.firework-sparks{fill:#ffe9a9;opacity:0}.firework-core{fill:#fff5c9;opacity:0}.firework-ring{fill:none;stroke:#dba75f;stroke-width:1;opacity:0}.firework-halo{fill:#f8c976;opacity:0;filter:blur(8px)}.fireworks-scene.is-active .firework-rays{animation:firework-rays-fade 3.8s ease-out infinite}.fireworks-scene.is-active .firework-sparks{animation:firework-sparks 3.8s ease-out infinite}.fireworks-scene.is-active .firework-core{animation:firework-core 3.8s ease-out infinite}.fireworks-scene.is-active .firework-ring{animation:firework-ring 3.8s ease-out infinite}.fireworks-scene.is-active .firework-halo{animation:firework-halo 3.8s ease-out infinite}.firework--two .firework-rays,.firework--two .firework-sparks,.firework--two .firework-core,.firework--two .firework-ring,.firework--two .firework-halo{animation-delay:1.05s}.firework--three .firework-rays,.firework--three .firework-sparks,.firework--three .firework-core,.firework--three .firework-ring,.firework--three .firework-halo{animation-delay:2.05s}.gift--stage-cake .bouquet,.gift--stage-fireworks .bouquet{opacity:0;visibility:hidden;transform:scale(.96);pointer-events:none;transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s}.gift--stage-fireworks{background:radial-gradient(circle at 50% 38%,#2c3b64,#1b2748 49%,#10182f)}.gift--stage-fireworks:before{background:radial-gradient(circle at 50% 40%,rgba(247,199,111,.1),transparent 35%),linear-gradient(155deg,rgba(85,103,143,.12),transparent 44%,rgba(247,199,111,.08))}.gift--stage-fireworks .ambient{opacity:.2}.gift--stage-fireworks .top-mark,.gift--stage-fireworks .footer-mark{color:#ffebc0c7}.gift--stage-fireworks .top-mark__line{background:#ffdc9766}.gift--stage-fireworks h1{color:#fff5d8}.gift--stage-fireworks .eyebrow,.gift--stage-fireworks .blessing{color:#f2d59d}.gift--stage-fireworks .music-toggle{border-color:#ffdd9b61;background:#1e273fb8}.gift--stage-fireworks .music-toggle>span{color:#f2c97f}.gift--stage-fireworks .music-toggle>i{background:#b8894f}.gift--stage-finale .bouquet{opacity:.96;transform:scale(.96)}@keyframes bloom-petal{0%{transform:scale(.65) rotate(0);opacity:.5}65%{transform:scale(1.05) rotate(2deg);opacity:.98}to{transform:scale(1) rotate(0);opacity:.92}}@keyframes center-in{0%{transform:scale(.75);opacity:.6}70%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}@keyframes side-in{0%{transform:scale(.65);opacity:.5}70%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}@keyframes halo-breathe{0%{transform:scale(.96);opacity:.65}to{transform:scale(1.03);opacity:.85}}@keyframes ring-pulse{0%{transform:translate(-50%,-50%) scale(.8);opacity:0}25%{opacity:1}to{transform:translate(-50%,-50%) scale(1.35);opacity:0}}@keyframes ambient-drift{0%{transform:translateZ(0)}to{transform:translate3d(12px,-8px,0)}}@keyframes music-spin{to{transform:rotate(360deg)}}@keyframes flame-breathe{0%{opacity:.78}to{opacity:1}}@keyframes firework-rays-fade{0%,18%{opacity:0}30%{opacity:.96}58%{opacity:.68}to{opacity:0}}@keyframes firework-sparks{0%,22%{opacity:0}34%{opacity:1}58%{opacity:.58}to{opacity:0}}@keyframes firework-core{0%,18%{opacity:0;transform:scale(.2)}30%{opacity:1;transform:scale(1.45)}54%{opacity:.66;transform:scale(1)}to{opacity:0;transform:scale(.72)}}@keyframes firework-ring{0%,28%{opacity:0;transform:scale(.2)}40%{opacity:.7;transform:scale(1)}78%,to{opacity:0;transform:scale(1.65)}}@keyframes firework-halo{0%,28%{opacity:0;transform:scale(.5)}40%{opacity:.36;transform:scale(1)}65%,to{opacity:0;transform:scale(1.22)}}@media(max-height:690px){.gift{padding-top:calc(16px + env(safe-area-inset-top))}.top-mark{top:calc(20px + env(safe-area-inset-top))}.music-control{top:calc(13px + env(safe-area-inset-top))}.intro-copy{min-height:88px}.eyebrow{margin-bottom:9px}.bouquet{height:min(106vw,400px);margin-top:-12px;margin-bottom:-10px}.footer-mark{bottom:calc(15px + env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.cake-art{opacity:1;transform:none}.cake-candle,.cake-flame{opacity:1}.firework-rays,.firework-sparks,.firework-core,.firework-ring,.firework-halo{opacity:.9;transform:none}.bouquet--idle .petal{transform:scale(.92);opacity:.82}.touch-ring{display:none}}
