:root{--bg: #ffffff;--muted: #6b6b6b;--text: #111111;--accent: #2f6e92;--soft: #f6f4f2;--card-bg: #ffffff;--radius: 12px;--container: 1100px;--max-width: 1100px;--shadow: 0 6px 18px rgba(17, 17, 17, .08);--serif: "Playfair Display", Georgia, serif;--sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:var(--container);margin:0 auto;padding:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.site-header{position:sticky;top:0;background:#ffffffe6;-webkit-backdrop-filter:saturate(120%) blur(6px);backdrop-filter:saturate(120%) blur(6px);z-index:60;border-bottom:1px solid rgba(16,16,16,.04)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--text)}.brand-logo{width:46px;height:46px;object-fit:cover;border-radius:8px;background:#fff;padding:6px}.brand-text{font-family:var(--serif);font-size:20px;letter-spacing:.04em}.site-nav{display:flex;gap:8px;align-items:center}.site-nav a{text-decoration:none;color:var(--muted);padding:.5rem .6rem;border-radius:8px;font-weight:600}.site-nav a:hover{color:var(--text);background:#2f6e920d}.nav-toggle{display:none;border:0;background:transparent;font-size:1.2rem;padding:.5rem;cursor:pointer}.hero{display:flex;align-items:center;justify-content:center;gap:2rem;padding:3rem 0;position:relative;overflow:hidden}.hero-media{position:absolute;inset:0;z-index:0;display:block}.hero-image{width:100%;height:100%;object-fit:cover;filter:brightness(.65) saturate(.95);min-height:420px;display:block}.hero-content{position:relative;z-index:2;text-align:center;color:var(--bg);padding:3rem 1rem}.hero-title{font-family:var(--serif);font-size:3.25rem;margin:.25rem 0;color:var(--bg);text-shadow:0 4px 20px rgba(0,0,0,.25)}.hero-subtitle{margin:.25rem 0 1.25rem;font-weight:500;color:#fffffff2}.hero-actions{display:flex;gap:.75rem;justify-content:center;margin-bottom:1rem}.btn{display:inline-block;border-radius:10px;padding:.65rem 1rem;font-weight:600;text-decoration:none;cursor:pointer;border:1px solid transparent;background:transparent}.btn-primary{background:var(--bg);color:var(--text);padding:.7rem 1.1rem;box-shadow:var(--shadow)}.btn-ghost{background:transparent;color:#000;border:1px solid rgba(255,255,255,.18)}.countdown{display:inline-flex;gap:1rem;margin-top:1rem;justify-content:center}.countdown-item{text-align:center;background:#ffffff14;padding:.4rem .6rem;border-radius:8px;min-width:72px}.countdown-value{display:block;font-weight:700;font-size:1.05rem}.countdown-label{display:block;font-size:.75rem;opacity:.9}.section{padding:1rem 0}.section-title{font-family:var(--serif);font-size:1.6rem;margin:0 0 .75rem}.lede{font-size:1.05rem;color:var(--muted);max-width:58ch}.alt-bg{background:var(--soft)}.grid-2{display:grid;grid-template-columns:1fr;gap:1.5rem;align-items:center}.portrait img.rounded{width:100%;border-radius:12px;box-shadow:var(--shadow)}.info-grid{display:grid;gap:1rem;grid-template-columns:1fr}.info-card{background:var(--card-bg);padding:1rem;border-radius:12px;box-shadow:var(--shadow)}.info-card h3{margin:12px 0}.info-image{width:100%;height:240px;object-fit:cover;border-radius:8px;margin:.6rem 0}.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:.6rem 0;border-bottom:1px dashed rgba(17,17,17,.04);color:var(--muted)}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}.gallery-item{padding:0;border:0;background:transparent;cursor:pointer}.gallery-item img{width:100%;height:200px;object-fit:cover;display:block;border-radius:8px}.modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0009;opacity:0;visibility:hidden;transition:opacity .22s ease;z-index:100;padding:1.2rem}.modal.open{opacity:1;visibility:visible}.modal-content{background:var(--bg);max-width:720px;width:100%;border-radius:12px;padding:1.2rem 1.25rem;position:relative;box-shadow:0 20px 60px #0404044d}.modal-close{position:absolute;top:.6rem;right:.6rem;border:0;background:transparent;font-size:1.5rem;cursor:pointer}.lightbox .modal-content{max-width:900px;text-align:center;padding:1rem}.lightbox img{width:100%;height:auto;border-radius:8px}.rsvp-form{display:grid;gap:.5rem}.rsvp-form label{font-weight:600;font-size:.9rem;color:var(--muted)}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{padding:.6rem .7rem;border-radius:8px;border:1px solid rgba(16,16,16,.08);font-size:1rem}.form-actions{display:flex;gap:.6rem;margin-top:.6rem}.site-footer{padding:2rem 0;text-align:center;font-size:.95rem}.muted{color:var(--muted)}.link{color:var(--accent);text-decoration:underline;text-underline-offset:3px}@media(min-width:700px){.grid-2{grid-template-columns:1fr 420px}.info-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:repeat(4,1fr)}.nav-toggle{display:none}.nav-toggle[aria-expanded=true]+.site-nav{display:flex}}@media(max-width:699px){.brand-logo{padding:0}.info-card h3{margin:0}.section{padding:0rem 0}.nav-toggle{padding:0;font-size:30px}.container{padding:1rem}.info-image{height:190px}.site-nav{display:none;position:absolute;right:1rem;top:64px;background:var(--bg);padding:1rem;border-radius:8px;box-shadow:var(--shadow);flex-direction:column}.testDiv{width:100%;border-bottom:1px solid rgba(17,17,17,.25);display:flex;justify-content:center}.site-nav>div:last-child{border-bottom:none}.site-nav.open{display:flex;width:175px}.nav-toggle{display:block;background:transparent;border:0}.brand-text{display:none}}.show-focus :focus{outline:3px solid rgba(47,110,146,.15);outline-offset:3px;border-radius:6px}.accordion .accordion-panel{max-height:0;overflow:hidden;transition:max-height .25s ease;padding:0 .5rem;color:var(--muted)}.btn-primary:hover{transform:translateY(-1px);transition:transform .12s ease}.video-section{padding:18px 0;text-align:center;background:transparent}.video-title{margin:0 auto;max-width:900px}.video-title h2{font-family:Playfair Display,serif;margin:0;font-size:1.6rem;letter-spacing:-.02em;color:#1f3f56}.video-title p{margin:6px 0 0;color:#586a76;font-size:.95rem}.video-wrapper{width:100%;max-width:980px;margin:18px auto 0;aspect-ratio:16 / 9;position:relative;border-radius:10px;overflow:hidden;box-shadow:0 8px 28px #1f2e381f}.video-wrapper iframe{width:100%;height:100%;border:0;display:block}.video-caption{margin-top:10px;color:#6b7780;font-size:.9rem}@media(max-width:520px){.video-title h2{font-size:24px}}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.gallery-grid{grid-template-columns:1fr}}.gallery-item{--pos-x: 50%;--pos-y: 50%;--thumb-radius: 14px;position:relative;display:inline-block;width:100%;height:330px;padding:0;margin:0;border:none;background-color:#f6f7f8;background-size:cover;background-position:var(--pos-x) var(--pos-y);background-repeat:no-repeat;cursor:pointer;border-radius:var(--thumb-radius);overflow:hidden;box-shadow:0 6px 18px #1018280f}.gallery-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none;display:block}#modal-lightbox{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:#0c1014b8;z-index:1400;padding:20px}#modal-lightbox.open{display:flex}#modal-lightbox .lightbox-inner{max-width:1200px;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;box-sizing:border-box}.lightbox-figure{position:relative;display:inline-block;line-height:0}#lightbox-image{display:block;max-width:75vw;max-height:75vh;width:auto;height:auto;object-fit:scale-down;border-radius:8px;box-shadow:0 18px 40px #040a0f8c;background:#111}.lightbox-close{position:absolute;top:12px;right:12px;background:#ffffffeb;border:none;border-radius:8px;width:40px;height:40px;display:grid;place-items:center;cursor:pointer;font-size:20px;line-height:1;box-shadow:0 6px 18px #040a0f40;z-index:3}.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);background:#ffffffeb;border:none;width:46px;height:46px;display:grid;place-items:center;border-radius:999px;cursor:pointer;box-shadow:0 6px 18px #040a0f40;z-index:2}.lightbox-arrow svg{width:18px;height:18px;stroke:#1f3f56;stroke-width:1.8;fill:none}.lightbox-prev{left:24px}.lightbox-next{right:24px}.lightbox-thumbs{display:flex;gap:8px;align-items:center;overflow-x:auto;padding:6px 2px;width:100%;max-width:90vw}.lightbox-thumbs::-webkit-scrollbar{height:8px}.lightbox-thumb{flex:0 0 auto;width:64px;height:48px;border-radius:6px;overflow:hidden;background:#111;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:2px solid transparent}.lightbox-thumb img{width:100%;height:100%;object-fit:cover;display:block}.lightbox-thumb.active{border-color:#2f6e92}#lightbox-caption{color:#dfe6ea;font-size:.95rem;text-align:center}@media(max-width:520px){.lightbox-arrow{width:40px;height:40px}.lightbox-prev{left:12px}.lightbox-next{right:12px}#lightbox-image{max-width:92vw;max-height:72vh}.lightbox-thumb{width:54px;height:40px}.gallery-item{height:260px}}#modal-lightbox.open{cursor:default}.lightbox svg{width:22px;height:22px;stroke:currentColor;stroke-width:2;fill:none}.install-prompt{position:fixed;inset:0;display:grid;place-items:center;background:#11111173;z-index:1200;opacity:0;pointer-events:none;transition:opacity .18s ease}.install-prompt.visible{opacity:1;pointer-events:auto}.install-card{width:min(680px,92%);background:#fff;border-radius:12px;padding:18px;box-shadow:0 10px 40px #10182859;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial}.install-card h3{margin:0 0 6px;font-size:1.1rem}.install-card p{margin:6px 0 12px;color:#333}.install-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.btn{border:1px solid #ccc;background:#fff;padding:8px 12px;border-radius:8px;cursor:pointer}.btn-primary{background:#000;color:#fff;border:none}.install-instr{display:flex;gap:12px;align-items:center}.instr-icon{width:52px;height:52px;border-radius:9px;display:grid;place-items:center;background:#f6f6f8;flex:0 0 52px;font-size:20px;border:1px solid #eee}.install-instr svg.install-share-icon{width:1em;height:1em;vertical-align:middle;display:inline-block;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.sr-only{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
