:root{--blue:#164c78;--blue-dark:#123654;--gold:#c9a34a;--gold-light:#e5c77e;--text:#344652;--muted:#5c6f7c;--border:#d5e0e8;--surface:#fff;--heading-font:"Palatino Linotype", "Book Antiqua", Palatino, serif;color:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:0;background:#f7fafc;font-family:Trebuchet MS,sans-serif;font-size:16px;line-height:1.65}*{box-sizing:border-box}body{background:linear-gradient(#edf4fa 0,#fff 440px,#f7fafc 100%);min-width:280px;min-height:100svh;margin:0}.site-layout{grid-template-rows:auto 1fr;grid-template-columns:clamp(56px,22vw,300px) minmax(0,1fr);min-height:100svh;display:grid}.site-banner{background:#fff}.site-banner img{object-fit:contain;object-position:top left;width:100%;max-height:100svh;display:block;position:sticky;top:0}.site-body{min-width:0}.site-header{border-top:4px solid var(--gold);border-bottom:1px solid var(--border);background:var(--surface);grid-column:1/-1}.header-inner,.page-content{width:100%;max-width:1040px;margin:0 auto;padding-inline:40px}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;padding-block:24px;display:flex}.site-title{font-family:var(--heading-font);color:var(--blue-dark);font-size:30px;line-height:1.2;text-decoration:none}nav{flex-wrap:wrap;gap:8px 24px;display:flex}nav a{min-height:44px;color:var(--blue);border-bottom:2px solid #0000;align-items:center;text-decoration:none;display:inline-flex}nav a:hover,nav a[aria-current=page]{color:var(--blue-dark);border-bottom-color:var(--gold)}.page-content{padding-block:48px 80px;animation:.35s ease-out page-arrive}h1,h2,h3{font-family:var(--heading-font);color:var(--blue-dark);overflow-wrap:anywhere;font-weight:400;line-height:1.2}h1{margin:0 0 28px;font-size:48px}h1:after{content:"";background:var(--gold);width:64px;height:3px;margin-top:20px;display:block}h2{margin:0 0 12px;font-size:28px}h3{font-size:22px}p{max-width:70ch;margin:0 0 24px}.page-content section{border-top:1px solid var(--border);margin-top:36px;padding-top:28px}.page-content section p{margin-bottom:0}a{color:var(--blue);text-underline-offset:4px;overflow-wrap:anywhere}a:hover{color:var(--blue-dark)}.page-content ul{margin:16px 0 0;padding-left:24px}.page-content li{margin-bottom:12px;padding-left:4px}.page-content li::marker{color:var(--gold)}.page-content img{border-radius:4px;max-width:100%;height:auto;margin-block:24px;display:block}.venue-story{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"photos photos""introduction introduction""sea beach""accommodation accommodation";align-items:center;gap:40px;display:grid}.venue-story p{margin:0}.venue-introduction{grid-area:introduction}.venue-beach{grid-area:beach}.venue-sea{grid-area:sea}.venue-accommodation{grid-area:accommodation}.venue-gallery{grid-area:photos;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px;display:grid}.page-content .venue-story img{width:100%;max-width:360px;height:auto;margin:0}.page-content .venue-gallery img{max-width:none}@media (width<=900px){.venue-story{grid-template-columns:minmax(0,1fr);grid-template-areas:"photos""introduction""beach""sea""accommodation";gap:24px}.page-content .venue-story img{justify-self:center;margin-bottom:12px}}.dress-code-gallery,.sunday-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px;display:grid}.page-content .dress-code-gallery img,.page-content .sunday-gallery img{aspect-ratio:3/4;object-fit:contain;width:100%;margin:0}:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.guest-form{width:100%;max-width:560px;margin-top:32px}.guest-fields,.choice-field{border:0;min-width:0;margin:0;padding:0}.guest-fields,.form-field{gap:8px;display:grid}.guest-fields{gap:24px}.form-field label,.choice-field legend{color:var(--blue-dark);font-weight:600}.form-field input,.form-field textarea{width:100%;min-height:48px;font:inherit;color:inherit;background:var(--surface);border:1px solid #92adbf;border-radius:4px;padding:12px 14px}.form-field input:hover,.form-field textarea:hover{border-color:var(--blue)}.form-field textarea{resize:vertical;min-height:112px}.choice-field legend{max-width:100%;margin-bottom:8px;padding:0}.field-description{color:var(--muted);margin:0 0 8px;font-size:15px}.children-list{gap:16px;margin-bottom:16px;display:grid}.child-fields{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;margin-bottom:8px;display:grid}.guest-form .secondary-button{color:var(--blue);background:var(--surface);border:1px solid #92adbf}@media (width<=480px){.child-fields{grid-template-columns:minmax(0,1fr)}}.choice-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;display:grid}.choice-options label{cursor:pointer;align-items:center;gap:8px;min-height:48px;line-height:1.5;display:flex}.choice-options input{width:18px;height:18px;accent-color:var(--blue);flex-shrink:0;margin:0}.guest-form button{border:1px solid var(--gold);background:var(--gold-light);min-height:48px;color:var(--blue-dark);font:inherit;cursor:pointer;border-radius:4px;padding:12px 20px;font-weight:600;transition:background-color .15s}.guest-form button:hover:not(:disabled){background:var(--gold)}.guest-fields:disabled{opacity:.65}.rsvp-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;display:flex}.rsvp-actions p{overflow-wrap:anywhere;min-width:0;margin:0}.saved-rsvp{border-top:1px solid var(--border);padding-block:24px}.saved-rsvp dl{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 16px;display:grid}.saved-rsvp dt{font-weight:600}.saved-rsvp dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}@media (width<=480px){.saved-rsvp dl{grid-template-columns:minmax(0,1fr);gap:4px}.saved-rsvp dd{margin-bottom:12px}}.guest-fields:disabled button{cursor:wait}.form-error{color:#a32424;margin-top:20px;line-height:1.5}.page-content .wedding-invite{width:100%;max-width:720px;margin-inline:auto}body:has(.invite-intro[open]){overflow:hidden}.invite-intro{background:0 0;border:0;max-width:calc(100vw - 24px);max-height:calc(100svh - 24px);padding:48px 16px 16px;overflow:hidden}.invite-intro::backdrop{background:#000000a6}.invite-intro img{object-fit:contain;visibility:hidden;width:auto;max-width:min(720px,100vw - 56px);height:auto;max-height:calc(100svh - 88px);display:block}.invite-intro-loaded img{visibility:visible;animation:.75s cubic-bezier(.16,1,.3,1) both invite-burst}.invite-close{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--blue-dark);font:inherit;cursor:pointer;border-radius:4px;padding:8px 16px;position:absolute;top:0;right:16px}.invite-close:hover{background:var(--gold-light)}@keyframes invite-burst{0%{opacity:0;transform:scale(.1)rotate(-12deg)}65%{opacity:1;transform:scale(1.03)rotate(2deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes page-arrive{0%{opacity:0}to{opacity:1}}@media (width<=640px){.dress-code-gallery,.sunday-gallery{grid-template-columns:1fr;max-width:360px;margin-inline:auto}.header-inner,.page-content{padding-inline:20px}.header-inner{flex-direction:column;align-items:flex-start;gap:12px;padding-block:20px 12px}.site-title{font-size:28px}nav{gap:4px 20px}.page-content{padding-block:32px 56px}h1{font-size:36px}h2{font-size:25px}}@media (width<=400px){.choice-options{grid-template-columns:1fr;gap:0}}@media (prefers-reduced-motion:reduce){.invite-intro-loaded img,.page-content{animation:none}.guest-form button{transition:none}}
