html,body,#root{margin:0;min-height:100%}body{background:#1a0b0e}.stage{position:relative;min-height:780px;max-width:560px;margin:0 auto;overflow:hidden;box-shadow:0 0 60px #0009}.envelope-scene{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(120% 90% at 50% 20%,#3d1218,#20090d 70%);transition:opacity .45s ease,transform .45s ease}.envelope-scene.is-gone{opacity:0;transform:scale(1.06);pointer-events:none}.envelope{position:relative;width:min(84vw,380px);aspect-ratio:4 / 5.2;background-size:cover;background-position:center;border-radius:10px;box-shadow:0 24px 60px #0000008c,inset 0 0 0 1px #d7b26e59;animation:float 5s ease-in-out infinite;overflow:hidden}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.envelope-flap{position:absolute;top:0;left:0;right:0;height:46%;background:linear-gradient(180deg,#5e1a22,#4a1219);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top center;transition:transform .7s cubic-bezier(.6,0,.3,1),opacity .3s ease .35s;box-shadow:inset 0 -2px #d7b26e80;z-index:2}.envelope-flap.is-open{transform:rotateX(178deg);opacity:0}.envelope-to{position:absolute;bottom:9%;left:10px;right:10px;margin:0;text-align:center;color:#e8cf9f;font-size:13px;letter-spacing:.1em;text-transform:uppercase;opacity:.85}.seal{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);width:92px;height:92px;border-radius:50%;border:none;cursor:pointer;background:radial-gradient(circle at 35% 30%,#f3d9a0,#c99a4e 45%,#8a5a1e);box-shadow:0 6px 18px #0000008c,inset 0 2px 4px #ffffff73,inset 0 -4px 8px #5a320a99;display:flex;align-items:center;justify-content:center;z-index:3;animation:pulse 2.4s ease-in-out infinite;min-height:44px}@keyframes pulse{0%,to{box-shadow:0 6px 18px #0000008c,0 0 #e8cf9f80,inset 0 2px 4px #ffffff73,inset 0 -4px 8px #5a320a99}50%{box-shadow:0 6px 18px #0000008c,0 0 0 16px #e8cf9f00,inset 0 2px 4px #ffffff73,inset 0 -4px 8px #5a320a99}}.seal-star{font-size:44px;color:#5e3a10;text-shadow:0 1px 0 rgba(255,240,200,.6)}.hint{color:#d9b981;font-size:14px;letter-spacing:.08em;margin-top:26px;animation:breathe 2.4s ease-in-out infinite}@keyframes breathe{0%,to{opacity:.55}50%{opacity:1}}.invite{position:relative;z-index:1;min-height:780px;background-size:cover;background-position:center;display:flex;flex-direction:column;animation:reveal .6s ease both;overflow:hidden}@keyframes reveal{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.invite-veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#1406089e,#1406084d 30%,#1406086b 62%,#140608db)}.invite-body{position:relative;z-index:2;flex:1;justify-content:center;display:flex;flex-direction:column;align-items:center;padding:56px 26px 40px;text-align:center;color:#f7ecd9;box-sizing:border-box}.eyebrow{margin:0 0 10px;font-size:13px;letter-spacing:.34em;text-transform:uppercase;color:#e8cf9f}.title{margin:0 0 14px;font-size:clamp(40px,12vw,58px);line-height:1.02;font-weight:400;color:#fffaf0;text-shadow:0 3px 24px rgba(0,0,0,.6)}.hosts{margin:0 0 30px;font-size:17px;line-height:1.5;color:#f3e3c6;text-shadow:0 1px 10px rgba(0,0,0,.7)}.facts{width:100%;max-width:340px;display:flex;flex-direction:column;gap:12px;margin-bottom:26px}.fact{display:flex;align-items:center;gap:14px;text-align:left;background:#1e0a0c8c;border:1px solid rgba(232,207,159,.28);border-radius:14px;padding:12px 16px;backdrop-filter:blur(4px)}.fact-icon{flex:none;margin-top:1px}.fact strong{display:block;font-size:16px;color:#fff6e6}.fact span{font-size:13.5px;color:#e2cba3}.countdown{display:flex;gap:10px;margin-bottom:26px}.countdown>div{min-width:76px;padding:10px 8px;border-radius:14px;background:#1e0a0c8c;border:1px solid rgba(232,207,159,.28);backdrop-filter:blur(4px)}.countdown strong{display:block;font-size:26px;color:#ffd98f}.countdown span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#e2cba3}.program{margin:0 0 28px;display:flex;flex-direction:column;gap:6px}.program p{margin:0;font-size:15.5px;color:#f3e3c6}.program strong{color:#ffd98f;margin-right:8px}.rsvp{min-height:52px;padding:0 34px;border-radius:999px;border:none;cursor:pointer;font-size:16px;font-weight:600;letter-spacing:.02em;color:#3a2408;background:linear-gradient(180deg,#f3d9a0,#d9ab5e);box-shadow:0 8px 24px #00000073,inset 0 1px #fff9;transition:transform .15s ease}.rsvp:active{transform:scale(.97)}.rsvp.is-done{background:linear-gradient(180deg,#b8e0c8,#7fb894);color:#12361f}.demo-note{margin:26px 0 0;font-size:12px;letter-spacing:.06em;color:#f3e3c68c}.music-note{margin:6px 0 0;font-size:10.5px;letter-spacing:.04em;color:#f3e3c666}.mute{position:absolute;right:14px;bottom:14px;z-index:5;width:46px;height:46px;border-radius:50%;border:1px solid rgba(232,207,159,.4);background:#1e0a0c99;color:#e8cf9f;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}.snow{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}.snow span{position:absolute;top:-12px;border-radius:50%;background:radial-gradient(circle,#fff,#ffffffd9 60%,#fff0);opacity:.8;animation-name:fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes fall{0%{transform:translateY(-4vh)}to{transform:translate(var(--drift),108vh)}}.music-cta{margin:18px 0 0;display:flex;flex-direction:column;align-items:center;gap:8px}.music-play{font:inherit;font-size:17px;font-weight:600;letter-spacing:.02em;color:#2a1206;background:linear-gradient(180deg,#f3d9a4,#d4a94e);border:none;border-radius:999px;padding:14px 26px;cursor:pointer;box-shadow:0 6px 18px #00000059}.music-play:active{transform:scale(.97)}.music-status{margin:0;max-width:320px;font-size:13px;line-height:1.5;color:#f3e3c6d9}
