:root{--ink:#24322f;--muted:#74817b;--cream:#f7f4ee;--paper:#fffdf9;--sage:#dce8df;--green:#345b4e;--line:#dce1db;--accent:#bd806e;--error:#b3323c;--success:#276a4a}*{box-sizing:border-box}body,html{background:#f7f4ee;background:var(--cream);background-attachment:fixed;background-image:repeating-linear-gradient(0deg,rgba(111,92,74,.035),rgba(111,92,74,.035) 1px,#0000 0,#0000 4px),repeating-linear-gradient(90deg,#ffffff38,#ffffff38 1px,#0000 0,#0000 6px),radial-gradient(circle at 20% 15%,#bd806e0f,#0000 32%);font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;line-height:1.5;margin:0;padding:0}body,h1,h2,h3,html{color:#24322f;color:var(--ink)}h1,h2,h3{font-family:Playfair Display,Georgia,serif;font-weight:700;margin:0 0 .5em}h1{font-size:2.4rem}a{color:#345b4e;color:var(--green)}main{margin:0 auto;max-width:1100px;padding:32px 24px 96px}.loading{color:#74817b;color:var(--muted);padding:64px;text-align:center}.site-header{align-items:center;background:#fffdf9;background:var(--paper);border-bottom:1px solid #dce1db;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:24px 32px}.wordmark{color:#24322f;color:var(--ink);font-family:Playfair Display,serif;font-size:1.6rem;letter-spacing:.02em;text-decoration:none}.site-nav{align-items:center;display:flex;gap:22px}.site-nav a{color:#24322f;color:var(--ink);font-weight:500;text-decoration:none}.site-nav a.active,.site-nav a:hover{color:#345b4e;color:var(--green)}.link-button{background:none;border:none;color:#24322f;color:var(--ink);cursor:pointer;font:inherit;padding:0}.guest-page{margin:0 auto;max-width:760px}.guest-page h1{font-size:3rem;line-height:1.1;margin-bottom:12px}.page-intro{color:#74817b;color:var(--muted);margin:0 0 40px;max-width:45ch}.faq-list{grid-gap:12px;display:grid;gap:12px}.faq-item{background:#fffdf9;background:var(--paper);border:1px solid #dce1db;border:1px solid var(--line);border-radius:12px;padding:0 20px}.faq-item[open]{border-color:#dce8df;border-color:var(--sage)}.faq-item summary{cursor:pointer;font-weight:500;list-style:none;padding:18px 28px 18px 0;position:relative}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{color:#345b4e;color:var(--green);content:"+";font-size:1.4rem;font-weight:400;position:absolute;right:0;top:14px}.faq-item[open] summary:after{content:"−"}.faq-item p{border-top:1px solid #dce1db;border-top:1px solid var(--line);color:#74817b;color:var(--muted);margin:0;padding:16px 0 18px}.event-timeline{list-style:none;margin:8px 0 0;padding:0}.timeline-event{grid-gap:24px;display:grid;gap:24px;grid-template-columns:32px 1fr;min-height:112px;position:relative}.timeline-event:not(:last-child):before{background:#dce8df;background:var(--sage);bottom:0;content:"";left:15px;position:absolute;top:32px;width:2px}.timeline-marker{border:5px solid #bd806e;border:5px solid var(--accent);border-radius:50%;height:32px;position:relative;width:32px;z-index:1}.timeline-content,.timeline-marker{background:#fffdf9;background:var(--paper)}.timeline-content{border:1px solid #dce1db;border:1px solid var(--line);border-radius:12px;margin-bottom:16px;padding:18px 22px}.timeline-content time{color:#bd806e;color:var(--accent);font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.timeline-content h2{font-size:1.35rem;margin:4px 0 0}.timeline-subtext{color:#74817b;color:var(--muted);font-size:.9rem;margin:8px 0 0}.story-page{max-width:900px;min-width:0;width:100%}.story-header{grid-gap:36px;align-items:center;display:grid;gap:36px;grid-template-columns:minmax(0,1fr) 320px;margin-bottom:24px}.story-heading .page-intro{margin-bottom:0}.story-overview-globe{aspect-ratio:1;border-radius:50%;overflow:visible;width:min(320px,100%)}.story-overview-globe canvas{display:block;height:auto!important;max-width:100%}.story-overview-globe .scene-container{overflow:visible!important}.story-overview-globe .scene-tooltip{background:#24322f;background:var(--ink);border-radius:6px;color:#fffdf9;color:var(--paper);font-family:DM Sans,sans-serif;font-size:.78rem;padding:7px 9px;white-space:nowrap}.globe-html-pin{background:#0000;border:0;cursor:pointer;height:32px;padding:0;position:relative;transform:translate(-50%,-100%);width:24px}.globe-html-pin-shape{background:#111c19;border-radius:50% 50% 50% 0;box-shadow:0 2px 6px #4f382c57;display:block;height:24px;left:0;position:absolute;top:0;transform:rotate(-45deg);width:24px}.globe-html-pin-shape:before{background:#bd806e;background:var(--accent);border-radius:50% 50% 50% 0;content:"";height:18px;left:3px;position:absolute;top:3px;width:18px}.globe-html-pin-shape:after{background:#fffdf9;background:var(--paper);border-radius:50%;content:"";height:7px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:7px;z-index:1}.globe-html-pin-tooltip{background:#24322f;background:var(--ink);border-radius:6px;bottom:calc(100% + 4px);color:#fffdf9;color:var(--paper);font-family:DM Sans,sans-serif;font-size:.72rem;left:50%;opacity:0;padding:6px 8px;pointer-events:none;position:absolute;transform:translate(-50%,4px);transition:opacity .16s ease,transform .16s ease;white-space:nowrap}.globe-html-pin:focus-visible .globe-html-pin-tooltip,.globe-html-pin:hover .globe-html-pin-tooltip{opacity:1;transform:translate(-50%)}.globe-html-pin:focus-visible{outline:2px solid #bd806e;outline:2px solid var(--accent);outline-offset:3px}.story-timeline{list-style:none;margin:56px 0 0;padding:0;position:relative}.story-timeline:before{background:#dce8df;background:var(--sage);bottom:0;content:"";left:50%;position:absolute;top:0;transform:translateX(-50%);width:2px}.story-entry{display:grid;grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr);min-height:360px;min-width:0;position:relative}.story-marker{align-self:start;background:#fffdf9;background:var(--paper);border:5px solid #bd806e;border:5px solid var(--accent);border-radius:50%;grid-column:2;height:28px;justify-self:center;margin-top:28px;position:relative;width:28px;z-index:1}.story-side-content{align-self:start;grid-column:3;grid-row:1;padding:28px 0 0 20px}.story-entry:nth-child(2n) .story-side-content{grid-column:1;padding:28px 20px 0 0;text-align:right}.story-date{color:#bd806e;color:var(--accent);display:block;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.story-location{margin-top:18px}.story-globe{height:160px;overflow:visible;position:relative;width:160px}.story-entry:nth-child(2n) .story-globe{margin-left:auto}.story-globe canvas{display:block}.story-globe .scene-container{overflow:visible!important}.story-globe .scene-tooltip{background:#24322f;background:var(--ink);border-radius:6px;color:#fffdf9;color:var(--paper);font-family:DM Sans,sans-serif;font-size:.72rem;padding:6px 8px;white-space:nowrap}.story-location.is-placeholder .story-globe{opacity:.62}.story-location-name{color:#74817b;color:var(--muted);font-size:.82rem;margin:10px 0 0;text-align:inherit}.story-card{grid-gap:20px;align-self:start;background:#fffdf9;background:var(--paper);border:1px solid #dce1db;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 28px #345b4e14;display:grid;gap:20px;grid-column:1;grid-row:1;margin:0 0 48px;min-width:0;overflow:hidden}.story-entry:nth-child(2n) .story-card{grid-column:3}.story-photo{margin:0}.story-photo img{aspect-ratio:4/3;display:block;max-width:100%;object-fit:cover;width:100%}.story-copy{padding:0 24px 26px}.story-copy h2{font-size:1.5rem;margin:4px 0 8px}.story-copy p{color:#74817b;color:var(--muted);margin:0}.button{background:#345b4e;background:var(--green);border:none;border-radius:999px;color:#fffdf9;color:var(--paper);cursor:pointer;display:inline-block;font:inherit;font-weight:500;margin:.5rem;padding:12px 24px;text-decoration:none}.button:hover{background:#26463c}.button:disabled{cursor:not-allowed;opacity:.5}button.delete{background:#0000;border:1px solid #dce1db;border:1px solid var(--line);border-radius:6px;color:#b3323c;color:var(--error);cursor:pointer;font:inherit;margin:.5rem;padding:4px 10px}input,select{background:#fffdf9;background:var(--paper);border:1px solid #dce1db;border:1px solid var(--line);border-radius:8px;color:#24322f;color:var(--ink);font:inherit;padding:10px 12px}input:focus,select:focus{outline:2px solid #dce8df;outline:2px solid var(--sage);outline-offset:1px}label{color:#74817b;color:var(--muted);display:flex;flex-direction:column;font-size:.9rem;gap:6px}label.check{align-items:center;color:#24322f;color:var(--ink);flex-direction:row;gap:8px}.error{color:#b3323c;color:var(--error);margin-top:12px}.success{color:#276a4a;color:var(--success);margin-top:12px}.muted{color:#74817b;color:var(--muted)}.hero{display:block}.hero-copy{max-width:560px;padding:24px 0 56px}.eyebrow{color:#bd806e;color:var(--accent);font-size:.85rem;letter-spacing:.18em;margin:0 0 12px;text-transform:uppercase}.hero h1{font-size:3.6rem;line-height:1.05;margin-bottom:12px}.hero-date{color:#345b4e;color:var(--green);font-family:Playfair Display,serif;font-size:1.4rem;font-style:italic;margin:0 0 24px}.intro{color:#24322f;color:var(--ink);margin-bottom:32px;max-width:40ch}.gallery{display:flex;flex-direction:column;gap:32px}.hero-photo{background:#fffdf9;background:var(--paper);box-shadow:0 10px 22px #345b4e21;margin:0;padding:14px 14px 18px;width:64%}.hero-photo:nth-child(2n){align-self:flex-end;transform:rotate(1.5deg)}.hero-photo:nth-child(odd){transform:rotate(-1.5deg)}.hero-photo img{aspect-ratio:4/3;display:block;object-fit:cover;width:100%}.photo-caption{color:#24322f;color:var(--ink);font-family:Playfair Display,Georgia,serif;font-size:1.1rem;margin-top:14px;text-align:center}.envelope-intro{align-items:center;background:#f7f4eef7;display:flex;inset:0;justify-content:center;overflow:hidden;position:fixed;z-index:2000}.envelope-close{background:#0000;border:1px solid #dce1db;border:1px solid var(--line);border-radius:999px;color:#74817b;color:var(--muted);cursor:pointer;font:inherit;font-size:1.4rem;height:40px;line-height:1;padding:0;position:absolute;right:24px;top:24px;width:40px;z-index:3}.envelope-close:focus-visible,.envelope-close:hover{border-color:#345b4e;border-color:var(--green);color:#345b4e;color:var(--green)}.envelope-scene{height:510px;overflow:hidden;perspective:1200px;position:relative;width:min(86vw,430px)}.envelope{left:0;margin-left:auto;margin-right:auto;position:absolute;right:0;width:100%}.invitation-card-positioner{left:50%;position:absolute;top:calc(100% - 122.5px);transform:translate(-50%,-50%);width:100%;z-index:3}.envelope{bottom:0;height:220px}.envelope-back,.envelope-flap,.envelope-front,.envelope-pocket{border-radius:4px;inset:0;position:absolute}.envelope-back{background:#a4af92;box-shadow:0 18px 35px #345b4e2e;z-index:0}.envelope-pocket{background:#bec9ad;clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%);z-index:1}.envelope-front{background:#b1bca0;clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%);z-index:4}.envelope-flap{backface-visibility:hidden;background:#c4cdb5;clip-path:polygon(0 0,100% 0,50% 70%);height:150px;transform-origin:50% 0;z-index:5}.invitation-card{align-items:center;background:#fffdf9;background:var(--paper);border:1px solid #e9d8ca;box-shadow:0 12px 25px #4f382c24;display:flex;flex-direction:column;height:245px;justify-content:center;padding:24px;text-align:center;width:100%}.invitation-kicker{color:#bd806e;color:var(--accent);font-size:.7rem;letter-spacing:.16em;margin:0 0 14px;text-transform:uppercase}.invitation-title{color:#345b4e;color:var(--green);font-size:2.25rem;line-height:1;margin:0 0 8px}.invitation-message,.invitation-title{font-family:Playfair Display,Georgia,serif}.invitation-message{color:#24322f;color:var(--ink);font-size:1.2rem;font-style:italic;margin:0 0 18px}.invitation-names{color:#bd806e;color:var(--accent);font-family:Playfair Display,Georgia,serif;font-size:1.1rem;margin:0 0 2px}.invitation-date{color:#74817b;color:var(--muted);font-size:.78rem;letter-spacing:.08em;margin:0;text-transform:uppercase}@media (max-width:800px){.site-header{align-items:flex-start;flex-direction:column;gap:16px;padding:20px 24px}.site-nav{flex-wrap:wrap;gap:10px 16px}.hero{display:block}.hero-photo,.hero-photo:nth-child(2n){align-self:auto;width:100%}.hero-photo:nth-child(2n),.hero-photo:nth-child(odd){transform:rotate(0)}.guest-page h1,.hero h1{font-size:2.4rem}.story-page{padding-left:16px;padding-right:16px}.story-header{display:block}.story-overview-globe{margin:28px auto 0}.story-timeline{margin-top:40px}.story-timeline:before{left:14px;transform:none}.story-entry{display:grid;grid-template-columns:28px minmax(0,1fr);min-height:0}.story-marker{grid-column:1;height:28px;margin-top:24px;width:28px}.story-entry:nth-child(2n) .story-side-content,.story-side-content{grid-column:2;grid-row:1;margin:0 0 12px 14px;padding:22px 0 0;text-align:left}.story-location{display:none}.story-entry:nth-child(2n) .story-globe,.story-globe{height:160px;margin-left:0;width:160px}.story-card,.story-entry:nth-child(2n) .story-card{grid-column:2;grid-row:2;margin:0 0 32px 14px}.envelope-close{right:16px;top:16px}.envelope-scene{height:460px}.envelope{height:175px}.invitation-card-positioner{top:calc(100% - 102.5px)}.envelope-flap{height:120px}.invitation-card{height:205px;padding:16px}.invitation-title{font-size:1.8rem}.invitation-message{font-size:1rem;margin-bottom:14px}.wide-admin-header{max-width:100vw;overflow-x:hidden;width:100%}main:has(.guests){min-width:0;overflow-x:hidden;padding-left:16px;padding-right:16px}main:has(.expenses){min-width:0;overflow-x:hidden;padding-left:16px;padding-right:16px}.admin-form .inline-fields{flex-wrap:wrap}.admin-form .inline-fields input{min-width:0}.admin-form .inline-fields .delete{flex-basis:auto}}.login-card,.rsvp-card{background:#fffdf9;background:var(--paper);border:1px solid #dce1db;border:1px solid var(--line);border-radius:16px;margin:0 auto;max-width:560px;padding:32px}.admin-form,.rsvp-anchor{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.admin-form .form-actions,.admin-form .wide,.rsvp-anchor button{grid-column:1/-1}.admin-form .inline-fields{align-items:end;display:flex;gap:10px;margin:10px 0}.admin-form .inline-fields input{flex:1 1}.choice{display:flex;gap:24px;grid-column:1/-1}.admin-header{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:16px}.admin-heading{margin:0}.guest-tools{align-items:center;display:flex;gap:10px}.guest-import-button{overflow:hidden;position:relative}.guest-import-button input{cursor:pointer;inset:0;opacity:0;position:absolute}.guest-import-message{margin:-8px 0 16px}.guest-search{display:block;font-weight:500;margin:0 0 16px;max-width:520px}.guest-search input{display:block;margin-top:6px;width:100%}.admin-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.admin-card{background:#fffdf9;background:var(--paper);border:1px solid #dce1db;border:1px solid var(--line);border-radius:12px;color:#24322f;color:var(--ink);display:block;padding:24px;text-decoration:none}.admin-card:hover{border-color:#345b4e;border-color:var(--green)}.expense-tabs{border-bottom:1px solid #dce1db;border-bottom:1px solid var(--line);display:flex;gap:8px;margin-bottom:16px}.tab{background:none;border:none;border-bottom:2px solid #0000;color:#74817b;color:var(--muted);cursor:pointer;font:inherit;padding:10px 16px}.tab.active{border-bottom-color:#345b4e;border-bottom-color:var(--green);color:#24322f;color:var(--ink)}.expense-total{font-weight:500;margin:12px 0}.expense-table,.guest-table{background:#fffdf9;background:var(--paper);border:1px solid #dce1db;border:1px solid var(--line);border-collapse:collapse;border-radius:8px;overflow:hidden;width:100%}.expense-table-scroll,.guest-table-scroll{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.expense-table-scroll .expense-table,.guest-table-scroll .guest-table{min-width:760px}.expense-table td,.expense-table th,.guest-table td,.guest-table th{border-bottom:1px solid #dce1db;border-bottom:1px solid var(--line);font-size:.95rem;padding:10px 12px;text-align:left}.expense-table th.sortable,.guest-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.expense-table tbody tr:last-child td,.guest-table tbody tr:last-child td{border-bottom:none}.option-list{grid-gap:8px;display:grid;gap:8px;list-style:none;margin:12px 0;padding:0}.option-form{align-items:center;display:flex;gap:8px}.option-form input{flex:1 1}button.edit{background:#0000;border:1px solid #dce1db;border:1px solid var(--line);border-radius:6px;color:#345b4e;color:var(--green);cursor:pointer;font:inherit;margin:.5rem;padding:4px 10px}button.edit:hover{border-color:#345b4e;border-color:var(--green)}.action-buttons{display:flex;gap:8px}.modal-overlay{align-items:center;background:#0006;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.modal{background:#fffdf9;background:var(--paper);border-radius:16px;box-shadow:0 8px 32px #00000026;max-height:90vh;max-width:500px;overflow-y:auto;padding:24px;width:100%}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.modal-header h2{margin:0}.modal-close{background:none;border:none;color:#74817b;color:var(--muted);cursor:pointer;font-size:1.5rem;line-height:1;padding:0}.button.secondary,.modal-close:hover{color:#24322f;color:var(--ink)}.button.secondary{background:#0000;border:1px solid #dce1db;border:1px solid var(--line)}.button.secondary:hover{background:#0000;border-color:#345b4e;border-color:var(--green)}.plus-one-row{background:#f7f4ee;background:var(--cream)}.plus-one-badge{background:#dce8df;background:var(--sage);border-radius:4px;color:#345b4e;color:var(--green);display:inline-block;font-size:.7rem;font-weight:600;margin-left:8px;padding:2px 6px;vertical-align:middle}.rsvp-form{display:flex;flex-direction:column;gap:24px}.rsvp-form>p{margin:0}.rsvp-person{background:#f7f4ee;background:var(--cream);border-radius:12px;padding:20px}.rsvp-person h3{font-size:1.1rem;margin:0 0 12px}.rsvp-person .choice{margin-bottom:12px}.rsvp-person label{margin-top:8px}.rsvp-form>.button{align-self:flex-start}
/*# sourceMappingURL=main.0ac025dc.css.map*/