@font-face{font-family:SVN-Snell Roundhand;font-style:normal;font-weight:400;src:url("/fonts/SVN-Snell Roundhand Script.ttf")format("truetype");font-display:swap}@font-face{font-family:SVN-Snell Roundhand;font-style:normal;font-weight:700;src:url("/fonts/SVN-Snell Roundhand Script Bold.ttf")format("truetype");font-display:swap}:root{--color-primary:#7a1a2e;--color-primary-dark:#5c1320;--color-bg-page:#6b1d2a;--color-bg-light:#f8f1e9;--color-accent-light:#d4b293;--color-bg-card:#fff;--color-text-dark:#000;--color-text-medium:#4a3f3a;--color-text-light:#7a6f68;--color-text-white:#fff;--color-border:#e7e2dc;--color-gold:#b8975a;--color-gold-light:#d4bb8a;--font-script:"SVN-Snell Roundhand",cursive;--font-serif:"Playfair Display","Georgia",serif;--font-sans:"Montserrat",sans-serif;--sp-4:4px;--sp-8:8px;--sp-12:12px;--sp-16:16px;--sp-24:24px;--sp-32:32px;--sp-48:48px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background:var(--color-bg-page);color:var(--color-text-dark);-webkit-font-smoothing:antialiased;line-height:1.6}.page-wrapper{background:var(--color-bg-page);max-width:480px;min-height:100vh;margin:0 auto;overflow-x:hidden}@media (min-width:768px){.page-wrapper{max-width:520px;box-shadow:0 0 48px #00000014}}.page-header{width:100%;padding:var(--sp-16)var(--sp-24)var(--sp-8);background:var(--color-bg-card);flex-direction:column;align-items:center;display:flex}.header-logo{border-radius:50%;width:90px;height:90px;overflow:hidden}.header-logo img,.header-logo svg{object-fit:cover;width:100%;height:100%}.header-names{font-family:var(--font-script);color:var(--color-primary);text-align:center;letter-spacing:.01em;margin-bottom:var(--sp-4);font-size:1.6rem;font-weight:700;line-height:1.3}.header-rsvp{font-family:var(--font-sans);letter-spacing:.25em;text-transform:uppercase;color:var(--color-text-light);font-size:.5rem;font-weight:600}.unified-card{margin:var(--sp-16)var(--sp-16)var(--sp-16);border-radius:3px;position:relative;overflow:visible;box-shadow:0 4px 24px #0000001f}.unified-card:before{content:"";background:var(--color-accent-light);z-index:0;border-radius:3px;position:absolute;inset:6px -4px -4px}.unified-card-inner{z-index:1;border-radius:3px;position:relative;overflow:hidden}.unified-card-inner>:first-child{border-radius:3px 3px 0 0}.unified-card-inner>:last-child{border-radius:0 0 3px 3px}.unified-card-inner>:only-child{border-radius:3px}.card-invitation{background:var(--color-bg-card);padding:0 var(--sp-24);text-align:center;position:relative}.floral-left,.floral-right{top:var(--sp-32);bottom:var(--sp-32);pointer-events:none;z-index:1;opacity:0;width:130px;position:absolute}.floral-left{animation:1.5s ease-out .6s forwards floralGrowLeft;left:-20px}.floral-right{animation:1.5s ease-out .6s forwards floralGrowRight;right:-20px}@keyframes floralGrowLeft{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes floralGrowRight{0%{opacity:0;transform:scale(-.8,.8)}to{opacity:1;transform:scaleX(-1)}}.floral-left svg,.floral-right svg{object-fit:cover;width:100%;height:100%}.card-inner{z-index:2;padding:var(--sp-24)var(--sp-8);max-width:100%;position:relative}.card-title{font-family:var(--font-serif);letter-spacing:.25em;text-transform:uppercase;color:var(--color-primary);margin-bottom:0;font-size:1.1rem;font-weight:700}.card-subtitle{font-family:var(--font-serif);letter-spacing:.12em;text-transform:uppercase;color:var(--color-primary);margin-top:-6px;margin-bottom:var(--sp-24);font-size:.65rem;font-weight:600}.parents-row{justify-content:center;align-items:flex-start;gap:var(--sp-12);margin-bottom:var(--sp-24);display:flex}.parent-col{flex:1;min-width:0}.parent-role{font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-dark);margin-bottom:2px;font-size:.55rem;font-weight:700;line-height:1.6}.parent-name{font-family:var(--font-sans);color:var(--color-text-medium);font-size:.55rem;font-weight:500;line-height:1.6}.parent-name-bold{color:var(--color-text-dark);font-weight:700}.parent-addr{font-family:var(--font-sans);color:var(--color-text-medium);margin-top:6px;font-size:.47rem;font-weight:500;line-height:1.5}.parents-amp{font-family:var(--font-script);color:var(--color-gold);margin:0 var(--sp-4);flex-shrink:0;align-self:center;font-size:1.8rem;font-weight:700}.announcement{font-family:var(--font-sans);color:var(--color-text-medium);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-8);font-size:.48rem;font-weight:500;line-height:1.8}.couple-names{margin-top:4px;margin-bottom:var(--sp-16);padding-bottom:var(--sp-8)}.couple-name-bride,.couple-name-groom{font-family:var(--font-script);white-space:nowrap;color:var(--color-primary);margin:0 auto;font-size:clamp(1.5rem,4.2vw,1.5rem);font-weight:700;line-height:1.2;display:block}.couple-amp{font-family:var(--font-script);color:var(--color-gold);font-size:1.15rem;font-weight:700;display:block}.ceremony-intro{font-family:var(--font-sans);color:var(--color-text-dark);margin-bottom:var(--sp-4);font-size:.5rem;font-weight:500;line-height:1.8}.ceremony-date{font-family:var(--font-sans);color:var(--color-text-dark);letter-spacing:.06em;margin-bottom:var(--sp-4);font-size:.45rem;font-weight:600}.ceremony-time{font-family:var(--font-sans);letter-spacing:.02em;text-transform:none;color:var(--color-text-medium);margin-bottom:var(--sp-8);font-size:.44rem;font-weight:500;line-height:1.8}.card-closing{font-family:var(--font-script);color:var(--color-gold);margin-top:4px;font-size:1.15rem;font-weight:700}.card-countdown{background:var(--color-primary);padding:var(--sp-24)var(--sp-16)var(--sp-32);text-align:center}.countdown-heading{font-family:var(--font-serif);letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-white);margin-bottom:var(--sp-16);font-size:.9rem;font-weight:700}.countdown-sub{font-family:var(--font-serif);color:#ffffff80;margin-bottom:var(--sp-24);font-size:.6rem;font-style:italic;font-weight:400}.countdown-row{justify-content:center;align-items:center;display:flex}.countdown-cell{align-items:center;display:flex}.countdown-box{background:var(--color-accent-light);border-radius:6px;flex-direction:column;align-items:center;min-width:62px;padding:10px 14px 8px;display:flex}.countdown-number{font-family:var(--font-sans);color:var(--color-text-dark);font-size:1.8rem;font-weight:700;line-height:1}.countdown-label{font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-medium);margin-top:var(--sp-4);font-size:.36rem;font-weight:600}.countdown-colon{font-family:var(--font-sans);color:var(--color-text-white);margin:-6px 6px 0;font-size:1.5rem;font-weight:700;animation:1.5s infinite blink-colon}.card-venue{background:var(--color-bg-card);padding:var(--sp-16)var(--sp-16);text-align:center}.venue-title{font-family:var(--font-serif);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);margin-bottom:var(--sp-8);font-size:clamp(1rem,4vw,1rem);font-weight:700}.map-frame{width:100%;height:200px;margin-bottom:var(--sp-16);border:1px solid var(--color-border);border-radius:6px;position:relative;overflow:hidden}.map-overlay{z-index:10;cursor:pointer;width:100%;height:100%;display:block;position:absolute;top:0;left:0}.map-frame iframe{border:none;width:100%;height:100%}.venue-info{text-align:left;border-left:3px solid var(--color-primary);padding:var(--sp-12)var(--sp-16);margin-bottom:var(--sp-20);background:var(--color-bg-light);border-radius:0 4px 4px 0}.venue-card-name{font-family:var(--font-sans);color:var(--color-text-dark);margin-bottom:2px;font-size:.58rem;font-weight:700;line-height:1.5}.venue-card-addr{font-family:var(--font-sans);color:var(--color-text-medium);font-size:.5rem;font-weight:400;line-height:1.7}@keyframes btn-pulse{0%{transform:scale(1);box-shadow:0 4px 16px #7a1a2e4d,0 0 #7a1a2eb3}70%{transform:scale(1.03);box-shadow:0 4px 16px #7a1a2e4d,0 0 0 15px #7a1a2e00}to{transform:scale(1);box-shadow:0 4px 16px #7a1a2e4d,0 0 #7a1a2e00}}.btn-directions{font-family:var(--font-sans);letter-spacing:.08em;color:var(--color-text-white);background:var(--color-primary);cursor:pointer;margin-top:var(--sp-24);border:none;border-radius:8px;justify-content:center;align-items:center;padding:12px 26px;font-size:.9rem;font-weight:650;text-decoration:none;transition:all .3s;animation:2s ease-in-out infinite btn-pulse;display:inline-flex;box-shadow:0 4px 16px #7a1a2e4d}.btn-directions:hover{background:var(--color-primary-dark);animation:none;transform:translateY(-2px);box-shadow:0 6px 20px #7a1a2e66}.page-footer{background:var(--color-bg-card);width:100%;padding:var(--sp-8)var(--sp-16);text-align:center;margin-top:auto}.footer-logo{opacity:.8;border-radius:50%;width:90px;height:90px;margin:0 auto;overflow:hidden}.footer-logo img,.footer-logo svg{object-fit:cover;width:100%;height:100%}.footer-text{font-family:var(--font-script);color:var(--color-primary);opacity:.9;font-size:1.2rem;font-weight:700}@media (min-width:420px){.countdown-box{min-width:72px;padding:12px 16px 10px}.countdown-number{font-size:2.2rem}.couple-name-bride,.couple-name-groom{font-size:2rem}.floral-left,.floral-right{width:120px}}@media (max-width:360px){.page-header{padding:var(--sp-8)var(--sp-16)var(--sp-12)}.header-names{font-size:1.35rem}.countdown-box{min-width:50px;padding:8px 8px 6px}.countdown-number{font-size:1.4rem}.countdown-colon{margin:0 4px;font-size:1.2rem}.floral-left,.floral-right{width:70px}.card-invitation{padding:0 var(--sp-12)}.card-inner{padding:var(--sp-16)var(--sp-4)}.parents-row{gap:var(--sp-8);margin-bottom:var(--sp-16)}.couple-names{margin-bottom:var(--sp-16)}}.text-highlight{color:var(--color-primary);font-weight:700}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes modernElevate{0%{opacity:0;transform:translateY(20px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes blink-colon{0%,to{opacity:.3}50%{opacity:1}}.animate-fadeInDown{opacity:0;animation:1s ease-out forwards fadeInDown}.animate-fadeInScale{opacity:0;animation:1.2s ease-out .3s forwards fadeInScale}.animate-fadeInUp{opacity:0;animation:.8s ease-out forwards fadeInUp}.delay-1{animation-delay:.8s}.delay-2{animation-delay:1s}.delay-3{animation-delay:1.2s}.delay-4{animation-delay:1.4s}.delay-5{animation-delay:1.6s}.delay-6{animation-delay:1.8s}.delay-7{animation-delay:2s}.animate-modernElevate{opacity:0;animation:.9s cubic-bezier(.16,1,.3,1) forwards modernElevate}.delay-box-0{animation-delay:1.8s}.delay-box-1{animation-delay:1.9s}.delay-box-2{animation-delay:2s}.delay-box-3{animation-delay:2.1s}
