*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}img,svg{max-width:100%;display:block}input,button{font:inherit}:root{--wedding-green:#2a7f5f;--wedding-green-dark:#1f5f46;--wedding-green-pale:#e6f4ea}.page{color:#111;background:radial-gradient(160% 55% at 50% 0,#b8dfca 0%,#dff0e8 30%,#f0f9f4 60%,#fff 100%);min-height:100vh;font-family:Cormorant Garamond,Georgia,serif}.site-header{text-align:center;padding:5rem 2rem 4rem;position:relative;overflow:hidden}.wedding-title{color:#111;text-shadow:0 1px #fff6;margin:0 0 .5rem;font-family:Parisienne,cursive;font-size:clamp(3.5rem,9vw,7rem);font-weight:400;line-height:1.1}.wedding-title:after{content:"";background:linear-gradient(90deg,#0000,#00000040,#0000);width:90px;height:1px;margin:.75rem auto 0;display:block}.wedding-subtitle{color:#222;letter-spacing:.35em;text-transform:uppercase;margin:0 0 .5rem;font-size:clamp(.78rem,2vw,1rem);font-weight:300}.wedding-meta{color:#444;margin:0;font-size:1rem;font-style:italic}.agenda-content{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:1.5rem 3.5rem;margin-top:2rem;display:flex}.agenda-item{text-align:center;max-width:300px}.agenda-item-title{letter-spacing:.2em;text-transform:uppercase;color:#00000073;text-align:center;margin:0 0 .3rem;font-family:Cormorant Garamond,Georgia,serif;font-size:.65rem;font-weight:600}.agenda-item-text{color:#111;text-align:center;margin:0;font-size:.92rem;line-height:1.4}.agenda-link{color:#111;text-underline-offset:3px;-webkit-text-decoration:underline #00000040;text-decoration:underline #00000040;transition:color .2s,text-decoration-color .2s}.agenda-link:hover{color:var(--wedding-green-dark);-webkit-text-decoration-color:var(--wedding-green-dark);text-decoration-color:var(--wedding-green-dark)}.search-wrapper{padding:2.5rem 1.5rem .5rem}.search-container{text-align:center;max-width:540px;margin:0 auto}.search-input{color:#111;box-sizing:border-box;background:#fff;border:1.5px solid #b8d9c8;border-radius:50px;outline:none;width:100%;padding:.85rem 1.5rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.2rem;transition:border-color .25s,box-shadow .25s;box-shadow:0 2px 12px #2a7f5f12}.search-input::placeholder{color:#9cbfb0}.search-input:focus{border-color:var(--wedding-green);box-shadow:0 0 0 4px #2a7f5f1f,0 2px 12px #2a7f5f12}.search-input::-webkit-search-cancel-button{appearance:none}.search-result{color:#555;justify-content:center;align-items:center;min-height:2.2rem;margin-top:.8rem;font-size:1.05rem;font-style:italic;display:flex}.search-result strong{color:#000;font-style:normal}.letters-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem;max-width:1440px;margin:0 auto;padding:2.5rem 2rem 5rem;display:grid}@media (width<=1300px){.letters-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=860px){.letters-grid{grid-template-columns:repeat(2,1fr);padding:2rem 1.5rem 4rem}}@media (width<=520px){.letters-grid{grid-template-columns:1fr;gap:1.2rem;padding:1.5rem 1rem 3rem}}.letter-card{background:#fff;border:1.5px solid #cde6d8;border-radius:14px;transition:box-shadow .25s,border-color .25s,transform .25s;overflow:hidden;box-shadow:0 2px 10px #2a7f5f0f}.letter-card:hover{transform:translateY(-2px);box-shadow:0 8px 28px #2a7f5f21}.letter-card-header{background:linear-gradient(160deg, #a8d5bc 0%, var(--wedding-green) 100%);text-align:center;border-bottom:none;padding:.75rem 1.25rem .65rem}.letter-name{color:#fff;letter-spacing:.04em;margin:0;font-family:Parisienne,cursive;font-size:2.4rem;font-weight:400;line-height:1}.guest-list{margin:0;padding:.3rem 0;list-style:none}.guest-item{border-bottom:1px solid #eef6f1;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem 1.25rem;transition:background-color .2s;display:flex}.guest-item:last-child{border-bottom:none}.guest-item.guest-match{background-color:var(--wedding-green-pale);border-bottom-color:#b8d9c8;border-left:3px solid var(--wedding-green);padding-left:calc(1.25rem - 3px)}.guest-name{color:#111;flex:1;font-size:.98rem;font-weight:500}.guest-table{text-align:center;min-width:2rem;color:var(--wedding-green-dark);background-color:var(--wedding-green-pale);letter-spacing:.02em;border:1px solid #cde6d8;border-radius:999px;flex-shrink:0;padding:.15rem .55rem;font-size:.85rem;font-weight:600}.site-footer{text-align:center;background:0 0;border-top:1px solid #cde6d8;padding:3rem 2rem 2.5rem}.site-footer .agenda-content{margin-bottom:2rem}.site-footer-love{color:var(--wedding-green);margin:0;font-size:1.1rem;font-style:italic}.loading{min-height:100vh;color:var(--wedding-green);background:0 0;justify-content:center;align-items:center;font-family:Cormorant Garamond,Georgia,serif;font-size:1.5rem;display:flex}.site-nav{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;background:#ffffffbf;border-bottom:1px solid #cde6d8;border-radius:1.75rem;justify-content:center;gap:.25rem;max-width:72rem;margin:0 auto;padding:.6rem 1.5rem;display:flex;position:sticky;top:2rem}.nav-link{color:#444;letter-spacing:.04em;border-radius:50px;padding:.4rem 1.25rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1rem;font-weight:500;text-decoration:none;transition:color .2s,background-color .2s}.nav-link:hover{color:var(--wedding-green);background-color:var(--wedding-green-pale)}.nav-link-active{color:var(--wedding-green-dark);background-color:var(--wedding-green-pale);font-weight:600}.protocol-page{text-align:center;max-width:700px;margin:0 auto;padding:5rem 2rem}.protocol-icon{color:var(--wedding-green);opacity:.5;margin-bottom:1.5rem;font-size:2rem}.protocol-title{color:#111;margin:0 0 1rem;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2rem,5vw,2.8rem);font-weight:600}.protocol-subtitle{color:#666;font-size:1.1rem;font-style:italic}.qa-section{max-width:860px;margin:0 auto;padding:4rem 2rem 5rem}.qa-container{width:100%}.qa-title{color:#111;text-align:center;margin:0 0 .5rem;font-family:Parisienne,cursive;font-size:clamp(2.2rem,6vw,3.2rem);font-weight:400}.qa-title:after{content:"";background:linear-gradient(90deg,#0000,#0003,#0000);width:60px;height:1px;margin:.6rem auto 3rem;display:block}.qa-content{flex-direction:column;gap:1.25rem;display:flex}.qa-item{background:#fff;border:1.5px solid #cde6d8;border-radius:14px;padding:1.75rem 2rem;box-shadow:0 2px 10px #2a7f5f0f}.qa-question{color:var(--wedding-green-dark);letter-spacing:.01em;margin:0 0 .85rem;font-family:Cormorant Garamond,Georgia,serif;font-size:1.25rem;font-weight:600}.qa-answer{color:#333;margin:0 0 .5rem;font-size:1rem;line-height:1.7}.qa-answer:last-child{margin-bottom:0}.qa-list{flex-direction:column;gap:.4rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.qa-list li{align-items:center;display:flex}.qa-list li:before{content:"→";color:var(--wedding-green);flex-shrink:0;margin-right:.6rem;font-size:.85rem}.qa-link{color:var(--wedding-green-dark);text-underline-offset:3px;padding:.2rem 0;font-size:.97rem;-webkit-text-decoration:underline #1f5f464d;text-decoration:underline #1f5f464d;transition:color .2s,text-decoration-color .2s}.qa-link:hover{color:var(--wedding-green);-webkit-text-decoration-color:var(--wedding-green);text-decoration-color:var(--wedding-green)}.qa-contact-name{color:#111;font-weight:600}.qa-contact-tel{color:var(--wedding-green-dark);text-underline-offset:3px;font-weight:500;-webkit-text-decoration:underline #1f5f464d;text-decoration:underline #1f5f464d;transition:color .2s,text-decoration-color .2s}.qa-contact-tel:hover{color:var(--wedding-green);-webkit-text-decoration-color:var(--wedding-green);text-decoration-color:var(--wedding-green)}@media (width<=600px){.qa-section{padding:3rem 1rem 4rem}.qa-item{padding:1.4rem 1.25rem}}
