:root{--font-cursive: "Alex Brush", cursive;--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--color-white: #ffffff;--color-text-primary: #ffffff;--color-text-secondary: rgba(255, 255, 255, .76);--color-heart: rgba(246, 238, 230, .95);--card-bg: rgba(30, 24, 20, .48);--card-bg-hover: rgba(42, 34, 28, .62);--card-bg-active: rgba(24, 18, 14, .65);--card-border: rgba(255, 255, 255, .24);--card-border-hover: rgba(255, 255, 255, .42);--card-shadow: 0 14px 34px rgba(0, 0, 0, .32), inset 0 1px 0 rgba(255, 255, 255, .22)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;overflow-x:hidden;font-family:var(--font-sans);background-color:#120e0c;color:var(--color-white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh}.ambient-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background-image:url(/assets/wedding_bg.jpg);background-size:cover;background-position:center;filter:blur(40px) brightness(.4);transform:scale(1.1);z-index:0;pointer-events:none}.wedding-container{position:relative;width:100%;max-width:440px;height:100vh;height:100dvh;margin:0 auto;overflow:hidden;display:flex;flex-direction:column;z-index:1}@media(min-width:600px){.ambient-backdrop{display:block}body{padding:24px;background:radial-gradient(circle at center,#241a15,#0d0a08)}.wedding-container{height:min(900px,94dvh);border-radius:46px;box-shadow:0 28px 70px -10px #000000bf,0 0 0 1px #ffffff1f,0 0 40px #e6b48c1a}}.wedding-background{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/assets/wedding_bg.jpg);background-size:cover;background-position:center 20%;background-repeat:no-repeat;z-index:1}.wedding-background:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0e0b0885,#0e0b0826 24%,#0e0b081a 50%,#0e0b0861 72%,#0c0907d1);pointer-events:none}.wedding-content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + 54px) 24px calc(env(safe-area-inset-bottom,0px) + 28px)}.wedding-header{text-align:center;animation:fadeInDown .9s cubic-bezier(.16,1,.3,1) forwards}.wedding-title{font-family:var(--font-cursive);font-size:clamp(3.2rem,11vw,4.1rem);font-weight:400;line-height:1.1;color:var(--color-white);letter-spacing:.8px;text-shadow:0 2px 14px rgba(0,0,0,.6),0 8px 30px rgba(0,0,0,.4)}.wedding-subtitle{font-family:var(--font-sans);font-size:1.125rem;font-weight:400;color:#fffffff0;letter-spacing:.3px;margin-top:4px;text-shadow:0 2px 10px rgba(0,0,0,.55)}.wedding-actions{display:flex;flex-direction:column;gap:14px;animation:fadeInUp .9s cubic-bezier(.16,1,.3,1) forwards}.action-card{position:relative;display:flex;align-items:center;text-decoration:none;background:var(--card-bg);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1.5px solid var(--card-border);border-radius:22px;padding:18px 20px;gap:16px;box-shadow:var(--card-shadow);transition:transform .22s cubic-bezier(.2,.8,.2,1),background-color .22s ease,border-color .22s ease,box-shadow .22s ease;-webkit-user-select:none;user-select:none;overflow:hidden}.action-card:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);pointer-events:none}.action-card:hover{background:var(--card-bg-hover);border-color:var(--card-border-hover);transform:translateY(-2px);box-shadow:0 18px 40px #0006,0 0 20px #ffffff1a,inset 0 1px #ffffff4d}.action-card:active{background:var(--card-bg-active);transform:scale(.985) translateY(0)}.card-icon-wrapper{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:38px;height:38px;color:var(--color-white)}.card-icon{width:32px;height:32px;stroke:var(--color-white);filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}.card-text{flex:1;min-width:0}.card-title{font-size:1.125rem;font-weight:600;color:var(--color-white);line-height:1.25;letter-spacing:-.2px;text-shadow:0 1px 4px rgba(0,0,0,.3)}.card-description{font-size:.875rem;font-weight:400;color:var(--color-text-secondary);line-height:1.35;margin-top:3px;letter-spacing:-.1px;text-shadow:0 1px 4px rgba(0,0,0,.3)}.card-arrow{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#ffffffd9;transition:transform .2s ease,color .2s ease}.action-card:hover .card-arrow{transform:translate(3px);color:var(--color-white)}.chevron-icon{width:20px;height:20px}.heart-container{display:flex;justify-content:center;align-items:center;padding-top:10px;padding-bottom:4px}.heart-button{background:none;border:none;cursor:pointer;padding:10px;color:var(--color-heart);display:flex;align-items:center;justify-content:center;transition:transform .2s cubic-bezier(.175,.885,.32,1.275);animation:heartPulse 3.2s infinite ease-in-out}.heart-button:hover{transform:scale(1.22)}.heart-button:active{transform:scale(.92)}.heart-icon{width:24px;height:24px;filter:drop-shadow(0 2px 10px rgba(0,0,0,.45))}.floating-heart{position:absolute;pointer-events:none;color:#ffb7b2;font-size:1.2rem;animation:floatUp 1.2s cubic-bezier(.2,.8,.2,1) forwards;z-index:10}.feedback-toast{position:absolute;bottom:110px;left:50%;transform:translate(-50%) translateY(20px);background:#18120ee6;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.25);border-radius:9999px;padding:10px 22px;font-size:.875rem;font-weight:500;color:#fff;box-shadow:0 10px 25px #0006;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s cubic-bezier(.16,1,.3,1);white-space:nowrap;z-index:20}.feedback-toast.show{opacity:1;transform:translate(-50%) translateY(0)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes heartPulse{0%,to{transform:scale(1);opacity:.9}14%{transform:scale(1.16);opacity:1}28%{transform:scale(1);opacity:.9}42%{transform:scale(1.12);opacity:1}56%{transform:scale(1);opacity:.9}}@keyframes floatUp{0%{opacity:1;transform:translate(0) scale(.6)}50%{opacity:.9;transform:translate(var(--dx, 0px),-45px) scale(1.2)}to{opacity:0;transform:translate(var(--dx, 0px),-90px) scale(1.4)}}
