:root{--cream:#f7f3ee;--paper:#fffcf8;--ink:#4d392e;--taupe:#8b7262;--gold:#a9947d;--line:#d9cec4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font:400 15px/1.75 'DM Sans',sans-serif;overflow-x:hidden}a{color:inherit}button{font:inherit}img{display:block;width:100%;height:100%;object-fit:cover}.cream{background:var(--cream)}em{font-weight:400;font-style:italic;font-family:Georgia,serif}.eyebrow{font:500 10px/1.4 Jost,sans-serif;letter-spacing:.31em;text-transform:uppercase}.floating-header{position:fixed;top:24px;left:clamp(16px,4vw,70px);right:clamp(16px,4vw,70px);z-index:40;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.floating-header a{pointer-events:auto}.monogram{display:flex;align-items:center;gap:6px;text-decoration:none;color:#fff;font:30px Italiana,serif;text-shadow:0 2px 16px #0008;transition:color .3s}.monogram i{font-size:20px}.head-rsvp{background:#f8f0e7;color:#583c31;border:1px solid #f5ede4;box-shadow:0 8px 30px #0002;border-radius:2px;text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.2em;padding:13px 23px;transition:transform .3s,background .3s}.head-rsvp:hover{background:#e9dccb;transform:translateY(-3px)}.head-rsvp span{font-size:17px;margin-left:13px}.header-scrolled .monogram{color:var(--ink);text-shadow:0 1px 18px #fff}.hero{min-height:760px;height:100svh;position:relative;background:#9f8b7a;color:white;overflow:hidden;display:grid;place-items:center;text-align:center}.hero-image,.hero-shade,.hero-frame{position:absolute;inset:0}.hero-image img{animation:heroZoom 19s ease-out both;object-position:center 43%}.hero-shade{background:linear-gradient(180deg,#291a1890 0%,#2c1a1440 32%,#2719108a 100%)}.hero-frame{inset:18px;border:1px solid #ffffff59;pointer-events:none}.hero-content{position:relative;z-index:2;padding:30px;animation:enter 1.25s .15s both}.hero h1{font:clamp(75px,11vw,170px)/.87 Italiana,Georgia,serif;letter-spacing:-.05em;margin:27px 0 20px}.hero h1 span{display:block}.hero h1 em{display:block;font:italic clamp(43px,6vw,80px) Georgia,serif;line-height:1.1}.hero-content p{font-size:14px;letter-spacing:.08em;margin:16px 0 30px}.hero-kicker{color:#f2dfd0}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:45px;padding:15px 21px;min-width:215px;text-decoration:none;letter-spacing:.15em;text-transform:uppercase;font-size:11px;font-weight:600;transition:transform .3s,background .3s}.btn:hover{transform:translateY(-5px)}.btn span{font-size:19px}.btn-light{background:var(--paper);color:var(--ink)}.btn-dark{background:var(--ink);color:white}.scroll-cue{position:absolute;bottom:35px;left:50%;transform:translateX(-50%);color:white;display:flex;align-items:center;gap:13px;text-decoration:none;z-index:3;font-size:10px;text-transform:uppercase;letter-spacing:.2em}.scroll-cue b{font-size:20px}.hero-counter{position:absolute;bottom:42px;right:65px;font-size:10px;letter-spacing:.2em}.welcome{padding:110px clamp(22px,6vw,100px) 130px}.section-intro{text-align:center;max-width:640px;margin:auto}.section-intro h2,.gallery-head h2,.story-copy h2,.faq-heading h2,.fund-inner h2,.final-cta h2{font:clamp(42px,5.3vw,83px)/1.05 Italiana,Georgia,serif;font-weight:400;letter-spacing:-.035em;margin:20px 0}.section-intro p{font-size:14px;color:#806f65;max-width:520px;margin:20px auto}.intro-images{position:relative;max-width:1050px;margin:85px auto 0;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:65px}.arch-image{margin:0;height:530px;overflow:hidden;border-radius:350px 350px 0 0}.intro-quote{text-align:center;font:clamp(31px,4vw,64px)/1.1 Italiana,serif}.intro-quote em{display:block}.intro-quote span{display:block;font:10px Jost,sans-serif;letter-spacing:.25em;text-transform:uppercase;margin-top:25px}.story{display:grid;grid-template-columns:1fr 1fr;min-height:750px;background:#e8e0d8}.story-photo{min-height:710px;overflow:hidden}.story-photo img{transition:transform 1s}.story-photo:hover img{transform:scale(1.04)}.story-copy{align-self:center;padding:clamp(40px,8vw,130px)}.story-copy h2{margin-top:26px}.story-copy p{color:#6d5d53;line-height:1.95}.rule{width:56px;height:1px;background:var(--taupe);margin:34px 0}.signature{font:italic 28px Georgia,serif;display:block;margin-top:40px}.details,.party-section,.faq-section{padding:120px clamp(18px,6vw,110px)}.details-grid{max-width:1140px;margin:75px auto 40px;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.detail-card{border:1px solid var(--line);padding:40px 32px 50px;background:#ffffff6b;transition:transform .35s,box-shadow .35s}.detail-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px #5b3b2314}.detail-icon{font-size:40px;margin:25px 0}.card-number{font-size:10px;letter-spacing:.18em}.detail-card h3{font:32px Italiana,serif;margin:14px 0}.detail-card p{color:#827267;font-size:13px}.detail-foot{display:flex;align-items:center;justify-content:space-between;max-width:1140px;margin:auto;border-top:1px solid var(--line);padding:25px 0;font-size:13px}.detail-foot a{text-transform:uppercase;letter-spacing:.17em;font-size:11px}.gallery-section{padding:110px 0 90px;background:#e9e1d9;overflow:hidden}.gallery-head{display:flex;justify-content:space-between;align-items:end;max-width:1300px;margin:0 auto 60px;padding:0 48px}.gallery-head p{font-size:13px;color:#87776c}.gallery-track{display:flex;overflow-x:auto;gap:16px;padding:0 6vw 24px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#aa9789 transparent}.gallery-card{position:relative;border:0;min-width:clamp(260px,30vw,410px);height:clamp(360px,41vw,540px);padding:0;overflow:hidden;background:#b8a79b;scroll-snap-align:center;cursor:zoom-in}.gallery-card img{transition:transform .7s}.gallery-card:hover img{transform:scale(1.065)}.zoom-icon{position:absolute;right:16px;bottom:17px;background:#fffcf9ee;width:36px;height:36px;display:grid;place-items:center}.gallery-hint{text-align:center;font-size:10px;letter-spacing:.2em;text-transform:uppercase;margin-top:27px}.party-section{background:#f8f5f0}.party-label{text-align:center;font:11px Jost,sans-serif;letter-spacing:.23em;margin:72px auto 30px}.party-label span{margin:0 10px;color:var(--gold)}.people-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;max-width:1230px;margin:0 auto}.person{min-width:0}.person-photo{height:clamp(210px,26vw,360px);border-radius:180px 180px 0 0;overflow:hidden;background:#dfd4c7}.person-photo img{object-position:center 22%;transition:transform .6s}.person:hover img{transform:scale(1.07)}.person-info{text-align:center;padding:20px 4px}.person-info span{font:10px Jost,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#927c6b}.person-info h3{font:25px Italiana,Georgia,serif;margin:7px 0}.quote-section{height:650px;position:relative;color:#fff;display:grid;place-items:center;text-align:center;overflow:hidden}.quote-section>img,.quote-overlay{position:absolute;inset:0}.quote-overlay{background:#2a1b1682}.quote-content{position:relative;padding:25px}.quote-content h2{font:clamp(55px,8vw,110px)/1 Italiana,serif;margin:25px 0}.quote-content>span{font-size:10px;letter-spacing:.25em}.fund-section{padding:115px 20px}.fund-inner{text-align:center;max-width:600px;margin:auto}.fund-inner p{color:#806f65}.bank-box{text-align:left;border:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;margin:45px 0 0;padding:15px 27px}.bank-box div{border-bottom:1px solid var(--line);padding:17px}.bank-box .wide{grid-column:1/-1;border:0}.bank-box small{display:block;font-size:9px;letter-spacing:.17em;color:#967d6d}.bank-box strong{font-size:13px;font-weight:500}.faq-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;background:#eae2d9}.faq-heading h2{margin-top:24px}.faq-list{align-self:center}.faq-item{border-bottom:1px solid #cabdb0}.faq-item summary{list-style:none;cursor:pointer;padding:23px 0;font-size:14px;display:flex;justify-content:space-between;gap:18px}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary span{font-size:22px;transition:transform .3s}.faq-item[open] summary span{transform:rotate(45deg)}.faq-item p{font-size:13px;color:#7d6d61;line-height:1.8;padding:0 30px 20px 0;margin:0}.final-cta{padding:125px 20px;text-align:center;background:#f9f5f0}.final-cta p{margin:20px auto 35px;color:#806f65}.final-signature{margin-top:80px;font:45px Italiana,serif}footer{background:#4d392e;color:#ede3d9;display:flex;justify-content:space-between;padding:28px 5vw;font-size:11px}.lightbox[hidden]{display:none}.lightbox{position:fixed;z-index:100;inset:0;background:#140d0be9;display:flex;justify-content:center;align-items:center}.lightbox img{width:auto;height:auto;max-height:85vh;max-width:83vw;object-fit:contain}.lightbox button{position:absolute;cursor:pointer;border:none;background:#ffffff20;color:#fff;padding:10px 15px;font-size:28px}.lightbox-close{top:25px;right:30px}.lightbox-prev{left:18px}.lightbox-next{right:18px}#progress{position:fixed;top:0;left:0;height:3px;width:0;background:#b69a82;z-index:100}.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s,transform .9s}.reveal.visible{opacity:1;transform:translateY(0)}.head-rsvp:focus-visible,.btn:focus-visible,button:focus-visible{outline:3px solid #b69a82;outline-offset:4px}@keyframes heroZoom{from{transform:scale(1.13)}to{transform:scale(1)}}@keyframes enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.people-grid{grid-template-columns:repeat(3,1fr);gap:15px}.story-copy{padding:35px}.faq-section{gap:35px}.intro-images{gap:25px}.hero-counter{display:none}}@media(max-width:640px){.floating-header{left:17px;right:17px;top:17px}.monogram{font-size:26px}.head-rsvp{font-size:11px;padding:12px 15px;letter-spacing:.12em}.hero{min-height:620px;height:100svh}.hero-image img{object-position:52% center}.hero-frame{inset:9px}.hero h1{font-size:clamp(63px,16vw,100px)}.hero h1 em{font-size:55px}.hero-content p{font-size:12px}.scroll-cue{bottom:20px}.welcome{padding:80px 22px}.intro-images{display:block;margin-top:50px}.arch-image{height:420px}.intro-quote{padding:50px 0 0}.story{display:flex;flex-direction:column}.story-photo{min-height:0;height:420px}.story-copy{padding:60px 25px 75px}.details,.party-section,.faq-section{padding:75px 19px}.details-grid{grid-template-columns:1fr;gap:12px;margin-top:40px}.detail-card{padding:26px}.detail-icon{margin:5px 0;font-size:30px}.detail-card h3{margin:9px 0}.detail-card p{margin:5px 0}.detail-foot{display:block;text-align:center;line-height:2.3}.detail-foot a{display:block}.gallery-head{display:block;padding:0 23px;margin-bottom:35px}.gallery-track{gap:12px;padding-left:22px}.gallery-card{min-width:78vw;height:430px}.people-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.person-photo{height:245px}.person-info h3{font-size:20px}.party-label{font-size:9px;margin-top:48px}.quote-section{height:470px}.bank-box{padding:7px;gap:0}.bank-box div{padding:13px 8px}.bank-box strong{font-size:11px;overflow-wrap:anywhere}.faq-section{display:block}.faq-list{margin-top:35px}.final-cta{padding:85px 20px}footer{display:block;text-align:center}footer span{display:block;margin-top:7px}}@media(max-width:370px){.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.person-photo{height:180px}.person-info h3{font-size:17px}.hero h1{font-size:62px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

/* Compact, editorial wedding-party portraits — never billboard-sized */
.party-section .people-grid{max-width:960px;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.8vw,20px);margin-inline:auto}
.party-section .person{max-width:225px;width:100%;margin-inline:auto}
.party-section .person-photo{height:auto;aspect-ratio:3/4;max-height:270px;border-radius:130px 130px 0 0}
.party-section .person-photo img{width:100%;height:100%;object-fit:cover;object-position:center 24%}
.party-section .person-info{padding:12px 2px 18px}
@media(max-width:800px){.party-section .people-grid{max-width:570px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.party-section .person-photo{max-height:230px}}
@media(max-width:530px){.party-section .people-grid{max-width:390px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.party-section .person-photo{max-height:210px}.party-section .person-info{padding:10px 2px 14px}}

/* Missing original portraits: editorial placeholders, not unrelated stock faces. */
.party-section .placeholder-photo{display:grid;place-items:center;background:radial-gradient(ellipse at 45% 30%,#e9e2d9,#d9c9b8);border:1px solid #d1bfae}
.portrait-monogram{display:grid;place-items:center;gap:8px;color:#7c6352}.portrait-monogram span{font:32px Georgia,serif}.portrait-monogram strong{font:clamp(36px,4vw,58px) Italiana,Georgia,serif;font-weight:400;letter-spacing:.06em}

/* Editorial hero composition: couple to the right, lettering to the left */
@media (min-width: 641px) {
  .hero { place-items: center start; text-align: left; }
  .hero-content { width: min(52vw, 740px); margin-left: clamp(30px, 6vw, 115px); padding: 25px 0; }
  .hero h1 { font-size: clamp(70px, 8.2vw, 132px); margin: 24px 0; }
  .hero h1 em { font-size: clamp(42px, 5vw, 70px); }
  .hero-image { overflow: hidden; }
  .hero-image img { object-position: center 43%; animation: heroShiftRight 19s ease-out both; }
  .hero-shade { background: linear-gradient(90deg, rgba(24,15,12,.74) 0%, rgba(35,22,18,.47) 36%, rgba(23,15,13,.12) 75%), linear-gradient(0deg, rgba(23,15,13,.44), transparent 30%); }
}
@keyframes heroShiftRight { from { transform:translateX(13%) scale(1.30); } to { transform:translateX(11%) scale(1.25); } }
@media (max-width: 640px) {
  .hero-image img {object-position: 44% center;}
  .hero-content { transform: none; padding: 25px 19px; }
  .hero h1 { text-shadow: 0 2px 20px #23150f55; }
}

/* Wedding details CTA and cinematic interaction layer */
.details-action{display:inline-flex;margin-top:26px;text-decoration:none}
.view-details-link{display:inline-flex;align-items:center;margin-right:20px;text-decoration:underline;text-underline-offset:6px}
.cover-details{max-width:440px;margin:20px auto 20px;text-align:center;border-top:1px solid #c8bfaf;border-bottom:1px solid #c8bfaf;padding:16px 4px;color:#554b41}
.cover-details-title{letter-spacing:3px;font-size:10px;margin:0 0 14px;color:#6c7159;font-weight:600}
.cover-details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 20px}
.cover-details-grid div{display:grid;gap:4px}
.cover-details-grid span{font-size:9px;letter-spacing:1.5px;color:#777366}
.cover-details-grid strong{font-size:12px;font-weight:500;line-height:1.35}
@media(max-width:520px){.cover-details{margin:12px auto;padding:12px 4px}.cover-details-grid{gap:8px 12px}.cover-details-grid strong{font-size:11px}}
/* Soft image movement only, respecting motion accessibility */
@media(prefers-reduced-motion:no-preference){.detail-card,.party-card,.gallery-item{transition:transform .65s cubic-bezier(.2,.8,.2,1),box-shadow .65s ease}.detail-card:hover,.party-card:hover,.gallery-item:hover{transform:translateY(-7px)}.reveal{will-change:opacity,transform}}

.lightbox-close,.lightbox-prev,.lightbox-next{font-size:13px!important;letter-spacing:.12em;text-transform:uppercase;}
.lightbox-prev,.lightbox-next{top:50%;transform:translateY(-50%)}
.details-grid{grid-template-columns:repeat(6,1fr)}.detail-card{grid-column:span 3}.schedule-card{grid-column:1/-1;padding:40px 32px}
.schedule{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(5,auto);grid-auto-flow:column;column-gap:56px}
.schedule li{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--line)}
.schedule time{font-size:12px;letter-spacing:.08em;color:var(--ink);padding-top:3px}
.schedule strong{display:block;font:400 22px Italiana,serif;color:var(--ink)}
.schedule p{margin:4px 0 0!important}
@media(max-width:900px){.schedule{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}}
@media(max-width:640px){.details-grid{grid-template-columns:1fr}.detail-card,.schedule-card{grid-column:auto}.schedule-card{padding:26px}.schedule li{grid-template-columns:1fr;gap:4px}}
.schedule-card h3 small{display:block;font:400 12px 'DM Sans',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--taupe);margin-top:4px}
.friday-card .schedule{grid-template-rows:repeat(2,auto)}
.schedule-note{margin:18px 0 0!important;padding-top:14px;border-top:1px solid var(--line);font-style:italic}
@media(max-width:900px){.friday-card .schedule{grid-template-rows:none}}
.bank-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:22px}.btn-line{font:inherit;font-size:12px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--ink);background:transparent;border:1px solid var(--taupe);padding:12px 20px;cursor:pointer}.btn-line:hover{background:var(--ink);color:#fff}
