@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Montserrat:wght@300;400;500;600&display=swap";
:root{--lavender:#b69bd8;--lavender-light:#d9c8ed;--ink:#30303a;--muted:#777682;--ivory:#fbfafc}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ivory);color:var(--ink);margin:0;font-family:Montserrat,sans-serif}button{font:inherit}.hero{background:url(/wedding-sunset.png) 50%/cover no-repeat;justify-content:center;align-items:center;height:clamp(560px,56.25vw,760px);display:flex;position:relative;overflow:hidden}.hero-overlay{background:linear-gradient(#261a301f,#34233b1a 48%,#211b2b38);position:absolute;inset:0}.hero-content{z-index:1;text-align:center;color:#fff;text-shadow:0 1px 18px #23192a38;width:min(1050px,92vw);padding:35px 20px 28px;position:relative}.eyebrow,.section-eyebrow,.date,.countdown-item span,.scroll-hint,.menu-grid button span:last-child{letter-spacing:.24em;font-family:Montserrat,sans-serif}.eyebrow{margin-bottom:6px;font-size:11px;font-weight:500}.ornament,.heart-divider,.welcome-ornament{justify-content:center;align-items:center;gap:10px;display:flex}.ornament span:not(.lavender-leaf),.heart-divider span:not(:nth-child(2)),.welcome-ornament span:not(:nth-child(2)){background:#ffffffa6;width:58px;height:1px}.lavender-leaf,.heart-divider span:nth-child(2),.welcome-ornament span:nth-child(2){color:var(--lavender-light);font-size:18px}.hero h1{letter-spacing:-.025em;margin:5px 0 2px;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(58px,7.2vw,100px);font-weight:400;line-height:.92}.heart-divider{margin:13px auto 18px}.heart-divider span:not(:nth-child(2)){width:45px}.hero-message{max-width:720px;margin:0 auto 20px;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(19px,1.9vw,25px);line-height:1.2}.date{justify-content:center;align-items:center;gap:13px;margin:0 auto 18px;font-size:11px;font-weight:500;display:flex}.date span{color:var(--lavender-light);font-size:15px}.countdown{justify-content:center;margin:0 auto 24px;display:flex}.countdown-item{border-right:1px solid #fff6;width:135px;padding:0 20px}.countdown-item:last-child{border-right:0}.countdown-item strong{color:var(--lavender-light);text-shadow:0 2px 18px #37254359;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(38px,3.5vw,52px);font-weight:500;line-height:1;display:block}.countdown-item span{margin-top:6px;font-size:9px;font-weight:500;display:block}.presence-button{color:#565360;cursor:pointer;letter-spacing:.13em;background:#fffffff0;border:1px solid #fffc;border-radius:999px;align-items:center;gap:10px;padding:13px 27px;font-size:11px;font-weight:500;transition:transform .18s,background .18s;display:inline-flex;box-shadow:0 10px 35px #23182b2e}.presence-button span{color:var(--lavender);font-size:20px;line-height:0}.presence-button:hover{background:#fff;transform:translateY(-2px)}.scroll-hint{color:#ffffffe6;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:7px;margin:20px auto 0;font-size:9px;font-weight:400;display:flex}.scroll-hint b{color:var(--lavender-light);font-size:21px;font-weight:300;line-height:.7}.welcome{text-align:center;background:radial-gradient(circle at 50% 10%,#d5c5e838,#0000 35%),linear-gradient(#fcfbfd,#f8f6fb);justify-content:center;align-items:center;min-height:360px;padding:58px 24px 54px;display:flex}.welcome-inner{width:min(1050px,100%)}.section-eyebrow{color:var(--lavender);font-size:10px;font-weight:600}.small-heart{color:var(--lavender);margin:6px 0 1px;font-size:12px}.welcome h2{color:#2f3039;margin:0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(44px,4.5vw,62px);font-weight:400;line-height:.98}.welcome h2 em{color:var(--lavender);font-weight:500}.welcome-text{color:#777783;margin:18px auto 13px;font-size:12px;line-height:1.6}.welcome-ornament{margin:8px auto 21px}.welcome-ornament span:not(:nth-child(2)){background:#b69bd88c;width:38px}.menu-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.menu-grid button{color:#62616c;cursor:pointer;background:#fff6;border:1px solid #b69bd83d;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:65px;transition:all .18s;display:flex}.menu-grid button:hover{background:#ffffffbf;border-color:#b69bd899;transform:translateY(-2px)}.menu-icon{color:var(--lavender);font-size:22px;line-height:1}.menu-grid button span:last-child{font-size:9px;font-weight:500}.placeholder-section{min-height:180px;color:var(--lavender);letter-spacing:.22em;background:#fff;border-top:1px solid #b69bd814;place-items:center;font-size:11px;display:grid}@media (max-width:700px){.hero{background-position:57%;height:100svh;min-height:620px}.hero-content{padding:35px 14px 25px}.hero h1{font-size:clamp(50px,15vw,80px)}.hero-message{font-size:19px}.date{letter-spacing:.17em;gap:7px;font-size:9px}.countdown-item{width:25vw;padding:0 7px}.countdown-item strong{font-size:clamp(30px,9vw,46px)}.countdown-item span{letter-spacing:.14em;font-size:7px}.presence-button{padding:13px 21px;font-size:10px}.scroll-hint{margin-top:18px}.welcome{padding:52px 18px 48px}.welcome-text{font-size:12px}.desktop-break{display:none}.menu-grid{grid-template-columns:repeat(2,1fr);gap:9px}.menu-grid button{min-height:68px}.placeholder-section{min-height:150px}}.presence-page{background:radial-gradient(circle at 50% 10%,#d5c5e840,#0000 40%),linear-gradient(#fcfbfd,#f8f6fb);justify-content:center;align-items:center;min-height:100svh;padding:50px 20px;display:flex}.presence-container{text-align:center;width:min(620px,100%)}.presence-container h1{color:#2f3039;margin:8px 0 18px;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(48px,6vw,70px);font-weight:400;line-height:.95}.presence-container h1 em{color:var(--lavender);font-weight:500}.presence-container p{color:var(--muted);margin:0 auto 28px;font-size:13px;line-height:1.7}.code-form{flex-direction:column;align-items:center;width:min(360px,100%);margin:0 auto;display:flex}.code-form label{color:var(--lavender);letter-spacing:.2em;margin-bottom:8px;font-family:Montserrat,sans-serif;font-size:9px;font-weight:600}.code-form input{width:100%;height:58px;color:var(--ink);text-align:center;letter-spacing:.35em;background:#fffc;border:1px solid #b69bd866;border-radius:4px;outline:none;font-family:Montserrat,sans-serif;font-size:24px;transition:border-color .2s,box-shadow .2s}.code-form input:focus{border-color:var(--lavender);box-shadow:0 0 0 3px #b69bd81f}.code-form button{background:var(--lavender);color:#fff;cursor:pointer;letter-spacing:.18em;border:1px solid #b69bd899;border-radius:999px;width:100%;margin-top:14px;padding:15px 24px;font-size:10px;font-weight:600;transition:transform .18s,opacity .18s}.code-form button:hover{opacity:.92;transform:translateY(-2px)}.family-code{width:min(360px,100%);color:var(--muted);letter-spacing:.15em;background:#fff9;border:1px solid #b69bd840;margin:30px auto;padding:20px;font-size:10px}.family-code strong{color:var(--lavender);letter-spacing:.12em;margin-top:8px;font-family:Cormorant Garamond,Georgia,serif;font-size:38px;display:block}.presence-ornament{justify-content:center;align-items:center;gap:10px;margin:35px auto 22px;display:flex}.presence-ornament span:not(:nth-child(2)){background:#b69bd873;width:45px;height:1px}.presence-ornament span:nth-child(2){color:var(--lavender);font-size:18px}.back-button{color:#9996a1;cursor:pointer;letter-spacing:.12em;background:0 0;border:0;font-size:9px}.presence-page{justify-content:center;min-height:100vh;padding:70px 20px;display:flex}.presence-container{text-align:center;width:100%;max-width:760px}.presence-container h1{margin:15px 0 18px}.presence-container p{line-height:1.7}.small-heart{margin:15px 0;font-size:22px}.code-form{text-align:left;max-width:360px;margin:40px auto 0}.code-form label,.guest-section label{letter-spacing:.18em;margin-bottom:10px;font-size:11px;font-weight:600;display:block}.code-form input,.allergy-input{box-sizing:border-box;width:100%;color:inherit;background:#ffffff0d;border:1px solid #fff3;border-radius:8px;outline:none;padding:15px 16px}.code-form input{text-align:center;letter-spacing:.35em;font-size:22px}.code-form button,.save-presence-button{cursor:pointer;letter-spacing:.1em;border:0;border-radius:8px;width:100%;margin-top:16px;padding:15px 20px;font-weight:700}.code-form button:disabled,.save-presence-button:disabled{opacity:.55;cursor:wait}.family-code{letter-spacing:.15em;text-transform:uppercase;background:#ffffff0d;border-radius:10px;flex-direction:column;gap:7px;margin:25px auto 35px;padding:15px 25px;font-size:11px;display:inline-flex}.family-code strong{letter-spacing:.2em;font-size:22px}.welcome-message{max-width:580px;margin:0 auto}.guests-list{text-align:left;flex-direction:column;gap:22px;margin-top:20px;display:flex}.guest-card{background:#ffffff09;border:1px solid #ffffff1f;border-radius:14px;padding:26px}.guest-header h2{margin:0 0 5px;font-size:22px}.guest-type-label{opacity:.65;text-transform:uppercase;letter-spacing:.12em;font-size:11px}.guest-section{margin-top:24px}.choice{min-width:100px;color:inherit;cursor:pointer;letter-spacing:.08em;background:0 0;border:1px solid #ffffff29;border-radius:7px;flex:1;padding:12px 14px;font-size:11px;font-weight:600}.choice.active{background:#ffffff1f;border-color:currentColor}.allergy-input{margin-top:12px}.presence-error{color:#e57373;margin-top:15px;font-size:13px!important}.presence-success{margin:22px 0;font-size:15px!important}.save-presence-button{margin-top:35px}.change-family-button{color:inherit;opacity:.7;cursor:pointer;letter-spacing:.1em;background:0 0;border:0;margin-top:15px;font-size:11px}.presence-ornament{opacity:.6;justify-content:center;align-items:center;gap:15px;margin:50px 0 25px;display:flex}.presence-ornament span:first-child,.presence-ornament span:last-child{background:currentColor;width:80px;height:1px}.back-button{color:inherit;opacity:.7;cursor:pointer;letter-spacing:.08em;background:0 0;border:0;font-size:11px}@media (max-width:600px){.presence-page{padding:45px 15px}.guest-card{padding:20px 16px}.choice{min-width:calc(50% - 8px)}.presence-container h1{font-size:38px}}.presence-page{color:#29252b;background:radial-gradient(circle at top,#cdbcdc29,#0000 38%),#faf9f7;min-height:100vh;padding:90px 24px 70px}.presence-container{text-align:center;width:min(100%,860px);margin:0 auto}.presence-container .section-eyebrow{color:#9f8aad;letter-spacing:.28em;margin-bottom:22px;font-size:11px;font-weight:600}.small-heart{color:#b9a1c8;margin-bottom:24px;font-size:22px;line-height:1}.presence-container h1{letter-spacing:-.035em;color:#2b272c;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(42px,7vw,68px);font-weight:400;line-height:.98}.presence-container h1 em{color:#b09abb;font-style:italic;font-weight:400}.presence-welcome{font-size:clamp(46px,8vw,76px)!important}.presence-family-name{color:#82718c;letter-spacing:.015em;margin-top:18px;font-family:Georgia,Times New Roman,serif;font-size:clamp(20px,3vw,28px)}.family-welcome-message{color:#746d74;max-width:580px;margin:18px auto 0;font-size:15px;line-height:1.7}.presence-intro{color:#777177;max-width:560px;margin:28px auto 50px;font-size:14px;line-height:1.8}.presence-intro span{color:#a796a9}.code-form{background:#ffffffb8;border:1px solid #b6a1bf47;width:min(100%,430px);margin:45px auto 0;padding:34px;box-shadow:0 18px 55px #46384812}.code-form label{color:#8e7c96;letter-spacing:.2em;margin-bottom:12px;font-size:10px;font-weight:600;display:block}.code-form input{box-sizing:border-box;text-align:center;letter-spacing:.28em;color:#302b31;background:0 0;border:0;border-bottom:1px solid #d9cedd;outline:none;width:100%;padding:12px 5px;font-family:Georgia,Times New Roman,serif;font-size:30px}.code-form input:focus{border-bottom-color:#aa91b7}.code-form input::placeholder{color:#d0c6d2}.presence-primary-button,.presence-save-button{cursor:pointer;color:#fff;letter-spacing:.19em;background:#b29abd;border:0;padding:16px 26px;font-size:10px;font-weight:600;transition:transform .2s,background .2s,opacity .2s}.presence-primary-button{width:100%;margin-top:28px}.presence-primary-button:hover,.presence-save-button:hover{background:#9f84ad;transform:translateY(-1px)}.presence-primary-button:disabled,.presence-save-button:disabled{opacity:.55;cursor:wait;transform:none}.presence-error{color:#a15e67;margin:15px 0 0;font-size:12px;line-height:1.5}.presence-error-box{background:#a9636f12;border:1px solid #a9636f26;margin:25px auto;padding:15px 18px}.guests-list{text-align:left;flex-direction:column;gap:22px;width:100%;display:flex}.guest-card{background:#ffffffd1;border:1px solid #b9a5c040;gap:25px;padding:34px 35px;transition:opacity .25s,transform .25s;display:flex;position:relative;box-shadow:0 18px 50px #4537470e}.guest-card:hover{transform:translateY(-1px)}.guest-card.guest-not-attending{opacity:.7}.guest-number{color:#c0acc7;letter-spacing:.08em;flex:none;padding-top:4px;font-family:Georgia,Times New Roman,serif;font-size:13px}.guest-info{flex:1;min-width:0}.guest-info h2{color:#302b31;margin:0 0 25px;font-family:Georgia,Times New Roman,serif;font-size:clamp(25px,4vw,32px);font-weight:400}.choice-group{margin-top:22px}.choice-label{color:#a18da8;letter-spacing:.18em;margin-bottom:9px;font-size:9px;font-weight:600}.choice-row{flex-wrap:wrap;gap:8px;display:flex}.choice{color:#81767f;cursor:pointer;letter-spacing:.09em;background:0 0;border:1px solid #ddd3e0;min-width:105px;padding:10px 15px;font-size:10px;transition:border-color .2s,background .2s,color .2s}.choice:hover{border-color:#bca7c4}.choice.active{color:#fff;background:#b39bbd;border-color:#b39bbd}.menu-kids{color:#907e97;letter-spacing:.09em;background:#f7f3f8;border:1px solid #d9cedd;align-items:center;gap:9px;padding:10px 15px;font-size:10px;display:inline-flex}.menu-kids span{color:#b39bbd}.allergy-input{box-sizing:border-box;resize:vertical;color:#4b454c;background:#fcfbfc;border:1px solid #ddd3e0;outline:none;width:100%;min-height:80px;margin-top:12px;padding:12px 14px;font-family:inherit;font-size:13px;line-height:1.5}.allergy-input:focus{border-color:#b39bbd}.allergy-input::placeholder{color:#b5adb6}.presence-save-button{min-width:280px;margin-top:38px}.presence-success{color:#77687d;background:#b49dbe17;border:1px solid #b49dbe33;flex-direction:column;align-items:center;gap:5px;margin:30px auto 0;padding:25px;display:flex}.presence-success strong{color:#5c4e61;font-family:Georgia,Times New Roman,serif;font-size:25px;font-weight:400}.presence-success span{font-size:12px}.success-heart{color:#b39bbd;margin-bottom:5px;font-size:23px}.presence-ornament{color:#b7a2c0;justify-content:center;align-items:center;gap:18px;margin:55px auto 30px;display:flex}.presence-ornament span:first-child,.presence-ornament span:last-child{background:#ded5e0;width:65px;height:1px;display:block}.back-button{color:#998c9d;cursor:pointer;letter-spacing:.15em;background:0 0;border:0;padding:10px;font-size:9px;transition:color .2s}.back-button:hover{color:#806b87}.presence-loading{padding-top:18vh}.presence-loader{justify-content:center;gap:7px;margin:35px 0 25px;display:flex}.presence-loader span{background:#b39bbd;border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite presencePulse}.presence-loader span:nth-child(2){animation-delay:.15s}.presence-loader span:nth-child(3){animation-delay:.3s}.presence-loading p{color:#81777f;font-size:13px;line-height:1.7}@keyframes presencePulse{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}@media (max-width:600px){.presence-page{padding:55px 15px 45px}.presence-container h1{font-size:42px}.presence-welcome{font-size:48px!important}.presence-family-name{font-size:22px}.presence-intro{margin-bottom:35px}.code-form{padding:27px 20px}.guest-card{gap:13px;padding:23px 18px}.guest-number{font-size:11px}.guest-info h2{margin-bottom:22px;font-size:25px}.choice{flex:1;min-width:0;padding:10px 9px;font-size:9px}.presence-save-button{width:100%;min-width:0}.presence-ornament span:first-child,.presence-ornament span:last-child{width:45px}}
