@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500&family=Outfit:wght@300;400;500&display=swap";*,:before,:after{box-sizing:border-box}html{overflow-x:hidden}body{color:#2e2b28;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f3eee6;min-width:320px;min-height:100svh;margin:0;overflow-x:hidden}#root{width:100%;max-width:100%;min-height:100svh;overflow-x:hidden}.invitation{--cream:#f3eee6;--cream-deep:#ebe4d8;--charcoal:#2e2b28;--charcoal-soft:#5c574f;--sage:#8b9a7c;--sage-soft:#8b9a7c38;--blush:#d4a8a4;--blush-soft:#d4a8a447;--serif:"Cormorant Garamond", "Times New Roman", Georgia, serif;--sans:"Outfit", "Segoe UI", Helvetica, sans-serif;--content-max:36rem;background:var(--cream);width:100%;max-width:100%;min-height:100svh;color:var(--charcoal);font-family:var(--sans);position:relative;overflow-x:hidden}.invitation:not(.invitation--open){height:100svh;overflow:hidden}.cover{z-index:10;box-sizing:border-box;background:radial-gradient(ellipse 80% 50% at 50% 0%, var(--blush-soft), transparent 55%), radial-gradient(ellipse 70% 45% at 50% 100%, var(--sage-soft), transparent 50%), linear-gradient(180deg, var(--cream) 0%, var(--cream-deep) 100%);opacity:1;visibility:visible;justify-content:center;align-items:center;width:100%;max-width:100%;min-height:100svh;padding:clamp(1.5rem,5vw,3rem) clamp(1.25rem,5vw,2rem);transition:transform .7s cubic-bezier(.4,0,.2,1),opacity .55s,visibility .55s;display:flex;position:fixed;inset:0;overflow:hidden;transform:translateY(0)}.cover--hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-100%)}.cover__botanical{z-index:0;opacity:.42;pointer-events:none;-webkit-user-select:none;user-select:none;width:clamp(150px,42vw,210px);max-width:46vw;height:auto;position:absolute}.cover__botanical--tl{top:0;left:0;transform:none}.cover__botanical--br{bottom:0;right:0;transform:scale(-1)}.cover__inner{z-index:1;text-align:center;flex-direction:column;align-items:center;width:min(100%,22rem);max-width:100%;display:flex;position:relative}.cover__studio{letter-spacing:.28em;text-transform:uppercase;color:var(--sage);margin:0;font-size:.7rem;font-weight:400}.cover__ornament{margin:1.35rem 0 1.5rem;line-height:1}.cover__sparkle{color:var(--blush);opacity:.85;font-size:.75rem;display:inline-block}.cover__guest-label{letter-spacing:.08em;color:var(--charcoal-soft);margin:0;font-size:.8rem;font-weight:300}.cover__guest-name{letter-spacing:.02em;color:var(--charcoal);margin:.35rem 0 0;font-size:1rem;font-weight:500}.cover__divider{background:linear-gradient(90deg, transparent, var(--sage), transparent);opacity:.7;width:2.5rem;height:1px;margin:1.75rem 0}.cover__names{font-family:var(--serif);letter-spacing:.01em;color:var(--charcoal);flex-direction:column;align-items:center;gap:.15rem;margin:0;font-size:clamp(2.75rem,11vw,3.75rem);font-style:italic;font-weight:500;line-height:1.05;display:flex}.cover__ampersand{color:var(--blush);letter-spacing:0;font-size:.45em;font-style:normal;font-weight:500}.cover__date{letter-spacing:.16em;text-transform:uppercase;color:var(--charcoal-soft);margin:1.25rem 0 0;font-size:.85rem;font-weight:300}.cover__button{border:1px solid var(--charcoal);color:var(--charcoal);font-family:var(--sans);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:0;margin-top:2.5rem;padding:.9rem 2.1rem;font-size:.75rem;font-weight:400;transition:background-color .25s,color .25s,border-color .25s}.cover__button:hover{background:var(--charcoal);color:var(--cream)}.cover__button:focus-visible{outline:2px solid var(--sage);outline-offset:3px}.invitation__content{width:100%;max-width:100%;overflow-x:hidden}.hero__inner,.countdown__inner,.couple__inner,.events__inner,.gift__inner{width:min(100%, var(--content-max));box-sizing:border-box;text-align:center;max-width:100%;margin-inline:auto;padding-inline:clamp(1.25rem,5vw,2rem)}.hero__eyebrow,.countdown__eyebrow,.couple__eyebrow,.events__eyebrow,.gift__eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--sage);margin:0;font-size:.7rem;font-weight:400}.hero__ornament,.countdown__ornament,.couple__ornament,.events__ornament,.gift__ornament{margin:1.1rem 0 1.35rem;line-height:1}.hero__sparkle,.countdown__sparkle,.couple__sparkle,.events__sparkle,.gift__sparkle{color:var(--blush);opacity:.85;font-size:.7rem;display:inline-block}.hero__divider,.countdown__divider,.couple__line,.events__divider,.events__card-line,.gift__divider,.gift__card-line{background:linear-gradient(90deg, transparent, var(--sage), transparent);opacity:.7;width:2.5rem;height:1px;margin-inline:auto}.hero{box-sizing:border-box;background:radial-gradient(ellipse 75% 45% at 50% 0%, var(--blush-soft), transparent 55%), radial-gradient(ellipse 65% 40% at 50% 100%, var(--sage-soft), transparent 50%), var(--cream);justify-content:center;align-items:center;min-height:100svh;padding-block:clamp(3rem,8vw,5rem);display:flex}.hero__names{font-family:var(--serif);letter-spacing:.01em;color:var(--charcoal);margin:0;font-size:clamp(2.5rem,10vw,3.75rem);font-style:italic;font-weight:500;line-height:1.1}.hero__date{letter-spacing:.18em;text-transform:uppercase;color:var(--charcoal-soft);margin:1.15rem 0 0;font-size:.8rem;font-weight:300}.hero__divider{margin-block:1.75rem}.hero__intro{letter-spacing:.02em;max-width:28rem;color:var(--charcoal-soft);margin:0 auto;font-size:clamp(.9rem,2.8vw,1rem);font-weight:300;line-height:1.75}.countdown{background:#d4a8a424;padding-block:clamp(3.5rem,9vw,5.5rem)}.countdown__heading{font-family:var(--serif);color:var(--charcoal);margin:0;font-size:clamp(2rem,7vw,2.75rem);font-style:italic;font-weight:500;line-height:1.15}.countdown__divider{margin-block:1.75rem}.countdown__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.35rem,2vw,1.25rem);width:100%;max-width:100%;display:grid}.countdown__unit{flex-direction:column;align-items:center;gap:.45rem;min-width:0;display:flex}.countdown__value{font-family:var(--serif);color:var(--charcoal);font-variant-numeric:tabular-nums;font-size:clamp(1.65rem,7.5vw,2.75rem);font-weight:500;line-height:1}.countdown__label{letter-spacing:.16em;text-transform:uppercase;color:var(--charcoal-soft);font-size:clamp(.58rem,2.2vw,.68rem);font-weight:400}.countdown__arrived{font-family:var(--serif);letter-spacing:.03em;color:var(--charcoal-soft);margin:0;font-size:clamp(1.15rem,4vw,1.4rem);font-style:italic;font-weight:500}.couple{background:linear-gradient(180deg, var(--cream) 0%, var(--cream-deep) 100%);padding-block:clamp(3.5rem,9vw,5.5rem) clamp(4rem,10vw,6rem)}.couple__profiles{flex-direction:column;align-items:center;gap:1.75rem;margin-top:.25rem;display:flex}.couple__card{box-sizing:border-box;background:#ffffff47;border:1px solid #8b9a7c59;width:100%;max-width:22rem;padding:1.75rem 1.5rem}.couple__name{font-family:var(--serif);color:var(--charcoal);margin:0;font-size:clamp(1.75rem,6vw,2.15rem);font-style:italic;font-weight:500;line-height:1.15}.couple__line{margin-block:1.1rem}.couple__parents{letter-spacing:.02em;color:var(--charcoal-soft);margin:0;font-size:.88rem;font-weight:300;line-height:1.55}.couple__ampersand{font-family:var(--serif);color:var(--blush);margin:0;font-size:1.35rem;font-weight:500;line-height:1}.events{background:var(--cream);padding-block:clamp(3.5rem,9vw,5.5rem) clamp(4rem,10vw,6rem)}.events__heading{font-family:var(--serif);color:var(--charcoal);margin:0;font-size:clamp(2rem,7vw,2.75rem);font-style:italic;font-weight:500;line-height:1.15}.events__date{letter-spacing:.1em;color:var(--charcoal-soft);margin:.85rem 0 0;font-size:.82rem;font-weight:300}.events__divider{margin-block:1.75rem}.events__cards{flex-direction:column;align-items:center;gap:1.25rem;width:100%;max-width:100%;display:flex}.events__card{border:1px solid #8b9a7c59;border-top:2px solid var(--sage);box-sizing:border-box;background:#8b9a7c1a;width:100%;max-width:22rem;padding:1.75rem 1.5rem}.events__card-title{font-family:var(--serif);color:var(--charcoal);margin:0;font-size:clamp(1.5rem,5vw,1.85rem);font-style:italic;font-weight:500;line-height:1.15}.events__card-line{margin-block:1rem}.events__time{letter-spacing:.06em;color:var(--charcoal);margin:0;font-size:.88rem;font-weight:400}.events__venue{letter-spacing:.02em;color:var(--charcoal);margin:.85rem 0 0;font-size:.95rem;font-weight:500}.events__address{letter-spacing:.02em;color:var(--charcoal-soft);margin:.35rem 0 0;font-size:.85rem;font-weight:300;line-height:1.55}.events__map-link{border:1px solid var(--charcoal);color:var(--charcoal);font-family:var(--sans);letter-spacing:.18em;text-transform:uppercase;background:0 0;justify-content:center;align-items:center;margin-top:2.25rem;padding:.9rem 2.1rem;font-size:.75rem;font-weight:400;text-decoration:none;transition:background-color .25s,color .25s,border-color .25s;display:inline-flex}.events__map-link:hover{background:var(--charcoal);color:var(--cream)}.events__map-link:focus-visible{outline:2px solid var(--sage);outline-offset:3px}.gift{background:linear-gradient(180deg, var(--cream-deep) 0%, var(--cream) 100%);padding-block:clamp(3.5rem,9vw,5.5rem) clamp(4rem,10vw,6rem)}.gift__heading{font-family:var(--serif);color:var(--charcoal);margin:0;font-size:clamp(2rem,7vw,2.75rem);font-style:italic;font-weight:500;line-height:1.15}.gift__divider{margin-block:1.5rem}.gift__description{letter-spacing:.02em;max-width:28rem;color:var(--charcoal-soft);margin:0 auto;font-size:clamp(.9rem,2.8vw,1rem);font-weight:300;line-height:1.75}.gift__tabs{grid-template-columns:1fr 1fr;gap:.5rem;width:100%;max-width:22rem;margin:2rem auto 0;display:grid}.gift__tab{color:var(--charcoal-soft);font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #8b9a7c73;padding:.75rem .85rem;font-size:.72rem;font-weight:400;transition:background-color .25s,color .25s,border-color .25s}.gift__tab:hover{border-color:var(--sage);color:var(--charcoal)}.gift__tab--active,.gift__tab:active{background:var(--sage);border-color:var(--sage);color:var(--cream)}.gift__tab:focus-visible{outline:2px solid var(--sage);outline-offset:3px}.gift__panel{width:100%;max-width:100%;margin-top:1.5rem}.gift__bank-card{border:1px solid #8b9a7c59;border-top:2px solid var(--sage);box-sizing:border-box;background:#fff6;width:100%;max-width:22rem;margin-inline:auto;padding:1.75rem 1.5rem}.gift__bank-name{letter-spacing:.22em;text-transform:uppercase;color:var(--sage);margin:0;font-size:.7rem;font-weight:400}.gift__account-number{font-family:var(--serif);letter-spacing:.06em;color:var(--charcoal);font-variant-numeric:tabular-nums;margin:.9rem 0 0;font-size:clamp(1.5rem,5.5vw,1.85rem);font-weight:500}.gift__card-line{margin-block:1rem}.gift__account-holder{letter-spacing:.1em;text-transform:uppercase;color:var(--charcoal-soft);margin:0;font-size:.85rem;font-weight:400}.gift__copy-button{border:1px solid var(--charcoal);color:var(--charcoal);font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:0 0;justify-content:center;align-items:center;margin-top:1.5rem;padding:.9rem 1.75rem;font-size:.72rem;font-weight:400;transition:background-color .25s,color .25s,border-color .25s;display:inline-flex}.gift__copy-button:hover{background:var(--charcoal);color:var(--cream)}.gift__copy-button:active{color:var(--cream);background:#1f1d1b;border-color:#1f1d1b}.gift__copy-button:focus-visible{outline:2px solid var(--sage);outline-offset:3px}.gift__copy-error{color:#8f5a57;max-width:22rem;margin:.85rem auto 0;font-size:.82rem;font-weight:300;line-height:1.5}.gift__qris{width:100%;max-width:22rem;margin-inline:auto}.gift__qris-placeholder{box-sizing:border-box;background:#8b9a7c14;border:1px dashed #8b9a7c8c;flex-direction:column;justify-content:center;align-items:center;gap:.65rem;min-height:14rem;padding:1.75rem 1.25rem;display:flex}.gift__qris-label{letter-spacing:.22em;text-transform:uppercase;color:var(--sage);margin:0;font-size:.72rem;font-weight:400}.gift__qris-hint{max-width:14rem;color:var(--charcoal-soft);margin:0;font-size:.88rem;font-weight:300;line-height:1.55}.gift__qris-warning{color:var(--charcoal-soft);margin:1rem 0 0;font-size:.78rem;font-weight:300;line-height:1.55}.music-toggle{z-index:20;width:44px;height:44px;color:var(--charcoal);cursor:pointer;background:#f3eee6f0;border:1px solid #2e2b2833;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background-color .25s,color .25s,border-color .25s,transform .25s;display:inline-flex;position:fixed;bottom:clamp(1rem,4vw,1.5rem);right:clamp(1rem,4vw,1.5rem);box-shadow:0 1px #8b9a7c2e}.music-toggle:hover{background:var(--charcoal);border-color:var(--charcoal);color:var(--cream)}.music-toggle:active{color:var(--cream);background:#1f1d1b;border-color:#1f1d1b}.music-toggle:focus-visible{outline:2px solid var(--sage);outline-offset:3px}.music-toggle__icon{fill:currentColor;width:18px;height:18px}@media (width>=768px){.cover__botanical{opacity:.4;width:clamp(220px,24vw,300px);max-width:30vw}.cover__inner{width:min(100%,26rem)}.cover__studio{font-size:.75rem}.cover__guest-name{font-size:1.05rem}.couple__profiles{flex-direction:row;justify-content:center;align-items:stretch;gap:1.25rem}.couple__card{flex:1 1 0;max-width:16.5rem}.couple__ampersand{align-self:center;font-size:1.5rem}.events__cards{flex-direction:row;justify-content:center;align-items:stretch;gap:1.25rem}.events__card{flex:1 1 0;max-width:16.5rem}}@media (prefers-reduced-motion:reduce){.cover{transition:none}.cover--hidden{transform:none}.cover__button,.events__map-link,.gift__tab,.gift__copy-button,.music-toggle{transition:none}}
