:root{color-scheme:light;--maroon: #591729;--deep: #3a0e1c;--gold: #947344;--foil-gold: #caab75;--foil-gold-frame: color-mix(in srgb, var(--foil-gold) 78%, transparent);--foil-gold-line: color-mix(in srgb, var(--foil-gold) 40%, transparent);--foil-gold-dot: color-mix(in srgb, var(--foil-gold) 38%, transparent);--ivory: #f4eddf;--paper: #fbf8f1;--sandal: #efe6d5;--ink: #2a2020;--muted: #685b55;--text-supporting: 13px;--text-status: 14px;--text-event-title: 29px;--line: rgba(89, 23, 41, .2);--serif: Georgia, "Times New Roman", serif;--sans: Manrope, "Segoe UI", sans-serif;--page: 1200px}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.65 var(--sans)}button,a{font:inherit}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.skip-link{position:fixed;z-index:20;top:8px;left:8px;padding:10px 14px;color:var(--paper);background:var(--deep);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);border:0}main{min-height:100vh}.site-nav{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;padding-block:18px;border-bottom:1px solid var(--line)}.site-nav a{padding-block:8px;color:var(--maroon);text-underline-offset:6px}.site-nav a[aria-current=page]{font-weight:700}.page-width{width:min(var(--page),calc(100% - 48px));margin-inline:auto}.serif{font-family:var(--serif);font-weight:700}.eyebrow{margin:0 0 14px;color:var(--maroon);font-size:12px;font-weight:700;letter-spacing:.16em;line-height:1.4;text-transform:uppercase}.primary-link,.secondary-link{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:12px 20px;border:1px solid var(--maroon);border-radius:2px;text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;transition:background-color .2s ease,color .2s ease,transform .2s ease}.primary-link{color:var(--ivory);background:var(--maroon)}.primary-link:hover{background:var(--deep);transform:translateY(-1px)}.secondary-link{color:var(--maroon);background:transparent}.secondary-link:hover{color:var(--ivory);background:var(--maroon)}.jump-link{color:var(--maroon);font-size:12px;font-weight:700;text-decoration-thickness:1px;text-underline-offset:4px}.folio{display:grid;min-height:660px;grid-template-columns:.86fr 1.14fr;background:var(--ivory)}.folio-art{position:relative;overflow:hidden;display:grid;align-self:center;width:100%;min-width:0;aspect-ratio:4 / 5;place-items:center;color:var(--ivory);background:var(--deep)}.folio-art-photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:left 36%;transform:scale(1.1);transform-origin:left center}.folio-art-subject{z-index:2;pointer-events:none}.folio-art:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;background:linear-gradient(180deg,#3a0e1c1f,#3a0e1cad);content:""}.arch-frame{position:absolute;z-index:1;top:8.5%;right:10%;bottom:8.5%;left:10%;border:1px solid var(--foil-gold-frame);border-bottom:0;border-radius:48% 48% 0 0/35% 35% 0 0}.arch-frame:before,.arch-frame:after{position:absolute;content:"";top:2.4%;right:2.4%;bottom:2.4%;left:2.4%;border:1px solid var(--foil-gold-line);border-bottom:0;border-radius:inherit}.arch-frame:after{top:5.2%;right:5.2%;bottom:5.2%;left:5.2%;background-image:radial-gradient(circle,var(--foil-gold-dot) 1px,transparent 1.5px);background-size:23px 23px;-webkit-mask-image:linear-gradient(to bottom,currentColor 0%,currentColor 78%,transparent 100%);mask-image:linear-gradient(to bottom,currentColor 0%,currentColor 78%,transparent 100%);border:0;border-radius:0}.couple-logo{position:absolute;z-index:2;display:block;top:18%;left:50%;width:40%;height:auto;transform:translate(-50%,-50%)}.folio-art-note{position:absolute;right:0;bottom:6%;left:0;z-index:4;padding-inline:16px;text-align:center;color:var(--ivory);font-size:12px;letter-spacing:.22em;text-transform:uppercase}.folio-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(48px,8vw,112px)}.folio-copy h1{margin:0;color:var(--maroon);font:700 clamp(52px,7vw,94px)/.98 var(--serif);letter-spacing:-.045em}.folio-copy .and{display:block;margin:10px 0 9px 10px;color:var(--gold);font:italic 700 28px/1 var(--serif)}.folio-place{margin:28px 0 0;color:var(--muted);font-size:12px;letter-spacing:.13em;text-transform:uppercase}.folio-copy .intro{max-width:42ch;margin:24px 0 28px;font:500 17px/1.75 var(--serif)}.date-rule{display:flex;align-items:center;gap:16px;margin-top:30px;color:var(--maroon);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.date-rule:before,.date-rule:after{content:"";height:1px;flex:1;background:var(--gold)}.invitation-tabs{display:flex;justify-content:center;gap:32px;border-bottom:1px solid var(--line);background:var(--paper)}.invitation-tab{min-height:52px;padding:12px 8px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font-weight:700}.invitation-tab[aria-selected=true]{border-bottom-color:var(--maroon);color:var(--maroon)}.invitation-tab:hover{color:var(--maroon)}.gallery{padding:64px 0;background:var(--paper)}.gallery-header{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:32px}.gallery-header h2{margin:0;color:var(--maroon);font:700 clamp(36px,5vw,56px)/1.1 var(--serif)}.gallery-header p{max-width:34ch;margin:0;color:var(--muted)}.gallery-grid{display:grid;grid-template-columns:.9fr 1.35fr;gap:24px;align-items:center}.gallery-grid figure{margin:0;min-width:0}.gallery-grid .gallery-portrait{grid-row:span 2}.gallery-grid img{display:block;width:100%;height:auto}.gallery-host{margin-top:32px;padding-top:24px;border-top:1px solid var(--line);color:var(--muted)}.gallery-host summary{width:fit-content;padding:8px 0;color:var(--maroon);cursor:pointer;font-weight:700}.gallery-host summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.gallery-host p{max-width:65ch;margin:12px 0 16px}.gallery-host button:disabled{color:var(--muted);background:var(--ivory);border-color:var(--line);cursor:not-allowed;transform:none}.weekend{padding:78px 0 90px;background:var(--sandal)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:34px}.section-heading h2{margin:0;color:var(--maroon);font:600 clamp(38px,6vw,64px)/1.04 var(--serif)}.section-heading p{max-width:34ch;margin:0;color:var(--muted);font-size:var(--text-supporting)}.events-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--gold);border-bottom:1px solid var(--gold)}.event{min-width:0;padding:28px 24px 30px 0}.event+.event{padding-left:24px;border-left:1px solid var(--line)}.event time{color:var(--maroon);font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.event h3{margin:9px 0 10px;color:var(--maroon);font:600 var(--text-event-title)/1.12 var(--serif)}.event .time{margin:0 0 13px;color:var(--ink);font-size:var(--text-supporting);font-weight:700}.event .venue{margin:0;color:var(--ink);font-size:var(--text-supporting);font-weight:700}.event .address{min-height:64px;margin:4px 0 18px;color:var(--muted);font-size:12px;line-height:1.6}.event-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px}.event-actions a{font-size:12px}.event-actions .map-link{color:var(--maroon);font-weight:700;text-underline-offset:3px}.event-actions .rsvp-link{padding:9px 12px;border:1px solid var(--maroon);text-decoration:none}.event-actions .rsvp-link:hover{color:var(--ivory);background:var(--maroon)}.countdown-band{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:35px 0 0}.countdown-label{margin:0;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.countdown{color:var(--maroon);font:600 34px/1.2 var(--serif)}.countdown small{font:600 11px/1 var(--sans);color:var(--muted)}.family-note{padding:52px 24px 58px;color:var(--ivory);background:var(--deep);text-align:center}.family-note p{max-width:68ch;margin:0 auto;color:var(--ivory);font:500 18px/1.7 var(--serif)}.family-note .tag{margin-top:18px;color:var(--ivory);font:12px/1.5 var(--sans);letter-spacing:.12em}.invitation-foot{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px 24px;color:var(--ivory);background:var(--deep);font-size:12px}.invitation-foot strong{color:var(--ivory)}.demo-note{max-width:750px;margin:24px auto 0;padding:12px 16px;color:var(--muted);border:1px solid var(--line);font-size:12px;text-align:center}.guest-tools{padding:72px 0;background:var(--paper)}.guest-tools h1,.guest-tools h2,.host-panel h2{margin:0;color:var(--maroon);font:700 clamp(34px,5vw,52px)/1.08 var(--serif)}.guest-tools-intro{max-width:65ch;margin:12px 0 28px;color:var(--muted)}.auth-actions,.form-actions,.entry-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.auth-actions{margin:20px 0}.auth-actions button,.form-actions button,.entry-actions button,.guest-tools button,.host-panel button{cursor:pointer}.auth-provider-button{min-height:48px;padding:11px 18px;border:1px solid var(--maroon);border-radius:2px;color:var(--ivory);background:var(--maroon);font-weight:700;text-align:left}.auth-provider-button:hover:not(:disabled){background:var(--deep)}.auth-provider-button:disabled{cursor:wait}.guest-tools button:disabled,.host-panel button:disabled{opacity:.65;cursor:wait;transform:none}.status-message{min-height:1.65em;margin:10px 0;color:var(--muted);font-size:var(--text-status)}.status-message[data-state=success]{color:var(--deep)}.status-message[data-state=error]{color:var(--maroon)}.rsvp-form,.guestbook-form{max-width:860px;margin-top:26px}.profile-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:24px}.profile-fields label,.guestbook-form>label,.gallery-upload-form>label{display:grid;gap:8px;color:var(--maroon);font-size:var(--text-supporting);font-weight:700}.profile-fields input,.guestbook-form textarea,.gallery-upload-form input[type=text],.gallery-upload-form input[type=file]{width:100%;min-height:48px;padding:11px 13px;border:1px solid var(--line);border-radius:2px;color:var(--ink);background:var(--paper);font:400 15px/1.5 var(--sans)}.rsvp-event{margin:0;padding:20px 0;border:0;border-top:1px solid var(--line)}.rsvp-event legend{padding:0 12px 0 0;color:var(--maroon);font:600 25px/1.2 var(--serif)}.rsvp-deadline,.companion-box small{margin:4px 0 12px;color:var(--muted);font-size:var(--text-supporting)}.rsvp-choices{display:flex;flex-wrap:wrap;gap:12px 24px;margin:12px 0}.rsvp-choices label{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}.rsvp-choices input{accent-color:var(--maroon)}.companion-box{max-width:520px}.companion-box label{display:grid;gap:7px;color:var(--maroon);font-size:var(--text-supporting);font-weight:700}.companion-box input{min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:2px;color:var(--ink);font:400 15px/1.5 var(--sans)}.companion-box small{display:block;margin-top:5px}.captcha-slot{margin:18px 0;min-height:65px}.captcha-slot:empty{display:none}.guestbook-block{max-width:860px;margin-top:54px;padding-top:32px;border-top:1px solid var(--line)}.guestbook-block h3{margin:0;color:var(--maroon);font:600 30px/1.15 var(--serif)}.guestbook-block>p{max-width:65ch;color:var(--muted)}.guestbook-form textarea{min-height:120px;resize:vertical}.host-entry{margin:18px 0;padding:18px 0;border-top:1px solid var(--line)}.host-entry h3{margin:0;color:var(--maroon);font:600 22px/1.2 var(--serif)}.host-entry p{white-space:pre-wrap}.host-panel{margin-top:58px;padding:30px;border:1px solid var(--line);background:var(--ivory)}.host-panel>h3{margin:28px 0 12px;color:var(--maroon);font:600 27px/1.2 var(--serif)}.host-rsvp-filters{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(130px,1fr));align-items:end;gap:14px;margin:16px 0}.host-rsvp-filters label{display:grid;gap:7px;color:var(--maroon);font-size:var(--text-supporting);font-weight:700}.host-rsvp-filters input,.host-rsvp-filters select{width:100%;min-width:0;min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:2px;color:var(--ink);background:var(--paper);font:400 14px/1.5 var(--sans)}.host-rsvp-filter-actions,.host-rsvp-pagination{display:flex;align-items:center;gap:10px}.host-rsvp-filter-actions{grid-column:1 / -1}.host-rsvp-pagination{justify-content:space-between;margin-top:14px}.host-rsvp-pagination p{margin:0;color:var(--muted);text-align:center}.host-table-wrap{overflow-x:auto}.host-table{width:100%;border-collapse:collapse;font-size:var(--text-supporting);text-align:left}.host-table th,.host-table td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}.host-table th{color:var(--maroon)}.gallery-upload-form{display:grid;max-width:600px;gap:14px;margin:16px 0}.gallery-upload-form input[type=file]{padding:8px}.gallery-grid figcaption{margin-top:8px;color:var(--muted);font-size:12px}.gallery-api-note{color:var(--muted)}@media(max-width:760px){.page-width{width:min(100% - 32px,var(--page))}.folio{grid-template-columns:1fr}.folio-copy{order:1;padding:30px 24px 32px}.folio-art{order:2}.folio-copy h1{font-size:clamp(52px,15vw,78px)}.folio-copy .intro{margin:14px 0 18px;font-size:16px}.gallery{padding:40px 0}.gallery-header{align-items:start;flex-direction:column;gap:12px;margin-bottom:24px}.gallery-grid{grid-template-columns:1fr;gap:16px}.gallery-grid .gallery-portrait{grid-row:auto}.weekend{padding:54px 0 58px}.section-heading{align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:24px}.events-list{grid-template-columns:1fr}.event,.event+.event{padding:24px 0;border-left:0}.event+.event{border-top:1px solid var(--line)}.event .address{min-height:0}.countdown-band{align-items:flex-start;flex-direction:column;gap:10px;padding-top:26px}.countdown{font-size:var(--text-event-title)}.family-note{padding:42px 20px}.guest-tools{padding:48px 0}.profile-fields{grid-template-columns:1fr}.host-panel{padding:20px 16px}.host-rsvp-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.host-rsvp-filters label:first-child{grid-column:1 / -1}.host-table{min-width:720px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
