.motion-toggle{width:38px;height:38px;display:grid;place-content:center;border:1px solid #f5d99d66;border-radius:50%;background:#07132955;color:#ffe7b4;font:25px/1 var(--serif);flex-shrink:0;transition:background .2s,box-shadow .2s}
.motion-toggle[aria-pressed=true]{box-shadow:0 0 16px #f9ce7922}.motion-toggle:disabled{cursor:default;opacity:.55}
.intro-skip,.skip-wish{border:1px solid #f7dca366;border-radius:22px;background:#09172f88;color:#fbe7bd;padding:7px 18px;font-size:12px;letter-spacing:.04em;min-height:36px}
.intro-skip{position:absolute;right:max(5vw,20px);top:23px;z-index:4}.intro.unsealing .intro-content>.eyebrow,.intro.unsealing .intro-content>h1,.intro.unsealing .intro-to,.intro.unsealing #open-surprise,.intro.unsealing .intro-hint{opacity:0;transition:opacity .4s}
.intro.unsealing #open-surprise{pointer-events:none}.intro.unveiling{opacity:0;visibility:hidden;transition:opacity .55s,visibility .55s}
.intro .envelope{isolation:isolate;perspective:900px;overflow:visible;transform-style:preserve-3d}
.envelope:before,.envelope:after{width:100%;height:100%;left:0;right:0;top:0;transform:none;z-index:3}
.envelope:before{clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);background:linear-gradient(120deg,#f8eacb,#e1c58e)}
.envelope:after{clip-path:polygon(0 100%,50% 44%,100% 100%);background:linear-gradient(180deg,#f5e3bc,#e7c990)}
.envelope-fold{width:100%;height:56%;left:0;top:0;transform:none;transform-origin:50% 0;clip-path:polygon(0 0,100% 0,50% 100%);border-radius:0;z-index:5;box-shadow:none;transition:transform .65s .25s,z-index 0s .45s;background:linear-gradient(155deg,#fff7e1,#e9cc96)}
.envelope-note{position:absolute;inset:8% 8% 5%;z-index:2;border:1px solid #d4b073;background:linear-gradient(135deg,#fffdf4,#f9edd4);border-radius:3px;display:flex;flex-direction:column;justify-content:center;gap:8px;align-items:center;box-shadow:0 0 18px #d2a54722;transition:transform .7s .48s}
.envelope-note span{font:18px var(--serif);color:#a77930;letter-spacing:.12em}.envelope-note small{font:8px var(--sans);letter-spacing:.2em;color:#a18c69}
.wax-seal{z-index:6;transition:transform .45s,opacity .4s;left:calc(50% - 25px);top:38%}
.intro.unsealing .envelope{animation:envelope-rise 1.35s ease both}
.intro.unsealing .wax-seal{opacity:0;transform:translateY(-16px) scale(1.5)}
.intro.unsealing .envelope-fold{transform:rotateX(180deg);z-index:1}
.intro.unsealing .envelope-note{transform:translateY(-59%)}
.intro:not(.unsealing) .envelope-fold,.intro:not(.unsealing) .envelope-note,.intro:not(.unsealing) .wax-seal{transition:none}
.motion-fx{position:fixed;inset:0;pointer-events:none;z-index:25;overflow:hidden}
.motion-spark,.wish-comet{position:absolute;font-style:normal;color:#ffe3a0;text-shadow:0 0 10px #ffd072,0 0 23px #e5ad4c;will-change:transform,opacity}
.motion-spark{font-size:17px}.wish-comet{left:-17px;top:-17px;font-size:34px;line-height:1}
.starfield{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.hero .flames{z-index:2}.hero .hero-actions,.hero .hero-bottom{z-index:5}.hero .fireworks{z-index:4}
.wish-nightfall{position:absolute;inset:0;background:#020c23;opacity:0;z-index:1;pointer-events:none;transition:opacity .7s}
.hero.is-gathering .wish-nightfall{opacity:.58}.hero.wished .wish-nightfall{opacity:.14}
.hero.is-gathering .hero-content,.hero.wished .hero-content{opacity:0;transition:opacity .35s}
.flames i.extinguished{opacity:0;animation:none;transition:opacity .28s}
.wish-ceremony{position:absolute;left:7%;top:31%;width:43%;max-width:560px;z-index:5;text-align:left;color:#ffe8b5;pointer-events:none;animation:ceremony-arrive .45s .25s both}
.wish-ceremony>span{display:block;width:70px;height:70px;text-align:center;border:1px solid #ffe4a05c;border-radius:50%;font:35px/70px var(--serif);margin-bottom:25px;box-shadow:0 0 45px #f0c16d22;animation:wish-breathe 1.8s ease-in-out infinite}
.wish-ceremony p{font:clamp(23px,2.6vw,36px)/1.65 var(--serif);letter-spacing:.05em;max-width:400px;text-wrap:balance}
.skip-wish{position:absolute;right:5%;top:100px;z-index:6}
.replay-surprise{background:none;border:0;color:inherit;padding:5px 0;letter-spacing:inherit;font:inherit}
.hero.wished .wish-result{animation:wish-result-arrive .8s ease both}
.wish-card.card-revealed{animation:blessing-arrive .65s var(--arrival-delay,0ms) both cubic-bezier(.16,.75,.28,1)}
.wish-card.wish-delivering{opacity:.45;transition:opacity .3s}
.wish-card.wish-delivered{opacity:1;animation:blessing-arrive .6s ease both,blessing-glow 1s ease both}
@keyframes envelope-rise{0%{transform:translateY(0) rotate(-3deg)}40%{transform:translateY(-10px) rotate(0deg)}100%{transform:translateY(-18px) scale(1.1) rotate(0deg)}}
@keyframes wish-breathe{0%,100%{transform:scale(.92);box-shadow:0 0 25px #f0c16d20}50%{transform:scale(1.04);box-shadow:0 0 70px #f0c16d40}}
@keyframes ceremony-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes wish-result-arrive{from{opacity:0;transform:translateY(18px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes blessing-arrive{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes blessing-glow{0%,100%{box-shadow:0 0 0 #ddb65b00}40%{box-shadow:0 0 0 3px #ddb65b55,0 0 35px #f0c36e30}}
.motion-disabled *,.motion-disabled *:before,.motion-disabled *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.motion-disabled .wish-card{opacity:1!important}
@media(max-width:760px){.site-header{gap:11px}.site-header .motion-toggle{margin-left:auto;width:34px;height:34px;font-size:23px}.site-header .music-button{margin-left:0}.blessings-page .motion-toggle{margin-left:0}.intro-skip{right:18px;top:21px;font-size:11px;padding:5px 12px;min-height:31px}.wish-ceremony{left:6%;right:6%;width:auto;top:140px;text-align:center;max-width:none}.wish-ceremony>span{margin:0 auto 14px;width:55px;height:55px;font-size:29px;line-height:55px}.wish-ceremony p{font-size:26px;margin:0 auto;max-width:310px}.skip-wish{top:82px;right:18px;font-size:11px;padding:5px 13px;min-height:31px}.envelope-note span{font-size:17px}.blessings-page .site-header{gap:9px}.blessings-page .mobile-back{font-size:11px}.blessings-page .brand{letter-spacing:.06em;font-size:16px}}
@media(prefers-reduced-motion:reduce){.motion-fx{display:none}.wish-card{opacity:1!important}.intro,.flames i,.wish-nightfall{transition:none!important}}
