:root{font-family:system-ui,sans-serif;color:#202322;background:#faf9f7}*{box-sizing:border-box}body{margin:0}.site-header{background:#26352b;color:#fff;padding:1rem max(1.5rem,calc((100% - 1000px)/2));display:flex;justify-content:space-between;align-items:center}.site-header a{color:#fff;text-decoration:none;font-weight:700}.container{max-width:1000px;margin:3rem auto;padding:0 1.5rem}.narrow{max-width:760px}.page-heading,.section-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center}.page-heading h1,.section-heading h2{margin-bottom:.2rem}.page-heading p,.section-heading p{margin-top:0;color:#566057}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:.9rem;border-bottom:1px solid #e5e5e0;text-align:left}a{color:#315f46}.button,button{background:#315f46;border:0;border-radius:4px;color:#fff;padding:.65rem 1rem;text-decoration:none;font:inherit;cursor:pointer}.button.secondary{background:#8c6640}.actions{display:flex;gap:.75rem;align-items:center}.link-button{background:none;padding:0}.danger button{background:#9b3329}.danger{margin-top:2rem}label{display:block;font-weight:650;margin-top:1rem;margin-bottom:.35rem}input,textarea,select{width:100%;font:inherit;padding:.6rem;border:1px solid #aeb5ae;border-radius:4px}textarea{min-height:5rem}form button[type=submit]{margin-top:1.25rem}.grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}.notice{background:#e4f2e5;padding:.8rem;border-radius:4px}.error{color:#9b3329;margin:.3rem 0}.empty{padding:1rem;background:#fff;border:1px dashed #b4bbb4}.guests{margin-top:3rem}.back{display:inline-block;margin-bottom:1rem}code{font-size:1em}@media(max-width:600px){.grid{grid-template-columns:1fr}.page-heading,.section-heading{align-items:flex-start;flex-direction:column}.actions{width:100%;flex-direction:column;align-items:stretch}.actions .button{text-align:center}}
:root{--unused:0}.admin-nav{display:flex;gap:1.25rem}.form-help{margin:.35rem 0;color:#566057;font-size:.9rem}.bottom-menu-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;max-width:728px;margin:auto}.food-drinks-button{display:flex;align-items:center;justify-content:center;gap:.55rem;width:100%;border-radius:999px;background:#8c6640;padding:.8rem 1.25rem;font-weight:700}.food-trucks{margin-top:1.5rem}.food-trucks>h3,.bars h3{font-family:Georgia,serif;font-size:1.35rem;font-weight:400}.food-truck-card{padding:1.1rem;margin-top:.75rem;background:#fff;border:1px solid #e1e5df;border-radius:10px}.food-truck-heading{display:flex;justify-content:space-between;gap:1rem}.food-truck-heading h4{margin:0}.food-truck-heading p,.bars p{color:#5f6961;line-height:1.45}.food-truck-heading time{white-space:nowrap;color:#315f46;font-size:.85rem;font-weight:800}.food-truck-card ul{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0 0;padding:0;list-style:none}.food-truck-card li{padding:.35rem .6rem;border-radius:999px;background:#edf2ea;color:#315f46;font-size:.9rem;font-weight:650}.bars{margin-top:1.5rem;padding:1.1rem;background:#f3ede3;border-radius:10px}@media(max-width:700px){.bottom-menu-actions{grid-template-columns:1fr}.food-truck-heading{flex-direction:column;gap:.4rem}}
:root{--venue-blue:#315f46}.venue-map-button{display:flex;align-items:center;justify-content:center;gap:.55rem;width:100%;border-radius:999px;background:#496d76;padding:.8rem 1.25rem;font-weight:700}.venue-map-button:hover,.venue-map-button:focus-visible{background:#345864}.venue-map-figure{margin:1.5rem 0 0}.venue-map{display:block;width:100%;max-height:56vh;border-radius:14px;object-fit:contain;box-shadow:0 0 0 1px rgba(49,95,70,.12)}.venue-map-figure figcaption{margin-top:.75rem;color:#6b746c;font-size:.82rem;font-style:italic;line-height:1.45;text-align:center}.map-label,.map-north{fill:#315f46;font-family:system-ui,sans-serif;font-size:7px;font-weight:800;letter-spacing:.06em}.map-north{font-size:10px}.map-place{fill:#284332;font-family:Georgia,serif;font-size:11px;font-weight:700}.map-small{fill:#607164;font-family:system-ui,sans-serif;font-size:7px}.map-mark{fill:#315f46;font-family:system-ui,sans-serif;font-size:10px;font-weight:800}.map-pin{fill:#fff;font-family:system-ui,sans-serif;font-size:11px;font-weight:800}.venue-map-legend{display:grid;gap:.75rem;margin-top:1.25rem}.venue-map-legend>div{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#fff;border:1px solid #e1e5df;border-radius:10px}.venue-map-legend p{margin:0;color:#5f6961;font-size:.88rem;line-height:1.4}.venue-map-legend strong{color:#203227}.legend-swatch{display:inline-flex;flex:0 0 2.35rem;align-items:center;justify-content:center;height:2.35rem;border-radius:7px}.accessible-route{background:repeating-linear-gradient(135deg,#315f46 0 7px,#e7efe4 7px 12px)}.entrance{background:#315f46}.toilets{background:#fff;border:1px solid #6d806e;color:#315f46;font-size:.75rem;font-weight:800}
.wedding-banner{display:flex;justify-content:center;margin-bottom:2rem}.wedding-banner img{display:block;height:auto;max-width:100%}.invitation{max-width:760px;padding-bottom:6rem}.invitation h1{margin-bottom:.25rem}.eyebrow{color:#315f46;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.invitation-intro{color:#566057;margin-bottom:2rem}.invitation-error{background:#fff;border-left:4px solid #9b3329;padding:1.5rem}.invitation-error h1{margin-top:0}.guest-cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.guest-card{background:#fff;border:1px solid #e5e5e0;border-radius:4px;padding:1.25rem}.guest-card h3{margin:0 0 1rem}.guest-card dl{margin:0}.guest-card dl div{display:grid;grid-template-columns:8rem 1fr;gap:.5rem;padding:.4rem 0;border-top:1px solid #f0f0ed}.guest-card dt{font-weight:650}.guest-card dd{margin:0;overflow-wrap:anywhere}
.invitation-bottom-menu{position:fixed;z-index:10;right:0;bottom:0;left:0;padding:.75rem max(1rem,calc((100% - 760px)/2));background:rgba(250,249,247,.94);border-top:1px solid #e1e5df;box-shadow:0 -8px 24px rgba(38,53,43,.08);backdrop-filter:blur(10px)}.day-planning-button{display:flex;align-items:center;justify-content:center;gap:.55rem;width:100%;max-width:728px;margin:0 auto;border-radius:999px;background:#315f46;padding:.8rem 1.25rem;font-weight:700}.day-planning-button:hover,.day-planning-button:focus-visible{background:#244a35}.day-planning-button-icon{font-size:1.25rem;line-height:1}.day-planning-dialog[hidden]{display:none}.day-planning-dialog{position:fixed;z-index:20;inset:0;display:grid;align-items:end}.day-planning-backdrop{position:absolute;inset:0;background:rgba(24,34,27,.5)}.day-planning-sheet{position:relative;width:min(100%,760px);max-height:min(84vh,760px);margin:0 auto;padding:1.5rem max(1.25rem,calc((100% - 680px)/2)) 2.25rem;overflow-y:auto;background:#faf9f7;border-radius:20px 20px 0 0;box-shadow:0 -16px 40px rgba(20,35,25,.2);outline:none}.day-planning-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1.25rem;border-bottom:1px solid #e0e5de}.day-planning-header .eyebrow{margin:0 0 .4rem;font-size:.75rem}.day-planning-header h2{margin:0;font-family:Georgia,serif;font-size:2rem;font-weight:400}.day-planning-header p:last-child{margin:.45rem 0 0;color:#566057;line-height:1.45}.day-planning-close{flex:0 0 auto;width:2.4rem;height:2.4rem;padding:0;border-radius:50%;background:#e6ece5;color:#244432;font-size:1.8rem;font-weight:400;line-height:1}.day-planning-close:hover,.day-planning-close:focus-visible{background:#d4e0d4}.wedding-timeline{position:relative;margin:1.5rem 0 0;padding:0;list-style:none}.wedding-timeline::before{position:absolute;top:.5rem;bottom:.5rem;left:4.35rem;width:1px;background:#bfd0bf;content:""}.timeline-item{position:relative;display:grid;grid-template-columns:3.55rem 1fr;gap:1.15rem;padding:0 0 1.5rem}.timeline-item:last-child{padding-bottom:0}.timeline-item::before{position:absolute;top:.25rem;left:4.05rem;width:.65rem;height:.65rem;border:2px solid #faf9f7;border-radius:50%;background:#315f46;content:""}.timeline-item time{color:#315f46;font-size:.82rem;font-weight:800;line-height:1.25;text-align:right}.timeline-details{min-width:0;padding-left:.65rem}.timeline-details h3{margin:0;color:#203227;font-family:Georgia,serif;font-size:1.2rem;font-weight:400}.timeline-location{margin:.28rem 0 0;color:#4e6353;font-weight:650}.timeline-note{margin:.35rem 0 0;color:#5f6961;line-height:1.45}.day-planning-open{overflow:hidden}
.landing-page{min-height:100vh;background:linear-gradient(135deg,#f7f3eb 0%,#edf2ea 100%);color:#203227}.landing-shell{width:min(100% - 3rem,960px);margin:0 auto;padding:3.5rem 0 2.5rem}.landing-banner{margin-bottom:3.5rem}.landing-banner img{width:min(100%,560px)}.landing-intro{text-align:center;max-width:620px;margin:0 auto 3rem}.landing-intro .eyebrow{margin-bottom:.75rem;color:#8c6640}.landing-intro h1{font-family:Georgia,serif;font-size:clamp(2.35rem,6vw,4.4rem);font-weight:400;line-height:1.04;margin:0}.landing-intro p:last-child{font-size:1.1rem;line-height:1.65;color:#546259;margin:1.25rem auto 0}.access-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.access-card{background:rgba(255,255,255,.78);border:1px solid rgba(53,79,59,.16);border-radius:16px;padding:2rem;box-shadow:0 12px 30px rgba(50,67,49,.08)}.access-card-primary{background:#315f46;color:#fff;border-color:#315f46}.card-number{color:#8c6640;font-size:.78rem;font-weight:800;letter-spacing:.12em}.access-card-primary .card-number{color:#e5cda9}.access-card h2{font-family:Georgia,serif;font-size:1.7rem;font-weight:400;margin:.75rem 0}.access-card>p{line-height:1.55;min-height:3rem;margin:0;color:#59655b}.access-card-primary>p{color:#e5eee7}.access-card label{margin-top:1.5rem}.access-card input{background:#fff;border:1px solid #aab6aa;border-radius:7px;padding:.8rem}.access-card button{width:100%;margin-top:1.1rem;background:#2e513d;border-radius:7px;padding:.85rem}.access-card-primary button{background:#f6f0e7;color:#244432}.access-card button span{float:right}.access-card .error{min-height:1.2rem;margin:.35rem 0 0}.landing-notice{max-width:620px;margin:0 auto 2rem;text-align:center}.landing-help{text-align:center;color:#617066;margin:2.25rem 0 0}@media(max-width:700px){.landing-shell{width:min(100% - 2rem,960px);padding-top:2rem}.landing-banner{margin-bottom:2.5rem}.access-cards{grid-template-columns:1fr}.access-card{padding:1.5rem}.access-card>p{min-height:0}.day-planning-sheet{max-height:88vh;padding:1.25rem 1.1rem 2rem}.day-planning-header h2{font-size:1.75rem}.timeline-item{grid-template-columns:3.3rem 1fr;gap:.8rem}.wedding-timeline::before{left:4rem}.timeline-item::before{left:3.7rem}.timeline-details{padding-left:.55rem}}
.wedding-countdown{max-width:760px;margin:0 auto 2.5rem;padding:1.75rem;background:#315f46;border-radius:16px;color:#fff;text-align:center;box-shadow:0 12px 30px rgba(50,67,49,.16)}.wedding-countdown .eyebrow{margin:0;color:#e5cda9;font-size:.75rem}.wedding-countdown h2{margin:.45rem 0 0;font-family:Georgia,serif;font-size:clamp(1.8rem,4vw,2.5rem);font-weight:400}.countdown-date{margin:.6rem 0 1.5rem;color:#e5eee7}.countdown-units{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.countdown-units div{padding:.8rem .35rem;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:rgba(21,52,37,.3)}.countdown-units strong{display:block;font-size:clamp(1.55rem,4vw,2.35rem);font-variant-numeric:tabular-nums;line-height:1.05}.countdown-units span{display:block;margin-top:.35rem;color:#e5eee7;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.countdown-status{min-height:1.25rem;margin:1rem 0 0;color:#e5cda9;font-weight:700}@media(max-width:480px){.wedding-countdown{padding:1.35rem 1rem}.countdown-units{gap:.4rem}.countdown-units div{padding:.7rem .15rem}.countdown-units span{font-size:.62rem}}
.venue-video{position:relative;max-width:760px;margin:0 auto 2.5rem;overflow:hidden;border-radius:16px;background:#203227;aspect-ratio:16/9;box-shadow:0 12px 30px rgba(50,67,49,.16)}.venue-video video{display:block;width:100%;height:100%;object-fit:cover}.venue-video::after{position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(18,29,21,.7));content:"";pointer-events:none}.venue-video p{position:absolute;z-index:1;right:1.25rem;bottom:1rem;left:1.25rem;margin:0;color:#fff;font-family:Georgia,serif;font-size:clamp(1.1rem,3vw,1.65rem);line-height:1.25;text-align:center;text-shadow:0 1px 5px rgba(0,0,0,.6)}
@media(max-width:700px){.bottom-menu-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.day-planning-button,.food-drinks-button,.venue-map-button{gap:.25rem;padding:.7rem .25rem;font-size:.72rem}.day-planning-button-icon{font-size:1rem}}
.guest-section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.guest-add-button{padding:.35rem .8rem;border-radius:999px;background:#315f46;font-size:.9rem;font-weight:700}.guest-addition-closed{margin:-.25rem 0 1.2rem;color:#6b746c;font-size:.9rem}.guest-card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.guest-card-title h3{margin-bottom:1rem}.under-review{display:inline-block;flex:0 0 auto;padding:.2rem .45rem;border-radius:999px;background:#f7d7aa;color:#874800;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.guest-addition-sheet form{margin-top:1.25rem}
.checkbox-label{display:flex;align-items:center;gap:.5rem}.checkbox-label input{width:auto}
.accommodation-button{display:flex;align-items:center;justify-content:center;gap:.55rem;width:100%;border-radius:999px;background:#6d5c8c;padding:.8rem 1.25rem;font-weight:700}.accommodation-button:hover,.accommodation-button:focus-visible{background:#574775}.accommodation-list{display:grid;gap:1rem;margin-top:1.5rem}.accommodation-card{padding:1.1rem;background:#fff;border:1px solid #e1e5df;border-radius:12px}.accommodation-card-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.accommodation-card h3{margin:.2rem 0 0;font-family:Georgia,serif;font-size:1.35rem;font-weight:400;color:#203227}.accommodation-type{margin:0;color:#8c6640;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.accommodation-distance{flex:0 0 auto;margin:0;padding:.35rem .6rem;border-radius:999px;background:#edf2ea;color:#315f46;font-size:.82rem;font-weight:800}.accommodation-details{margin:1rem 0 0}.accommodation-details div{display:grid;grid-template-columns:7.5rem 1fr;gap:.75rem;padding:.65rem 0;border-top:1px solid #f0f0ed}.accommodation-details dt{font-weight:750;color:#203227}.accommodation-details dd{margin:0;color:#5f6961;line-height:1.45}.accommodation-details code{padding:.1rem .35rem;border-radius:4px;background:#f3ede3;color:#6f4c2d;font-weight:800}.accommodation-note{margin:1.25rem 0 0;padding:1rem;border-radius:10px;background:#f3ede3;color:#5f6961;line-height:1.45}@media(max-width:700px){.day-planning-button,.food-drinks-button,.venue-map-button,.accommodation-button{gap:.25rem;padding:.7rem .25rem;font-size:.72rem}.accommodation-card-header,.accommodation-details div{grid-template-columns:1fr}.accommodation-card-header{gap:.55rem}.accommodation-distance{justify-self:start}.accommodation-details div{gap:.2rem}}
@media(max-width:700px){.bottom-menu-actions{grid-template-columns:repeat(4,minmax(0,1fr))}}
.gifts-button{display:flex;align-items:center;justify-content:center;gap:.55rem;width:100%;border-radius:999px;background:#9b5c6f;padding:.8rem 1.25rem;font-weight:700}.gifts-button:hover,.gifts-button:focus-visible{background:#82485a}.gifts-content{display:grid;gap:1.1rem;margin-top:1.5rem}.gift-preference-card{padding:1.2rem;background:#fff;border:1px solid #e1e5df;border-radius:12px}.gift-preference-card h3{margin:0 0 .5rem;font-family:Georgia,serif;font-size:1.35rem;font-weight:400}.gift-preference-card p,.gift-thanks{margin:0;color:#5f6961;line-height:1.55}.gift-link-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.gift-link-card{display:flex;flex-direction:column;gap:.35rem;padding:1rem;border-radius:12px;background:#315f46;color:#fff;text-decoration:none}.gift-link-card:nth-child(2){background:#8c6640}.gift-link-card span{color:#e5eee7;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.gift-link-card strong{font-family:Georgia,serif;font-size:1.2rem;font-weight:400}.payment-details{display:grid;gap:.65rem;margin:0}.payment-details div{display:grid;grid-template-columns:8rem 1fr;gap:.75rem;padding:.8rem;background:#f3ede3;border-radius:10px}.payment-details dt{color:#203227;font-weight:800}.payment-details dd{margin:0;color:#5f6961;line-height:1.45}.payment-details code{padding:.12rem .25rem;border-radius:4px;background:#fff;color:#203227}@media(max-width:700px){.bottom-menu-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.day-planning-button,.food-drinks-button,.venue-map-button,.gifts-button{gap:.25rem;padding:.7rem .2rem;font-size:.7rem}.gift-link-grid,.payment-details div{grid-template-columns:1fr}}
.admin-settings-card{margin:1.5rem 0;padding:1.25rem;background:#fff;border:1px solid #e1e5df;border-radius:12px}.admin-settings-card h2{margin:0 0 .75rem;font-family:Georgia,serif;font-size:1.45rem;font-weight:400}.gift-options{display:grid;gap:.75rem}.gift-options h3{margin:0;font-family:Georgia,serif;font-size:1.35rem;font-weight:400}.gift-option-card{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem;background:#fff;border:1px solid #e1e5df;border-radius:12px}.gift-option-card h4{margin:0 0 .35rem;font-family:Georgia,serif;font-size:1.2rem;font-weight:400}.gift-option-card p{margin:.25rem 0 0;color:#5f6961;line-height:1.45}.gift-option-actions{display:flex;flex:0 0 auto;align-items:center;gap:.5rem}.gift-option-actions form button{margin:0}.gift-external-link{display:inline-block;background:#8c6640}.gift-option-claimed{border-color:#cddbc9;background:#f3f8f1}.gift-claimed-note{font-weight:800;color:#315f46!important}@media(max-width:700px){.gift-option-card,.gift-option-actions{flex-direction:column}.gift-option-actions,.gift-option-actions form,.gift-option-actions button,.gift-external-link{width:100%;text-align:center}}
.guest-edit-button{width:100%;margin-top:1rem;background:#e6ece5;color:#244432}.guest-edit-button:hover,.guest-edit-button:focus-visible{background:#d4e0d4}.guest-details-sheet form{margin-top:1.25rem}.guest-details-form button{width:100%}
.language-switch{display:flex;justify-content:flex-end;gap:.5rem;margin:0 0 1.25rem}.language-switch a{padding:.35rem .65rem;border:1px solid #cfd8cf;border-radius:999px;background:rgba(255,255,255,.75);color:#315f46;font-size:.85rem;font-weight:800;text-decoration:none}.language-switch a.active{background:#315f46;border-color:#315f46;color:#fff}.landing-shell>.language-switch{margin-top:0}@media(max-width:700px){.language-switch{justify-content:center}.landing-shell>.language-switch{margin-top:0}}
