@import"https://fonts.googleapis.com/css2?family=Playfair+Display&display=swap";@import"https://fonts.googleapis.com/css2?family=Ballet&display=swap";@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&display=swap";:root{--color-ink: #000;--color-ivory: #fffff0;--color-charcoal: #000;--color-muted: #000;--font-serif: "Playfair Display", serif;--font-script: "Ballet", cursive;--font-body: "Cormorant Garamond", "Playfair Display", serif;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 18px;--radius-pill: 999px;--shadow-soft: none;--track-wide: .22em}.u-center{text-align:center}.u-script{font-family:var(--font-script);font-weight:500}.u-caps,.u-caps-tight{letter-spacing:.02em;text-transform:none}.u-title{font-family:var(--font-serif);letter-spacing:.02em;text-transform:none}html,body{margin:0;padding:0;font-family:var(--font-serif);background-color:var(--color-ink);color:var(--color-ink);overscroll-behavior:none;-webkit-user-select:none;user-select:none;min-height:100%}*,*:before,*:after{-webkit-user-select:none;user-select:none}h1{margin-bottom:2rem;font-size:2rem;color:var(--color-ivory)}h2{margin-bottom:1.5rem;font-size:1.5rem;color:var(--color-ivory)}input{padding:.75rem 1rem;margin:1rem 0;font-size:1.25rem;width:80%;border-radius:8px;font-family:var(--font-serif);text-align:center;background-color:var(--color-ivory);color:var(--color-ink);outline:none;border:1px solid var(--color-ink);transition:border .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}input::placeholder{color:var(--color-muted);font-style:italic}button{padding:.75rem 2rem;font-size:1rem;background:var(--color-ink);color:var(--color-ivory);border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-serif);margin-top:1rem;-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-width:220px}button:hover{background:var(--color-ink)}button.loading{display:inline-flex;align-items:center;justify-content:center}.spinner{border:4px solid var(--color-ink);border-top-color:var(--color-ivory);background:var(--color-ink);border-radius:50%;width:36px;height:36px;-webkit-animation:spin .8s linear infinite;animation:spin .8s linear infinite;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}button .spinner{width:16px;height:16px;border:2px solid var(--color-ivory);border-top-color:var(--color-ink);background:var(--color-ink);border-radius:50%;margin-left:.5rem;-webkit-animation:spin .7s linear infinite;animation:spin .7s linear infinite;transform-origin:center center;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.loading-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--color-ivory);-webkit-backdrop-filter:none;backdrop-filter:none;z-index:100}@-webkit-keyframes spin{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.message{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .75rem;border-radius:6px;font-weight:600;margin-bottom:1rem;font-size:1rem;line-height:1.2}.message-text{flex:1 1 auto;display:flex;align-items:center;line-height:1.2;word-break:break-word}.close-message{display:inline-flex;align-items:center;justify-content:center;align-self:center;font-size:1em;line-height:1.2;padding:0 4px;margin:0;background:transparent;border:none;color:inherit;cursor:pointer;transition:font-weight .08s ease,color .12s ease;min-width:0;height:auto;box-sizing:content-box}.close-message:hover,.close-message:focus{background:transparent;color:inherit;font-weight:700;outline:none;box-shadow:none}.message.error{color:var(--color-ink);background:var(--color-ivory);border:1px solid var(--color-ink)}.menu-button{position:fixed;top:1.5rem;right:1.5rem;z-index:110;margin:0;padding:.25rem .5rem;min-width:0;width:auto;height:auto;background:none;border:none;border-radius:0;font-size:2rem;line-height:1;cursor:pointer;color:var(--color-ivory);outline:none;box-shadow:none}.menu-button:hover,.menu-button:focus,.menu-button:focus-visible,.menu-button:active{background:transparent;color:var(--color-ivory);outline:none;box-shadow:none}.top-bar{position:relative;display:flex;align-items:center;justify-content:center;gap:1rem;padding:.75rem 1.5rem;background:var(--color-ivory);border-bottom:1px solid var(--color-ink)}.top-bar-logo{height:48px;width:auto;display:block}.top-bar-title{font-size:1.15rem;color:var(--color-ink)}.menu-button.in-bar{position:absolute;right:1.5rem;top:50%;transform:translateY(-50%);color:var(--color-ink)}.menu-button.in-bar:hover,.menu-button.in-bar:focus,.menu-button.in-bar:focus-visible,.menu-button.in-bar:active{color:var(--color-ink)}.side-menu{position:fixed;top:0;right:0;height:100vh;width:300px;max-width:100%;background-color:var(--color-ivory);box-shadow:none;transform:translate(100%);transition:transform .3s ease-in-out;z-index:99;padding:2rem;box-sizing:border-box}.side-menu.open{transform:translate(0)}.side-menu ul{list-style:none;padding:0}.side-menu li{margin-bottom:1.5rem}.side-menu a{text-decoration:none;color:var(--color-ink);font-size:1.2rem}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;min-height:100svh;min-height:100dvh;padding:2rem 0;box-sizing:border-box;overflow:hidden;position:fixed;inset:0;width:100%;background:url(./login-background.CHgxaypC.png) no-repeat center center;background-size:cover;background-position:center;background-repeat:no-repeat}.panel,.rsvp-page .banner{background:var(--color-ivory);color:var(--color-ink);border:1px solid var(--color-ink)}.panel{border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:2rem}.login-box{text-align:center;max-width:720px;width:min(720px,92%);font-family:var(--font-serif);display:flex;flex-direction:column;align-items:center;position:relative;box-sizing:border-box;margin:0 auto;max-height:calc(100vh - 4rem);overflow:auto}.button-list{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;max-height:40vh;overflow:auto;padding:.25rem}.black-text{color:var(--color-ink)}.email-instructions{margin-top:2rem;font-size:1.25rem;font-weight:500;color:var(--color-ink);line-height:1.6;text-align:center;display:flex;justify-content:center;align-items:center;height:150px;padding:0 1rem}.confirmation,.phone-confirmation{display:flex;justify-content:space-between;gap:2rem;margin-top:1rem}.confirmation button,.phone-confirmation button{width:100px}.code-inputs{display:flex;gap:.75rem;justify-content:center;margin:1.25rem 0 1.5rem}.code-input{width:3.6rem;height:3.6rem;text-align:center;font-size:1.75rem;font-weight:700;border-radius:8px;border:1px solid var(--color-ink);background:var(--color-ivory);color:var(--color-ink);padding:0;outline:none;-webkit-appearance:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center}@media (max-width: 600px){.login-container{align-items:flex-start;padding:1.5rem .75rem 2rem;min-height:100dvh}.login-box{width:100%;margin:0;max-height:none}.confirmation,.phone-confirmation{justify-content:center;flex-wrap:wrap;gap:.75rem}.confirmation button,.phone-confirmation button{width:min(140px,44vw)}}.code-input:focus{border-color:var(--color-ink);box-shadow:none}.landing{--nav-height: 80px;--logo-width: 15%;--logo-gap: calc(var(--logo-width) + 40px)}.landing .hero{position:relative;width:100%;margin:0}.landing .hero-image{width:100%;height:auto;display:block}.landing .logo{position:absolute;bottom:calc(-1 * var(--nav-height) / 2);left:50%;transform:translate(-50%,50%);width:var(--logo-width);height:auto}.landing .navigation{display:grid;grid-template-columns:1fr var(--logo-gap) 1fr;align-items:center;height:var(--nav-height);padding:0 20px;background:var(--color-ivory)}.landing .nav-group{display:flex;gap:2rem}.landing .nav-group.left{justify-self:end}.landing .nav-group.right{justify-self:start}.landing .navigation a{text-decoration:none;color:var(--color-ink);font-size:1.2rem;font-weight:700;transition:color .3s}.landing .logo-spacer{width:var(--logo-gap);height:1px}.landing .intro{margin:calc(var(--content-offset) + 1rem) auto 0;padding:1.5rem 1rem 2rem;text-align:center;color:var(--color-ivory);font-family:var(--font-serif)}.landing .intro-content{width:min(90vw,1000px);margin:0 auto}.landing .intro h1{margin:0 auto;font-size:clamp(1.2rem,2.3vw,1.9rem)}.landing .intro .names{display:block;font-family:var(--font-script);font-size:clamp(3.8rem,8vw,7rem);line-height:1.05;margin-top:.35rem}.landing .details{position:relative;display:flex;margin:2.75rem auto 0;width:100%}.landing .detail{display:flex;align-items:center;position:relative;text-align:center}.landing .detail.left{justify-content:flex-end;padding-right:1.5rem;width:50%}.landing .detail.right{justify-content:flex-start;padding-left:1.5rem;width:50%}.landing .details:before{content:"";position:absolute;left:50%;top:8%;bottom:8%;width:2px;background:var(--color-ivory);transform:translate(-50%)}.landing .detail span{margin:0;font-size:clamp(2.6rem,4.5vw,3.8rem);font-family:var(--font-script);line-height:1.35}.wedding-party-page{padding:2rem;font-family:var(--font-serif);color:var(--color-ivory);min-height:100vh;display:flex;flex-direction:column;align-items:center}.wedding-party-page .party-container{display:flex;flex-direction:column;gap:2rem;max-width:900px;margin:0 auto}.wedding-party-page .person{display:flex;align-items:center;gap:2rem}.wedding-party-page .img-wrapper{width:250px;overflow:visible;flex-shrink:0}.wedding-party-page img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:50%;display:block}.wedding-party-page .info{max-width:600px}.wedding-party-page .name-title{display:flex;align-items:center;gap:2rem}.wedding-party-page .info h2{font-size:3rem;margin:0;color:var(--color-ivory);font-family:var(--font-script)}.wedding-party-page .info h3{font-size:1.5rem;margin:0;color:var(--color-ivory);font-family:var(--font-serif)}.wedding-party-page .info p{margin:.5rem 0 0;line-height:1.5;color:var(--color-ivory);font-size:1rem}.registry-page header{background-color:var(--color-ivory);padding:1rem;text-align:center;font-family:var(--font-script);font-size:2rem;color:var(--color-ink)}.registry-page h1{text-align:center;font-family:var(--font-serif);margin-top:2rem;color:var(--color-ink)}.registry-page iframe{display:block;width:100%;max-width:800px;height:100vh;margin:2rem auto;border:none}.rsvp-page{padding:2.5rem 1rem 4rem;display:flex;justify-content:center;font-family:var(--font-serif);font-size:1.05rem}.rsvp-page .paper{width:100%;max-width:920px;box-shadow:none;padding:2rem}.rsvp-page .paper-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.rsvp-page .title{text-align:center;font-size:3rem;margin:0;letter-spacing:.01em;color:var(--color-ink)}.rsvp-page .subtitle{text-align:center;margin:.35rem 0 0;font-size:1.1rem;color:var(--color-ink)}.rsvp-page .header-actions{display:flex;flex-direction:column;align-items:center;gap:.35rem}.rsvp-page .submit{border:1px solid var(--color-ink);background:var(--color-ink);color:var(--color-ivory);border-radius:var(--radius-pill);padding:.7rem 1.35rem;cursor:pointer;font-weight:600;font-size:1.05rem}.rsvp-page .submit:disabled{opacity:.75;cursor:not-allowed}.rsvp-page .submit.wide{width:100%}.rsvp-page .dirty{font-size:1.05rem;color:var(--color-ink);text-align:center}.rsvp-page .banner{margin-top:.9rem;padding:.75rem .9rem;font-size:1.15rem;text-align:center}.rsvp-page .rule{margin:1.5rem 0;height:1px;background:var(--color-ink)}.rsvp-page .thin-rule{margin-top:1.35rem;height:1px;background:var(--color-ink)}.rsvp-page .top-details{margin-top:1rem;padding:1.35rem 1.25rem}.rsvp-page .top-details-head{text-align:center;margin-bottom:1rem}.rsvp-page .top-details-script{font-size:2.6rem;font-weight:500;line-height:1.05;color:var(--color-ink)}.rsvp-page .top-details-sub{margin-top:.35rem;font-size:1rem;color:var(--color-ink)}.rsvp-page .top-details-row{display:grid;grid-template-columns:repeat(var(--cols, 3),minmax(0,1fr));gap:0;align-items:start}.rsvp-page .top-col{padding:.25rem 1rem;min-height:1px;border-left:1px solid var(--color-ink)}.rsvp-page .top-col.first{border-left:none}.rsvp-page .top-name{text-align:center;letter-spacing:.04em;text-transform:none;font-size:1.05rem;font-weight:650;margin-bottom:.6rem}.rsvp-page .top-line{text-align:center;font-size:1.2rem;margin:.25rem 0}.rsvp-page .caps{font-size:.95rem}.rsvp-page .top-note{text-align:center;margin-top:.55rem;font-size:1.15rem}.rsvp-page .rsvp-card{display:flex;flex-direction:column;gap:.5rem}.rsvp-page .guest-name{text-align:center;font-size:2.6rem;margin:1.5rem 0 1rem;letter-spacing:.01em;color:var(--color-ink)}.rsvp-page .guest-name-edit{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin:1.5rem 0 1rem}.rsvp-page .guest-name-input{width:min(240px,80vw);margin:0;font-size:2.6rem;font-family:var(--font-script)}.rsvp-page .guest-lines{display:flex;flex-direction:column;gap:1.05rem}.rsvp-page .rsvp-line{margin:0 auto;max-width:640px;width:100%}.rsvp-page .rsvp-line-title{text-align:center;font-size:1.05rem;letter-spacing:.04em;text-transform:none;color:var(--color-ink);margin-bottom:.65rem}.rsvp-page .rsvp-choices{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.9rem;justify-items:center}.rsvp-page .rsvp-divider{width:44px;height:1px;background:var(--color-ink)}.rsvp-page .rsvp-choice{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-size:1.2rem;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--color-ink)}.rsvp-page .box{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:1px solid var(--color-ink);background:var(--color-ivory);display:inline-grid;place-content:center;margin:0;cursor:pointer}.rsvp-page .box:after{content:"";width:9px;height:5px;border-left:2px solid var(--color-ink);border-bottom:2px solid var(--color-ink);transform:rotate(-45deg);opacity:0}.rsvp-page .box:checked:after{opacity:1}.rsvp-page .rsvp-locked{text-align:center;font-size:1.2rem;color:var(--color-ink)}.rsvp-page .muted-line .rsvp-line-title{opacity:.7}.rsvp-page .dietary-block{margin-top:.25rem}.rsvp-page .dietary-input{width:100%;max-width:640px;display:block;margin:.25rem auto 0;border:1px solid var(--color-ink);background:var(--color-ivory);padding:.75rem 1rem;text-align:center;font-size:1.25rem;color:var(--color-ink);line-height:1.2;box-sizing:border-box;border-radius:8px;font-family:var(--font-serif)}.rsvp-page .dietary-input:focus{outline:none}.rsvp-page .footer-actions{margin-top:1.6rem}.rsvp-page .locked-note{margin-top:1.6rem;text-align:center;font-size:1.05rem;color:var(--color-ink)}.event-detail-page{min-height:calc(100vh - 80px);background:var(--color-ivory);color:var(--color-ink)}.event-hero{padding:3.5rem 1.5rem 2.5rem;text-align:center;background:var(--color-ink);color:var(--color-ivory);border-bottom:1px solid var(--color-ink)}.event-hero-inner{max-width:900px;margin:0 auto}.event-eyebrow{font-size:.95rem;letter-spacing:.12em;margin:0 0 .75rem;font-family:var(--font-serif);color:var(--color-ivory)}.event-title{margin:0;font-size:clamp(2.6rem,5vw,4rem);font-family:var(--font-script);color:var(--color-ivory)}.event-subtitle{margin:.6rem 0 0;font-size:1.2rem;font-family:var(--font-serif);color:var(--color-ivory)}.event-body{max-width:980px;margin:0 auto;padding:2.5rem 1.5rem 4rem}.event-loading{text-align:center;font-size:1.2rem}.event-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.event-card{background:var(--color-ivory);border:1px solid var(--color-ink);border-radius:16px;padding:1.5rem;box-shadow:none}.event-card h2{margin:0 0 .75rem;font-size:1.25rem;font-family:var(--font-serif);color:var(--color-ink)}.event-card p{margin:0;font-size:1.15rem}.event-note,.event-extra,.schedule-block{margin-top:2.25rem;padding:1.5rem 1.75rem;background:var(--color-ivory);border:1px solid var(--color-ink);border-radius:16px}.event-note h3,.event-extra h3,.schedule-block h2{margin:0 0 .6rem;font-size:1.4rem;font-family:var(--font-serif)}.event-note p,.event-extra p,.schedule-block p{margin:0;font-size:1.15rem;line-height:1.6}@media (max-width: 900px){.event-cards{grid-template-columns:1fr}}@media (max-width: 980px){.rsvp-page .top-details-row{grid-template-columns:1fr}.rsvp-page .top-col{border-left:none;border-top:1px solid var(--color-ink);padding:1rem .25rem}.rsvp-page .top-col.first{border-top:none;padding-top:.25rem}}@media (max-width: 860px){.rsvp-page .paper{padding:1.5rem}.rsvp-page .paper-header{flex-direction:column;align-items:stretch}.rsvp-page .header-actions{align-items:stretch}.rsvp-page .submit{width:100%}.rsvp-page .rsvp-choices{grid-template-columns:1fr;gap:.6rem}.rsvp-page .rsvp-divider{display:none}}@media (max-width: 720px){.landing .nav-group,.landing .logo-spacer{display:none}}@media (max-width: 700px){.wedding-party-page .person{flex-direction:column;text-align:center}}@media (max-width: 640px){.side-menu{width:100%;padding:3rem 2rem}}@media (max-width: 480px){.code-inputs{gap:.5rem;margin:1rem 0}.code-input{width:2.6rem;height:2.6rem;font-size:1.15rem;font-weight:700}}
