:root{--navy:#0c1e3a;--navy-dark:#060f1f;--navy-soft:#1c3a63;--red:#b31942;--gold:#c99a00;--gold-light:#e8bb2e;--cream:#fff8ea;--cream-deep:#f7e9c4;--ink:#171a22;--ink-soft:#4a4f5c;--rule: rgba(12,30,58,.18);--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:EB Garamond,serif;font-size:19px;line-height:1.7;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Fraunces,serif;font-weight:500;margin:0;color:var(--navy)}a{color:inherit}img{max-width:100%;display:block}.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}.rule-double{height:14px;position:relative;margin:0 auto;max-width:220px}.rule-double:before,.rule-double:after{content:"";position:absolute;left:0;right:0;height:1px;background:var(--gold)}.rule-double:before{top:2px}.rule-double:after{top:8px}nav{position:sticky;top:0;z-index:50;background:#fff8eaf0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--rule)}nav .wrap{display:flex;align-items:center;justify-content:space-between;padding:18px 32px;gap:18px}.nav-name{font-family:Fraunces,serif;font-size:16px;color:var(--navy);text-align:center;flex:1}.nav-links{display:flex;align-items:center;gap:30px;list-style:none;margin:0;padding:0;font-size:14px}.nav-links a{text-decoration:none;color:var(--ink-soft);border-bottom:1px solid transparent;padding-bottom:2px;transition:.2s}.nav-links a:hover{color:var(--gold);border-color:var(--gold)}.nav-give-btn{display:inline-block;padding:8px 18px;font-family:EB Garamond,serif;font-weight:600;letter-spacing:.05em;text-transform:uppercase;font-size:12.5px;text-decoration:none!important;border:1px solid var(--gold);color:var(--navy)!important;border-radius:2px;transition:.2s;white-space:nowrap;cursor:pointer}.nav-give-btn:hover{background:var(--gold);color:#fff6ea!important;border-color:var(--gold)}.nav-toggle{display:none;background:none;border:none;font-size:24px;color:var(--navy);cursor:pointer}@media (max-width:900px){.nav-links{position:absolute;top:100%;left:0;right:0;background:var(--cream);flex-direction:column;align-items:stretch;gap:0;padding:6px 32px 16px;border-bottom:1px solid var(--rule);display:none}.nav-links.open{display:flex}.nav-links a{padding:10px 0;border-bottom:1px solid var(--rule)}.nav-give-btn{margin-top:12px;text-align:center;border-bottom:1px solid var(--gold)!important}.nav-toggle{display:block}.nav-name{text-align:left}}.hero{display:grid;grid-template-columns:1fr 1.15fr;min-height:88vh}.hero-photo{background:var(--navy-dark);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.hero-photo:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 38%,rgba(201,154,0,.16),transparent 60%)}.portrait-frame{width:min(66%,360px);aspect-ratio:1/1;border-radius:50%;border:3px solid var(--gold);padding:10px;box-shadow:0 0 0 1px #e8bb2e40}.portrait-frame img{border-radius:50%;width:100%;height:100%;object-fit:cover}.hero-text{display:flex;flex-direction:column;justify-content:center;padding:80px 60px}.hero-text .eyebrow{font-family:Fraunces,serif;font-style:italic;color:var(--gold);font-size:20px;margin-bottom:14px}.hero-text h1{font-size:clamp(36px,4.6vw,58px);line-height:1.08}.hero-text .dates{margin-top:20px;font-size:18px;letter-spacing:.05em;color:var(--ink-soft)}.hero-text .verse{margin-top:28px;max-width:440px;font-style:italic;color:var(--ink-soft);border-left:2px solid var(--gold);padding-left:16px}.hero-give{margin-top:34px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.hero-give .btn{padding:14px 34px}.hero-give .hint{font-size:14.5px;color:var(--ink-soft);font-style:italic}@media (max-width:900px){.hero{grid-template-columns:1fr;min-height:auto}.hero-photo{padding:60px 0}.hero-text{padding:50px 32px 70px}}section{padding:80px 0}.section-head{text-align:center;margin-bottom:56px}.section-head .eyebrow{font-family:Fraunces,serif;font-style:italic;color:var(--gold);font-size:19px;display:block;margin-bottom:8px}.section-head h2{font-size:clamp(28px,4vw,38px)}.section-head p{color:var(--ink-soft);margin-top:12px}.tribute p{max-width:700px;margin:0 auto 18px;font-size:21px;color:var(--ink-soft);text-align:center}.tribute .signoff{text-align:center;margin-top:26px;font-family:Fraunces,serif;font-style:italic;color:var(--navy);font-size:19px}.arrangements{background:var(--cream-deep)}.vtimeline{max-width:760px;margin:0 auto;position:relative;padding-left:40px}.vtimeline:before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:1px;background:var(--gold)}.vt-item{position:relative;padding-bottom:44px}.vt-item:last-child{padding-bottom:0}.vt-item:before{content:"";position:absolute;left:-40px;top:4px;width:19px;height:19px;border-radius:50%;background:var(--cream-deep);border:2px solid var(--gold)}.vt-item .tag{font-family:Fraunces,serif;font-style:italic;color:var(--red);font-size:15px}.vt-item h3{font-size:24px;margin:4px 0}.vt-item .when{color:var(--gold);font-weight:600;font-size:17px;display:block;margin-bottom:6px}.vt-item .where{color:var(--ink-soft)}.reception-note{text-align:center;margin-top:44px;font-family:Fraunces,serif;font-style:italic;color:var(--navy);font-size:19px}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.gallery-grid figure{margin:0;padding:8px;background:var(--cream-deep);border:1px solid var(--gold);cursor:pointer}.gallery-grid figure img{width:100%;aspect-ratio:4/5;object-fit:cover}@media (max-width:760px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#060f1ff0;display:none;align-items:center;justify-content:center;z-index:200;padding:30px}.lightbox.open{display:flex}.lightbox img{max-height:88vh;max-width:92vw}.lightbox-close{position:absolute;top:24px;right:32px;color:var(--gold-light);font-size:34px;background:none;border:none;cursor:pointer}.memories{background:var(--navy-dark);color:#f0e9d4}.memories .section-head h2{color:#f7f0da}.memories .section-head p{color:#c7c3ad}.memories .section-head .eyebrow{color:var(--gold-light)}.mem-grid{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));max-width:820px;margin:0 auto}.mem-card{border:1px solid rgba(201,154,0,.4);padding:36px 30px;text-align:center}.mem-card h3{color:#f7f0da;font-size:22px;margin-bottom:12px}.mem-card p{color:#c7c3ad;margin-bottom:24px}.btn{display:inline-block;padding:13px 32px;font-family:EB Garamond,serif;font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:15px;text-decoration:none;border:1px solid var(--gold-light);color:#f7f0da;transition:.25s;cursor:pointer;background:transparent}.btn:hover,.btn.solid{background:var(--gold-light);color:var(--navy-dark)}.btn.solid:hover{background:var(--gold)}.hero-give .btn.solid{border-color:var(--gold);background:var(--gold);color:#fff6ea}.hero-give .btn.solid:hover{background:var(--navy);border-color:var(--navy);color:#fff6ea}.memory-wall{background:var(--cream)}.mw-grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));max-width:980px;margin:0 auto}.mw-status{grid-column:1/-1;text-align:center;color:var(--ink-soft);font-style:italic}.mw-card{background:#fff;border:1px solid var(--rule);border-top:3px solid var(--gold);padding:26px 24px;animation:fadeIn .5s ease-out}.mw-card .mw-name{font-family:Fraunces,serif;color:var(--navy);font-size:18px;margin-bottom:2px}.mw-card .mw-meta{font-style:italic;color:var(--gold);font-size:14px;margin-bottom:12px;display:block}.mw-card .mw-body{color:var(--ink-soft);font-size:17px;line-height:1.6;white-space:pre-wrap}.mw-card .mw-date{display:block;margin-top:14px;font-size:13px;color:#a8a294;text-transform:uppercase;letter-spacing:.06em}.mw-pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:40px;flex-wrap:wrap}.mw-page-btn{padding:8px 16px;border:1px solid var(--gold);background:#fff;color:var(--navy);font-family:Fraunces,serif;font-size:15px;cursor:pointer;transition:.2s;border-radius:2px}.mw-page-btn:hover{background:var(--cream-deep)}.mw-page-btn.active{background:var(--navy);color:#fff6ea;border-color:var(--navy)}.mw-page-btn:disabled{opacity:.4;cursor:not-allowed;border-color:var(--rule)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.directions .map-wrap{border:6px solid var(--cream-deep)}.directions iframe{width:100%;height:420px;border:0;display:block}.addr-grid{margin-top:36px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.addr-card{border-left:3px solid var(--red);padding-left:18px}.addr-card .tag{font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--red);font-weight:600}.addr-card h4{font-family:Fraunces,serif;font-weight:500;font-size:19px;margin:6px 0 4px;color:var(--navy)}.addr-card p{margin:0;color:var(--ink-soft)}.addr-card a{font-size:14px;color:var(--navy);text-decoration:none;border-bottom:1px dotted var(--navy)}.give{background:var(--red);color:#fff6ea;text-align:center}.give .eyebrow{font-family:Fraunces,serif;font-style:italic;color:var(--gold-light)}.give h2{color:#fff6ea;font-size:clamp(26px,4vw,36px);margin:6px 0 18px}.give p{max-width:560px;margin:0 auto 30px;color:#f4d9df}footer{background:var(--navy-dark);color:#e9dfc9;padding:56px 0 30px;text-align:center}footer .fam{font-family:Fraunces,serif;font-style:italic;font-size:20px;color:#f7f0da;margin-bottom:22px}.rsvp{display:flex;justify-content:center;gap:48px;flex-wrap:wrap;margin-bottom:28px;font-size:16px}.rsvp div .name{color:#f7f0da;font-weight:600;display:block;margin-bottom:2px}.rsvp div .num{color:var(--gold-light)}.forever{font-family:Fraunces,serif;letter-spacing:.18em;text-transform:uppercase;font-size:13px;color:var(--gold-light);border-top:1px solid rgba(201,154,0,.3);padding-top:22px}.form-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#060f1fd9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:300;padding:20px}.form-modal.open{display:flex}.form-modal-content{background:var(--cream);width:100%;max-width:560px;border-radius:6px;border:2px solid var(--gold);position:relative;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 12px 40px #0009}.form-modal-header{padding:16px 24px;background:var(--navy);color:#fff6ea;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--gold)}.form-modal-header h3{color:#fff6ea;font-size:20px}.form-modal-close{background:none;border:none;color:var(--gold-light);font-size:28px;cursor:pointer;line-height:1;padding:0}.form-modal-body{padding:28px 24px}.custom-form{display:flex;flex-direction:column;gap:18px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-family:Fraunces,serif;color:var(--navy);font-size:17px;font-weight:500}.form-group input,.form-group textarea{width:100%;padding:12px;border:1px solid var(--rule);border-radius:4px;background:#fff;font-family:EB Garamond,serif;font-size:18px;color:var(--ink);outline:none;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--gold)}.form-group textarea{resize:vertical;min-height:110px}.form-submit-btn{background:var(--navy);color:#fff6ea;border:1px solid var(--gold);padding:12px 28px;font-family:EB Garamond,serif;font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:15px;cursor:pointer;transition:.2s;align-self:flex-start;margin-top:6px;text-align:center;text-decoration:none;display:inline-block}.form-submit-btn:hover{background:var(--navy-soft);color:#fff6ea}.form-success h4{font-size:26px;color:var(--navy);margin-bottom:10px}.form-success p{color:var(--ink-soft);font-size:18px}
