.minimal-wedding{--ink:#7c6a60;--accent:#918077;--paper:#fff7f3;--card:#f6eadd;min-height:100svh;color:var(--ink);background:#fff;font-family:Times New Roman,serif;overflow:hidden}.wedding-gate{z-index:50;background:linear-gradient(135deg,#f3e6da,#e8d5c4,#dcc6b2);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.gate-letter{text-align:center;background:#fffaf5;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;width:min(92vw,710px);min-height:min(72vh,500px);display:flex;position:relative;overflow:hidden;box-shadow:0 20px 34px #523d2f5c}.gate-letter h1{z-index:1;max-width:12ch;margin:0;font-size:clamp(2.2rem,5vw,3.25rem);font-weight:500;line-height:1.05}.gate-letter h1 small{font-size:.58em;font-weight:400;display:block}.gate-heart{z-index:1;background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:64px;height:64px;margin-bottom:1.2rem;font-size:1.8rem;animation:2.4s ease-in-out infinite heart-pulse;display:grid}.gate-divider{z-index:1;align-items:center;gap:.75rem;margin:1.2rem 0;display:flex}.gate-divider span{background:#aa998c;width:42px;height:1px}.gate-date,.gate-invitee{z-index:1;margin:0;font-size:1.25rem}.gate-invitee{margin-top:1.35rem}.gate-letter button{z-index:1;background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:999px;margin-top:1.35rem;padding:.85rem 2.4rem;font:600 1.1rem Georgia,serif;position:relative;overflow:hidden;box-shadow:0 5px 10px #523d2f47}.gate-letter button span{z-index:1;position:relative}.gate-letter button i{background:linear-gradient(90deg,#0000,#fff6,#0000);width:2rem;height:100%;animation:3s ease-in-out infinite gate-shine;position:absolute;top:0;left:-100%}.gate-flower,.gate-flower-flight{z-index:0;opacity:.7;pointer-events:none;width:auto;max-width:none;height:clamp(9rem,30vw,20rem);position:absolute}.gate-flower--left,.gate-flower-flight--left{top:-3%;left:-1.25rem;transform:translate(-6%)rotate(25deg)}.gate-flower--right{bottom:-3%;right:-1.25rem;transform:translate(6%)scaleX(-1)rotate(-25deg)}.gate-flower-flight--right{bottom:-3%;right:-1.25rem;transform:translate(6%)rotate(-25deg)}.gate-flower-flight img{width:100%;height:100%;animation:1.2s ease-in forwards dragon-fly-forward;display:block}.gate-flower-flight--right img{--fly-scale-x:-1}.gate-leaf{z-index:0;color:#a8896f;opacity:0;animation:leaf-fall var(--duration,20s) ease-in-out var(--delay,0s) infinite;font-size:1.2rem;position:absolute}.gate-leaf--1{--delay:-12s;left:9%}.gate-leaf--2{--duration:24s;--delay:-5s;left:24%}.gate-leaf--3{--delay:-17s;left:42%}.gate-leaf--4{--duration:22s;--delay:-9s;left:63%}.gate-leaf--5{--delay:-16s;left:79%}.gate-leaf--6{--duration:25s;--delay:-4s;left:91%}.gate-leaf--7{--duration:18s;--delay:-8s;left:15%}.gate-leaf--8{--duration:26s;--delay:-21s;left:53%}.gate-leaf--9{--duration:19s;--delay:-11s;left:70%}.gate-leaf--10{--duration:23s;--delay:-14s;left:34%}.gate-leaf--11{--duration:21s;--delay:-3s;left:4%}.gate-leaf--12{--duration:20s;--delay:-18s;left:86%}.gate-leaf--13{--duration:25s;--delay:-7s;left:58%}.gate-leaf--14{--duration:22s;--delay:-20s;left:29%}.invite-sheet{background:var(--paper);isolation:isolate;width:100%;max-width:480px;margin:0 auto;position:relative;overflow:hidden}.invite-sheet:before{z-index:-1;content:"";mix-blend-mode:multiply;opacity:.4;background:url(/wedding/paper.webp) top/100% repeat-y;position:absolute;inset:0}.invite-hero{text-align:center;flex-direction:column;align-items:center;padding:3rem 1rem 5rem;display:flex;position:relative;overflow:hidden}.hero-leaf,.hero-house{z-index:0;pointer-events:none;max-width:none;position:absolute}.hero-leaf{opacity:.12;width:52%;top:2%;left:-24%}.hero-house{mix-blend-mode:multiply;opacity:.08;width:130%;top:30%;left:50%;transform:translate(-50%)}.invite-hero>:not(.hero-leaf):not(.hero-house){z-index:1;position:relative}.invite-hero>p{color:#827771;letter-spacing:.16em;text-transform:uppercase;margin:0;font-family:Georgia,serif;font-size:13px;font-weight:600}.invite-hero h2{color:#827771;justify-content:center;align-items:center;gap:.5rem;margin:.75rem 0 0;font-family:Times New Roman,serif;font-size:clamp(30px,8.4vw,37px);font-style:italic;font-weight:400;line-height:1;display:flex}.invite-hero h2 em{color:var(--accent);font-family:cursive;font-size:1.45em;font-style:normal;font-weight:400}.hero-photo{z-index:1;aspect-ratio:1094/1554;width:88%;max-width:400px;margin-top:1.5rem;position:relative}.hero-photo>img:first-child{z-index:1;-o-object-fit:cover;object-fit:cover;background:#fff;width:72%;height:77%;position:absolute;top:8%;left:11.5%;transform:rotate(-4.78deg)}.hero-frame{z-index:2;filter:drop-shadow(4px 4px 4px #0003);pointer-events:none;width:100%;position:absolute;inset:0}.hero-flower{z-index:3;filter:drop-shadow(4px 4px 2px #00000040);pointer-events:none;width:34%;animation:5s ease-in-out infinite mb-float;position:absolute;bottom:-6%;left:-5%}.paper-card{background:var(--card);isolation:isolate;text-align:center;border-radius:13px;width:88%;max-width:420px;margin:0 auto 4rem;padding:2.25rem 1.25rem 2.5rem;position:relative;overflow:hidden;box-shadow:4px 4px 8px #0000002e}.paper-card:before{z-index:-1;border-radius:inherit;content:"";mix-blend-mode:multiply;opacity:.5;background:url(/wedding/paper.webp) 50%/cover;position:absolute;inset:0}.paper-card>:not(.ceremony-flower):not(.ceremony-leaf):not(.reception-leaf):not(.reception-flower){z-index:1;position:relative}.paper-card h2,.album h2,.gift-section h2,.venue-section h2{color:var(--ink);letter-spacing:.03em;text-transform:uppercase;margin:0;font-family:Times New Roman,serif;font-size:20px;font-weight:700}.invitation-details{margin-bottom:0}.ceremony-flower,.ceremony-leaf{z-index:2;filter:drop-shadow(4px 4px 2px #00000040);pointer-events:none;width:auto;max-width:none;animation:mb-float var(--float-duration,5s) ease-in-out var(--float-delay,0s) infinite;position:absolute}.ceremony-flower{--float-duration:5.5s;--float-delay:.6s;width:32%;bottom:-6%;right:-17%;transform:scaleX(-1)}.ceremony-leaf{--float-duration:6s;--float-delay:.3s;width:28%;top:33%;left:-16%;transform:rotate(10.57deg)}.parents{grid-template-columns:1fr 1px 1fr;align-items:center;gap:.75rem;margin:1.5rem 0;display:grid}.parents p{color:var(--accent);margin:0;font-family:Georgia,serif;font-size:10px;line-height:1.25}.parents p+p{border:0}.parents:after{content:"";background:#7c6a6054;grid-area:1/2;width:1px;height:50px}.parents p:first-child{grid-area:1/1}.parents p:last-child{grid-area:1/3}.parents b{color:var(--ink);font-family:Georgia,serif;font-size:12px}.parents small{font-size:10px}.formal{color:var(--ink);letter-spacing:.02em;text-transform:none;margin:1.5rem 0;font-family:Georgia,serif;font-size:12px;line-height:1.45}.invitation-details h3{color:var(--ink);margin:.2rem 0 0;font-family:Times New Roman,serif;font-size:clamp(38px,10vw,46px);font-weight:400;line-height:1}.role{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-top:.25rem;font-family:Georgia,serif;font-size:10px;display:block}.invitation-details>strong{color:var(--ink);margin:.55rem 0;font-family:cursive;font-size:35px;font-weight:400;line-height:1;display:block}.event-time{color:var(--ink);margin:.6rem 0 .8rem;font-size:20px;font-weight:400;display:block}.event-date{color:var(--ink);text-transform:uppercase;justify-content:center;align-items:center;gap:1rem;margin:0;font-size:12px;display:flex}.event-date strong{border-left:2px solid #7c6a608c;border-right:2px solid #7c6a608c;padding:0 1rem;font-size:30px;font-weight:400}.event-year{color:var(--ink);margin:.55rem 0;font-size:18px}.invitation-details>small{color:var(--accent);letter-spacing:.15em;text-transform:uppercase;font-size:12px}.album{text-align:center;flex-direction:column;align-items:center;width:100%;padding:2.5rem 1.5rem;display:flex;position:relative;overflow:hidden}.album-leaf{z-index:0;opacity:.1;pointer-events:none;width:46%;max-width:none;position:absolute;top:-6%;right:-18%;transform:rotate(38deg)}.album h2,.album>div{z-index:1;position:relative}.album>div{grid-template-columns:repeat(2,1fr);gap:1rem;width:100%;max-width:380px;margin-top:1.25rem;display:grid}.album button{aspect-ratio:1;cursor:zoom-in;background:#7c6a600d;border:0;padding:0;overflow:hidden}.album img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:transform .2s;display:block}.album button:hover img{transform:scale(1.03)}.reception{border-radius:10px;width:88%;margin:0 auto 1rem;padding:2.25rem 1.25rem;overflow:visible}.reception-leaf,.reception-flower{z-index:2;filter:drop-shadow(4px 4px 2px #00000040);pointer-events:none;width:auto;max-width:none;animation:mb-float var(--float-duration,5.5s) ease-in-out var(--float-delay,0s) infinite;position:absolute}.reception-leaf{--float-duration:5.5s;--float-delay:.9s;width:28%;top:15%;right:-16%;transform:scaleY(-1)rotate(169.43deg)}.reception-flower{--float-duration:6s;--float-delay:.2s;width:32%;bottom:-6%;left:-21%}.reception>p:not(.lunar-date){margin:1.2rem 0 0;font-family:Georgia,serif;font-size:12px}.reception .event-time{margin:.45rem 0 .7rem;font-size:30px}.reception .event-date strong{font-size:40px}.reception .event-year{font-size:24px}.lunar-date{color:var(--accent);letter-spacing:.25em;text-transform:uppercase;margin:1.35rem 0 0;font-family:Georgia,serif;font-size:12px}.reception-times{justify-content:center;gap:2rem;margin-top:1.5rem;display:flex}.reception-times p{gap:.35rem;margin:0;display:grid}.reception-times span{color:var(--accent);text-transform:uppercase;font-family:Georgia,serif;font-size:12px}.reception-times b{color:var(--ink);font-size:20px;font-weight:500}.wedding-calendar{background:var(--ink);color:#ded9d7;border-radius:10px;width:280px;max-width:100%;margin:1.5rem auto 1rem;padding:.5rem 1rem 1rem}.wedding-calendar h3{border-bottom:1px solid #ded9d745;margin:0;padding:.55rem 0 .7rem;font-family:cursive;font-size:24px;font-weight:400}.calendar-weekdays,.calendar-days{grid-template-columns:repeat(7,1fr);align-items:center;display:grid}.calendar-weekdays{opacity:.6;border-bottom:2px solid #ded9d7;padding:.4rem 0;font-size:10px}.calendar-days{gap:.125rem 0;padding:.5rem .25rem 0;font-size:12px}.calendar-days>span{place-items:center;min-height:30px;display:grid;position:relative}.calendar-day--wedding i{color:#ded9d7;filter:drop-shadow(0 1px 1px #00000038);font-size:30px;font-style:normal;line-height:1;position:absolute}.calendar-day--wedding b{z-index:1;color:#333;font-size:11px;position:relative}.calendar-link{color:var(--ink);text-underline-offset:4px;margin-top:.4rem;font-family:Georgia,serif;font-size:14px;text-decoration:underline;display:inline-flex}.rsvp-button{background:var(--ink);color:#ded9d7;cursor:pointer;text-transform:uppercase;border:0;border-radius:999px;justify-content:center;margin-top:1.5rem;padding:.65rem 1.75rem;font:600 14px Georgia,serif;transition:transform .2s;display:inline-flex}.rsvp-button:hover{transform:scale(1.03)}.venue-section{text-align:center;flex-direction:column;align-items:center;width:100%;padding:2rem 1.5rem;display:flex;position:relative;overflow:hidden}.venue-section>img{z-index:0;mix-blend-mode:multiply;opacity:.08;pointer-events:none;width:135%;max-width:none;position:absolute;top:-10%;left:50%;transform:translate(-50%)}.venue-section>:not(img){z-index:1;position:relative}.venue{place-items:center;gap:.5rem;max-width:280px;margin:1rem auto 0;font-family:Georgia,serif;font-size:12px;line-height:1.55;display:grid}.venue small{color:var(--accent);font-size:12px}.actions{flex-wrap:wrap;justify-content:center;gap:.7rem;margin-top:1rem;display:flex}.actions a{color:var(--ink);text-underline-offset:4px;align-items:center;gap:.45rem;font-family:Georgia,serif;font-size:14px;text-decoration:underline;display:inline-flex}.gift-section{text-align:center;flex-direction:column;align-items:center;padding:2rem 1.5rem 2.5rem;display:flex;position:relative;overflow:hidden}.gift-house{z-index:0;mix-blend-mode:multiply;opacity:.08;pointer-events:none;width:140%;max-width:none;position:absolute;top:8%;left:50%;transform:translate(-50%)}.gift-section>:not(.gift-house){z-index:1;position:relative}.gift-box{width:250px;height:335px;color:var(--ink);cursor:pointer;background:0 0;border:0;place-items:end center;padding:0 0 .4rem;font:600 12px Georgia,serif;display:grid;position:relative}.gift-box:disabled{cursor:default}.gift-box img{filter:drop-shadow(0 10px 18px #00000040);width:190px;animation:3.8s ease-in-out infinite box-float}.gift-box span{margin-top:-1.5rem}.gift-box i{z-index:1;color:#b58a52;opacity:0;pointer-events:none;font-size:1.2rem;font-style:normal;position:absolute}.gift-box i:first-of-type{top:22%;left:14%}.gift-box i:nth-of-type(2){top:12%;right:18%}.gift-box i:nth-of-type(3){top:38%;left:3%}.gift-box i:nth-of-type(4){top:34%;right:4%}.gift-box--opening img{animation:.52s cubic-bezier(.34,1.56,.64,1) both gift-open}.gift-box--opening i:first-of-type{animation:.52s ease-out both gift-spark-1}.gift-box--opening i:nth-of-type(2){animation:.52s ease-out 40ms both gift-spark-2}.gift-box--opening i:nth-of-type(3){animation:.52s ease-out 20ms both gift-spark-3}.gift-box--opening i:nth-of-type(4){animation:.52s ease-out 60ms both gift-spark-4}footer{color:var(--ink);text-align:center;justify-content:center;padding:0 1.5rem 2.5rem;font-family:Georgia,serif;font-size:12px;display:flex}.music-button{z-index:10;background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:50%;place-items:center;width:48px;height:48px;display:grid;position:fixed;bottom:1.25rem;right:1.25rem;box-shadow:0 5px 15px #00000040}.modal-backdrop{z-index:60;background:#140e0bc7;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.gift-modal{background:var(--paper);width:min(92vw,520px);color:var(--ink);text-align:center;border-radius:14px;padding:2.7rem 1.5rem 2rem;position:relative}.gift-modal>svg{width:32px;height:32px}.gift-modal h2{margin:.7rem 0 1.5rem}.gift-modal>div{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.gift-modal p{border:1px solid #7c6a6040;border-radius:9px;margin:0;padding:1rem .5rem;font-size:.82rem;line-height:1.7}.rsvp-modal>p{border:0;margin:-.4rem 0 1.6rem;padding:0;line-height:1.6}.rsvp-modal .rsvp-button{margin-top:.4rem}.close-button{width:34px;height:34px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:.7rem;right:.7rem}.photo-modal{grid-template-columns:auto minmax(0,min(80vw,900px)) auto;gap:1rem}.photo-modal>img{-o-object-fit:contain;object-fit:contain;width:100%;max-height:86svh}.photo-modal>button:not(.close-button){color:#fff;cursor:pointer;background:#ffffff29;border:0;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}@keyframes mb-float{0%,to{translate:0}50%{translate:0 -10px}}@keyframes leaf-fall{0%{opacity:0;transform:translateY(-12vh)rotate(0)}10%,85%{opacity:.68}to{opacity:0;transform:translate(32px,112vh)rotate(300deg)}}@keyframes heart-pulse{50%{scale:1.08}}@keyframes box-float{50%{translate:0 -10px}}@keyframes seal-break{0%{filter:brightness();opacity:1;transform:scale(1)rotate(0)}30%{filter:brightness(1.3);opacity:.9;transform:scale(1.15)rotate(5deg)}60%{filter:brightness(1.5);opacity:.5;transform:scale(1.05)rotate(-3deg)}to{filter:brightness(2);opacity:0;transform:scale(0)rotate(15deg)}}@keyframes seal-ring{0%{opacity:.8;transform:translate(-50%,-50%)scale(.8)}to{opacity:0;transform:translate(-50%,-50%)scale(2.5)}}@keyframes envelope-away{0%{opacity:1;transform:translateY(0)rotate(0)}15%{opacity:1;transform:translateY(10px)rotate(.5deg)}to{opacity:0;transform:translateY(-120vh)rotate(-2deg)}}@keyframes gate-shine{0%{left:-100%}50%,to{left:100%}}@keyframes dragon-fly-forward{0%{transform:scale(var(--fly-scale-x,1), 1);filter:blur();opacity:.7}40%{transform:scale(calc(var(--fly-scale-x,1) * 1.6), 1.6);filter:blur(2px);opacity:.5}to{transform:scale(calc(var(--fly-scale-x,1) * 3), 3);filter:blur(10px);opacity:0}}@keyframes gift-open{0%{transform:translateY(0)scale(1)rotate(0)}45%{transform:translateY(-15px)scale(1.1)rotate(-3deg)}70%{transform:translateY(-8px)scale(1.05)rotate(2deg)}to{transform:translateY(0)scale(1)rotate(0)}}@keyframes gift-spark-1{15%{opacity:1}to{opacity:0;transform:translate(-28px,-52px)rotate(100deg)scale(.4)}}@keyframes gift-spark-2{15%{opacity:1}to{opacity:0;transform:translate(31px,-58px)rotate(-100deg)scale(.4)}}@keyframes gift-spark-3{15%{opacity:1}to{opacity:0;transform:translate(-42px,-20px)rotate(80deg)scale(.35)}}@keyframes gift-spark-4{15%{opacity:1}to{opacity:0;transform:translate(39px,-28px)rotate(-80deg)scale(.35)}}@keyframes particle-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(0)rotate(0)}15%{opacity:1;transform:translate(-50%,-50%)scale(1.3)rotate(15deg)}to{transform:translate(calc(-50% + var(--x)), calc(-50% + var(--y))) scale(.6) rotate(var(--r));opacity:0}}.wedding-gate--opening .gate-heart{animation:.8s cubic-bezier(.4,0,.2,1) forwards seal-break}.wedding-gate--away .gate-letter{animation:.8s ease-in forwards envelope-away}.gate-seal-ring{z-index:3;border:3px solid var(--ink);border-radius:50%;width:56px;height:56px;animation:.8s ease-out forwards seal-ring;position:absolute;top:calc(50% - 150px);left:50%}.gate-burst{z-index:30;pointer-events:none;position:absolute;inset:0}.gate-particle{color:#8a6d5e;text-shadow:0 0 10px #f7e4c9;font-size:1.3rem;animation:1.4s cubic-bezier(.25,.46,.45,.94) forwards particle-burst;position:absolute;top:50%;left:50%}.gate-particle--1{--x:-290px;--y:-170px;--r:160deg}.gate-particle--2{--x:-190px;--y:-260px;--r:240deg}.gate-particle--3{--x:-60px;--y:-310px;--r:290deg}.gate-particle--4{--x:90px;--y:-280px;--r:125deg}.gate-particle--5{--x:245px;--y:-180px;--r:210deg}.gate-particle--6{--x:310px;--y:-45px;--r:300deg}.gate-particle--7{--x:280px;--y:150px;--r:160deg}.gate-particle--8{--x:150px;--y:265px;--r:250deg}.gate-particle--9{--x:0;--y:320px;--r:180deg}.gate-particle--10{--x:-150px;--y:250px;--r:300deg}.gate-particle--11{--x:-290px;--y:150px;--r:140deg}.gate-particle--12{--x:-340px;--y:10px;--r:280deg}.gate-particle--13{--x:-230px;--y:-50px;--r:190deg}.gate-particle--14{--x:220px;--y:60px;--r:320deg}.gate-particle--15{--x:70px;--y:-175px;--r:135deg}.gate-particle--16{--x:-85px;--y:175px;--r:250deg}.gate-particle--17{--x:160px;--y:-80px;--r:100deg}.gate-particle--18{--x:-160px;--y:55px;--r:230deg}@media (min-width:768px){.invite-sheet{max-width:900px}.invite-hero{padding-bottom:8rem}.invite-hero h2{gap:.75rem;font-size:46px}.hero-photo{max-width:520px;margin-top:2rem}.paper-card,.reception{max-width:560px}.album>div{gap:1.5rem;max-width:600px}.wedding-calendar{width:330px}.calendar-weekdays{font-size:11px}.calendar-days{font-size:13px}.calendar-days>span{min-height:34px}.calendar-day--wedding b{font-size:12px}.venue{max-width:440px;font-size:14px}.venue small{font-size:14px}footer{font-size:13px}}@media (max-width:520px){.gate-letter{min-height:500px}.gate-flower{height:9rem}.parents{gap:.45rem}.parents p{font-size:9px}.parents b{font-size:10px}.photo-modal{grid-template-columns:1fr 1fr}.photo-modal>img{grid-area:1/1/auto/-1}.photo-modal>button:not(.close-button){justify-self:center}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
