@import "https://fonts.googleapis.com/css2?family=Bodoni+Moda:opsz,wght@6..96,500;6..96,600&family=Cormorant+Garamond:wght@400;500;600;700&family=Great+Vibes&family=Manrope:wght@400;500;600&family=Prata&display=swap";:root{--wedding-white:#fffaf4;--wedding-ivory:#f8f4ec;--wedding-ivory-soft:#f7f3eb;--wedding-beige:#f0e9dc;--wedding-gold-soft:229 203 153;--wedding-gold-warm:215 188 137;--wedding-gold-deep:207 177 107;color:#171311;background:radial-gradient(circle at top, rgb(var(--wedding-gold-soft) / .24), transparent 30%), radial-gradient(circle at bottom, rgb(var(--wedding-gold-warm) / .16), transparent 30%), linear-gradient(180deg, var(--wedding-ivory) 0%, var(--wedding-beige) 48%, var(--wedding-ivory-soft) 100%);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Manrope,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100%}body{min-height:100vh;margin:0;overflow-x:hidden}body:before{content:"";pointer-events:none;opacity:.34;background-image:radial-gradient(#fffc .8px, transparent 1px), radial-gradient(rgb(var(--wedding-gold-deep) / .16) .8px, transparent 1px);background-position:0 0,14px 14px;background-size:26px 26px;position:fixed;inset:0}#root{isolation:isolate}button{font:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{min-height:100vh;padding:max(12px, env(safe-area-inset-top)) 12px max(24px, env(safe-area-inset-bottom));position:relative;overflow-x:hidden}.app-audio{display:none}.intro-clouds{z-index:30;pointer-events:none;background:0 0;position:fixed;inset:0;overflow:hidden}.intro-clouds__veil{background:radial-gradient(circle at 20% 18%, rgb(var(--wedding-gold-soft) / .34), transparent 28%), radial-gradient(circle at 78% 22%, rgb(var(--wedding-gold-warm) / .28), transparent 30%), radial-gradient(circle at 50% 58%, rgb(var(--wedding-gold-deep) / .18), transparent 38%);opacity:.9;animation:2s forwards cloud-veil-away;position:absolute;inset:0}.intro-cloud{object-fit:contain;opacity:1;filter:sepia(.34)saturate(.82)brightness(1.05)hue-rotate(-8deg)contrast(1.06);mix-blend-mode:screen;width:auto;animation:2s cubic-bezier(.23,.8,.32,1) forwards cloud-scatter;display:block;position:absolute}.intro-cloud--1{width:144vw;height:60vh;animation-delay:0s;top:-14%;left:-42%}.intro-cloud--2{width:140vw;height:56vh;animation-delay:30ms;top:-12%;right:-40%}.intro-cloud--3{width:176vw;height:62vh;animation-delay:60ms;top:8%;left:-38%}.intro-cloud--4{width:144vw;height:56vh;animation-delay:20ms;top:18%;right:-30%}.intro-cloud--5{width:148vw;height:60vh;animation-delay:80ms;bottom:18%;left:-40%}.intro-cloud--6{width:164vw;height:64vh;animation-delay:50ms;bottom:8%;right:-44%}.intro-cloud--7{width:192vw;height:60vh;animation-delay:10ms;bottom:-16%;left:-26%}.intro-monogram{z-index:2;color:#0000;letter-spacing:-.08em;background:linear-gradient(#fff6e6 0%,#e7c979 42%,#b9841a 82%,#f4deb2 100%);text-shadow:0 0 22px rgb(var(--wedding-gold-soft) / .34), 0 10px 30px rgb(var(--wedding-gold-deep) / .22);-webkit-background-clip:text;background-clip:text;justify-content:center;align-items:center;font-family:Cormorant Garamond,serif;font-size:clamp(8rem,38vw,13rem);font-style:italic;font-weight:500;line-height:.82;animation:2s forwards intro-monogram-fade;display:flex;position:absolute;inset:0}.intro-monogram span+span{margin-left:-.24em}.app:before,.app:after{content:"";aspect-ratio:1;filter:blur(44px);pointer-events:none;z-index:0;opacity:.55;border-radius:999px;width:16rem;position:fixed;inset:auto}.app:before{background:radial-gradient(circle,#dec08185,#0000 72%);top:-2rem;left:-3rem}.app:after{background:radial-gradient(circle,#ddcdaa7a,#0000 72%);transition:transform .5s,opacity .5s;bottom:12rem;right:-4rem}.app.is-sound-on:after{opacity:.72;transform:scale(1.08)}.invite-shell{z-index:1;width:min(100%,430px);margin:0 auto;position:relative}.app.is-intro-active .invite-shell{animation:2s forwards invite-reveal}.invite-card{min-height:calc(100vh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(#fffffff2 0%,#fcf9f2e6 100%);border:1px solid #c39d4db8;border-radius:30px;padding:26px 18px 34px;position:relative;overflow:hidden;box-shadow:0 22px 60px #58431929,inset 0 0 0 1px #ffffffd1}.invite-card:before,.invite-card:after{content:"";pointer-events:none;position:absolute}.invite-card:before{border:1px solid #cba552b8;border-radius:24px;inset:10px}.invite-card:after{background:radial-gradient(circle at top,#e3cea33d,#0000 28%),radial-gradient(circle at 50% 42%,#f1ddb142,#0000 32%),linear-gradient(#ffffff24,#0000 25%,#dec17c0f 100%);inset:0}.frame-corner{z-index:1;opacity:.75;border:2px solid #c69a32;width:34px;height:34px;position:absolute}.frame-corner--tl{border-bottom:0;border-right:0;border-top-left-radius:22px;top:18px;left:18px}.frame-corner--tr{border-bottom:0;border-left:0;border-top-right-radius:22px;top:18px;right:18px}.frame-corner--bl{border-top:0;border-right:0;border-bottom-left-radius:22px;bottom:18px;left:18px}.frame-corner--br{border-top:0;border-left:0;border-bottom-right-radius:22px;bottom:18px;right:18px}.sound-toggle{z-index:3;color:#2d220c;background:radial-gradient(circle at 30% 30%,#fffef8 0%,#f4e1a6 38%,#d2a84a 100%);border:0;border-radius:999px;place-items:center;width:50px;height:50px;padding:0;transition:transform .2s,box-shadow .2s,background .2s,color .2s;display:grid;position:absolute;top:24px;right:24px;box-shadow:0 10px 26px #b48b3138,inset 0 0 0 1px #ffffffdb,inset 0 0 0 4px #c198416b}.sound-toggle:active{transform:scale(.96)}.sound-toggle.is-off{color:#746a5f;background:radial-gradient(circle at 30% 30%,#fbf8f2 0%,#e8e0d2 42%,#c8b8a0 100%);box-shadow:0 8px 18px #5c4f3829,inset 0 0 0 1px #ffffffc7,inset 0 0 0 4px #8a785f38}.sound-toggle.is-off:after{content:"OFF";color:#6d5f4d;letter-spacing:.16em;background:#fbf7efeb;border-radius:999px;padding:1px 6px;font-family:Manrope,Segoe UI,sans-serif;font-size:.56rem;font-weight:700;position:absolute;bottom:-14px;left:50%;transform:translate(-50%);box-shadow:0 5px 14px #6f5f481f}.sound-toggle svg{width:22px;height:22px}.hero-block{z-index:2;text-align:center;padding-top:72px;animation:.9s forwards rise-in;position:relative}.monogram{color:#0000;background:linear-gradient(#e8c978 0%,#b88316 55%,#ead393 100%);text-shadow:0 12px 32px #d3b36729;-webkit-background-clip:text;background-clip:text;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(4.8rem,25vw,6.7rem);font-style:italic;font-weight:500;line-height:.78;display:inline-flex}.monogram span+span{margin-left:-.34em}.couple-name{color:#1f1510;-webkit-text-stroke:.2px #7a541829;text-shadow:0 1px #fffaf499,0 10px 24px #c6a45f2e;margin:14px 0 0;font-family:Great Vibes,cursive;font-size:clamp(2.4rem,11vw,3.2rem);font-weight:400;line-height:.92}.art-stage{z-index:2;width:calc(100% + 36px);max-width:none;margin:30px -18px 0;animation:1.1s .15s both rise-in;position:relative}.art-stage:before{content:"";filter:blur(24px);background:radial-gradient(circle,#f1daa2d1,#0000 72%);border-radius:50%;position:absolute;inset:12% 4% 14%}.hero-art{z-index:1;filter:drop-shadow(0 16px 32px #c9a24a3d);width:100%;height:auto;display:block;position:relative}.scroll-cue{z-index:2;color:#17120d;justify-items:center;margin-top:8px;font-family:Cormorant Garamond,serif;font-size:1.35rem;font-style:italic;line-height:.95;animation:1s .28s both rise-in;display:grid;position:relative}.scroll-arrow{clip-path:polygon(50% 100%,0 0,100% 0);background:linear-gradient(#ebd79f 0%,#bb8a1b 100%);width:18px;height:12px;margin-top:10px;animation:1.8s ease-in-out infinite float-arrow}.details-block{z-index:2;text-align:center;margin-top:34px;padding:26px 10px 12px;animation:1s .36s both rise-in;position:relative}.details-block:before{content:"";background:linear-gradient(90deg,#0000,#be9123cc,#0000);width:96px;height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}.details-copy{color:#1d1814;text-transform:uppercase;max-width:23ch;margin:0 auto;font-family:Cormorant Garamond,serif;font-size:clamp(1.3rem,5.3vw,1.65rem);font-style:italic;line-height:1.18}.details-date{color:#090909;letter-spacing:-.08em;margin:16px 0 0;font-family:Cormorant Garamond,serif;font-size:clamp(4rem,18vw,5.8rem);font-weight:500;line-height:.9}.details-venue{color:#191512;text-transform:uppercase;margin:14px 0 0;font-family:Cormorant Garamond,serif;font-size:clamp(1.25rem,5.4vw,1.6rem);font-style:italic;line-height:1.14}.details-city{color:#0e0d0d;margin:8px 0 0;font-family:Great Vibes,cursive;font-size:clamp(3rem,13vw,4.5rem);line-height:.92}.details-signature{color:#2e2a28;letter-spacing:.34em;margin:32px 0 0;font-family:Cormorant Garamond,serif;font-size:1.15rem;font-weight:500}.palace-stage{z-index:2;width:min(100%,340px);margin:28px auto -8px;padding-top:18px;animation:1s .44s both rise-in;position:relative}.palace-stage:before{content:"";background:linear-gradient(90deg,#0000,#be9123cc,#0000);width:120px;height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}.palace-stage--ending{margin:30px auto 14px}.palace-art{filter:drop-shadow(0 14px 28px #c9a24a38);width:100%;height:auto;margin:0 auto;display:block}.gathering-section{z-index:2;min-height:370px;margin-top:18px;padding:26px 8px 10px;animation:1s .56s both rise-in;position:relative}.gathering-content{z-index:2;text-align:center;width:min(100%,270px);margin:0 auto;position:relative}.chandelier-art{z-index:1;filter:drop-shadow(0 12px 24px #c9a24a24);opacity:.96;pointer-events:none;width:min(32vw,112px);height:auto;position:absolute;top:-42px;left:-66px}@keyframes cloud-veil-away{0%{opacity:.9;transform:scale(1)}45%{opacity:.45}to{opacity:0;transform:scale(1.01)}}@keyframes cloud-scatter{0%{opacity:1;transform:translate(0,0)scale(1.02)}74%{opacity:.96}to{opacity:0;transform:translate3d(var(--cloud-x,0), var(--cloud-y,-22px), 0) scale(1.42)}}@keyframes intro-monogram-fade{0%{opacity:0;transform:scale(.92)translateY(10px)}28%{opacity:1;transform:scale(1)translateY(0)}72%{opacity:.96;transform:scale(1.015)translateY(0)}to{opacity:0;transform:scale(1.04)translateY(-8px)}}@keyframes invite-reveal{0%{opacity:0;filter:blur(8px);transform:translateY(10px)scale(1.012)}50%{opacity:0;filter:blur(8px);transform:translateY(10px)scale(1.012)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.intro-cloud--1{--cloud-x:-120px;--cloud-y:-94px}.intro-cloud--2{--cloud-x:132px;--cloud-y:-88px}.intro-cloud--3{--cloud-x:-92px;--cloud-y:-126px}.intro-cloud--4{--cloud-x:118px;--cloud-y:-76px}.intro-cloud--5{--cloud-x:-130px;--cloud-y:94px}.intro-cloud--6{--cloud-x:142px;--cloud-y:96px}.intro-cloud--7{--cloud-x:0;--cloud-y:128px}.gathering-time{color:#090909;margin:6px 0 0;font-family:Cormorant Garamond,serif;font-size:clamp(4.15rem,18vw,5.3rem);font-weight:500;line-height:.9}.gathering-lead,.gathering-place,.gathering-address{color:#1b1715;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(1.35rem,5.2vw,1.7rem);font-style:italic;line-height:1.18}.gathering-lead{margin-top:16px}.gathering-place{margin-top:8px}.gathering-address{margin-top:28px}.map-button{color:#24201d;background:#ffffffb8;border:1px solid #c69a32b8;border-radius:999px;justify-content:center;align-items:center;min-width:min(100%,280px);margin-top:30px;padding:16px 30px;font-family:Cormorant Garamond,serif;font-size:1.5rem;font-style:italic;text-decoration:none;display:inline-flex;box-shadow:0 14px 34px #c7a7631a,inset 0 0 0 1px #ffffffc7}.route-section{z-index:2;margin-top:34px;padding-bottom:20px;animation:1s .68s both rise-in;position:relative}.route-panel{text-align:center;background:0 0;padding:28px 14px 40px;position:relative;overflow:hidden}.route-corner{display:none}.route-corner--tl{border-bottom:0;border-right:0;border-top-left-radius:18px;top:14px;left:14px}.route-corner--tr{border-bottom:0;border-left:0;border-top-right-radius:18px;top:14px;right:14px}.route-corner--bl{border-top:0;border-right:0;border-bottom-left-radius:18px;bottom:14px;left:14px}.route-corner--br{border-top:0;border-left:0;border-bottom-right-radius:18px;bottom:14px;right:14px}.route-title{z-index:2;color:#b6851e;justify-items:center;margin:18px 0 0;font-family:Great Vibes,cursive;font-size:clamp(3.4rem,15vw,4.9rem);font-weight:400;line-height:.82;display:grid;position:relative}.route-map-stage{z-index:2;width:calc(100% + 28px);max-width:none;margin:20px -14px 0;position:relative}.route-map-art{width:100%;height:auto;display:block}.route-marker{z-index:3;justify-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%)}.route-marker-pin{color:#c4901f;filter:drop-shadow(0 10px 18px #c4901f4d);place-items:center;width:34px;height:34px;display:grid}.route-marker-pin svg{width:100%;height:100%}.route-marker-label{color:#2a231c;white-space:nowrap;background:#fffbf3eb;border:1px solid #c69a32c7;border-radius:999px;margin-top:6px;padding:6px 12px;font-family:Cormorant Garamond,serif;font-size:1rem;font-style:italic;line-height:1;box-shadow:0 10px 22px #c7a76324,inset 0 0 0 1px #ffffffb8}.route-button{z-index:2;color:#24201d;background:#ffffffb8;border:1px solid #c69a32b8;border-radius:999px;justify-content:center;align-items:center;width:min(100%,280px);margin:28px auto 0;padding:16px 30px;font-family:Cormorant Garamond,serif;font-size:1.45rem;font-style:italic;text-decoration:none;display:flex;position:relative;box-shadow:0 14px 34px #c7a7631a,inset 0 0 0 1px #ffffffc7}.route-chandelier{z-index:1;filter:drop-shadow(0 12px 24px #c9a24a24);opacity:.96;pointer-events:none;width:min(28vw,96px);height:auto;position:absolute;top:2px;right:-56px;transform:scaleX(-1)}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes float-arrow{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@media (width>=480px){.app{padding-inline:20px}.invite-card{min-height:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.intro-clouds{display:none}.app.is-intro-active .invite-shell{animation:none}}.gifts-countdown-section{z-index:2;margin-top:26px;padding:34px 10px 44px;animation:1s .92s both rise-in;position:relative;overflow:hidden}.gifts-countdown-section:before{content:"";background:linear-gradient(90deg,#0000,#be9123cc,#0000);width:120px;height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}.gifts-countdown__inner{z-index:2;text-align:center;width:min(100%,320px);margin:0 auto;position:relative}.gifts-title{color:#0e0c0b;margin:0;font-family:Great Vibes,cursive;font-size:clamp(3.6rem,16vw,5rem);font-weight:400;line-height:.88}.gifts-message{color:#1b1715;text-transform:uppercase;max-width:22ch;margin:22px auto 0;font-family:Cormorant Garamond,serif;font-size:clamp(1.2rem,5vw,1.5rem);font-style:italic;line-height:1.22}.gifts-divider{color:#171311;letter-spacing:.2em;margin-top:34px;font-family:Cormorant Garamond,serif;font-size:1.5rem}.gifts-countdown-title{color:#c18f24;text-shadow:0 0 1px #fff8ea66,0 8px 18px #bf8f241f;margin:34px 0 0;font-family:Great Vibes,cursive;font-size:clamp(4.2rem,18vw,5.7rem);font-weight:400;line-height:.82;display:grid}.gifts-count-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:30px;display:grid}.gifts-count-item{justify-items:center;gap:4px;display:grid}.gifts-count-value{color:#090909;letter-spacing:.03em;font-family:Prata,serif;font-size:clamp(2.5rem,12vw,3.4rem);font-weight:400;line-height:.92}.gifts-count-label{color:#171311;letter-spacing:.04em;font-family:Cormorant Garamond,serif;font-size:.96rem;font-style:italic;line-height:1}.gifts-divider--bottom{margin-top:36px}.tuyona-section{z-index:2;width:100%;margin-top:26px;padding:28px 8px 8px;animation:1s .8s both rise-in;position:relative}.tuyona-section:before{content:"";background:linear-gradient(90deg,#0000,#be9123cc,#0000);width:120px;height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}.tuyona-shell{text-align:center;width:min(100%,320px);margin:0 auto}.tuyona-title{color:#17120d;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(2.3rem,10vw,3rem);font-style:italic;font-weight:500;line-height:.92}.tuyona-description{color:#1b1715;max-width:28ch;margin:14px auto 0;font-family:Cormorant Garamond,serif;font-size:clamp(1.24rem,5vw,1.52rem);font-style:italic;line-height:1.22}.tuyona-card{background:linear-gradient(#ffffffe6 0%,#fbf7eedb 100%);border:1px solid #c69a3252;border-radius:26px;margin-top:22px;padding:22px 16px 18px;position:relative;overflow:hidden;box-shadow:0 18px 36px #7e643414,inset 0 1px #ffffffbd}.tuyona-card:before{content:"";pointer-events:none;border:1px solid #c4a35c2e;border-radius:18px;position:absolute;inset:9px}.tuyona-card__glow{filter:blur(14px);pointer-events:none;background:radial-gradient(circle,#f3ddb380,#0000 68%);border-radius:999px;width:210px;height:210px;position:absolute;top:-82px;right:-56px}.tuyona-meta{z-index:1;gap:12px;display:grid;position:relative}.tuyona-meta__item{gap:4px;display:grid}.tuyona-label{color:#79623ae6;letter-spacing:.22em;text-transform:uppercase;font-size:.7rem;font-weight:600}.tuyona-value{color:#241d18;font-family:Cormorant Garamond,serif;font-size:1.42rem;font-style:italic;font-weight:500;line-height:1.08}.tuyona-number-block{z-index:1;margin-top:18px;padding:20px 0 8px;position:relative}.tuyona-number-block:before{content:"";background:linear-gradient(90deg,#0000,#be9123b8,#0000);width:116px;height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}.tuyona-number{color:#17110d;letter-spacing:.16em;word-break:break-word;margin:12px 0 0;font-family:Manrope,Segoe UI,sans-serif;font-size:clamp(1.36rem,6vw,1.7rem);font-weight:600;line-height:1.28}.tuyona-copy-button{z-index:1;color:#24201d;letter-spacing:0;background:#ffffffb8;border:1px solid #c69a32b8;border-radius:999px;justify-content:center;align-items:center;gap:10px;width:min(100%,260px);margin:18px auto 0;padding:15px 18px;font-family:Cormorant Garamond,serif;font-size:1.35rem;font-style:italic;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative;box-shadow:0 14px 34px #c7a7631a,inset 0 0 0 1px #ffffffc7}.tuyona-copy-button:active{transform:scale(.985)}.tuyona-copy-button:hover{border-color:#c69a32e6;box-shadow:0 16px 32px #9d80481c,inset 0 0 0 1px #ffffffd1}.tuyona-copy-button svg{width:18px;height:18px}.tuyona-feedback{color:#0000;text-align:center;opacity:0;min-height:1.4rem;margin:12px 0 0;font-size:.82rem;line-height:1.4;transition:opacity .22s,transform .22s,color .22s;transform:translateY(4px)}.tuyona-feedback.is-visible{opacity:1;transform:translateY(0)}.tuyona-feedback.is-success{color:#8c7441}.tuyona-feedback.is-error{color:#9c5c4d}.tuyona-note{color:#48392ab8;text-align:center;max-width:30ch;margin:16px auto 0;font-family:Cormorant Garamond,serif;font-size:1.02rem;font-style:italic;line-height:1.34}@media (width>=420px){.tuyona-section{padding-inline:10px}.tuyona-card{padding:24px 20px 20px}}@media (prefers-reduced-motion:reduce){.tuyona-copy-button,.tuyona-feedback{transition:none}}
