:root{
  --ivory:#f8f2e8;--paper:#fffaf2;--oat:#e9dcc8;--sand:#cdb28e;--sage:#87957b;--olive:#6f7e66;
  --forest:#34483a;--forest2:#26382e;--terracotta:#a85f43;--clay:#c88361;--gold:#c8942c;--navy:#2d3748;
  --brown:#6c4c39;--ink:#342f2a;--muted:#746a61;--line:rgba(80,61,44,.16);--shadow:0 24px 70px rgba(62,43,28,.14);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:"Avenir Next","Segoe UI",Arial,sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit}.site-header{position:sticky;top:0;z-index:60;min-height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:rgba(248,242,232,.9);backdrop-filter:blur(18px);border-bottom:1px solid rgba(104,76,57,.12)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none}.brand-monogram{width:42px;height:42px;border:1px solid rgba(108,76,57,.55);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:"Times New Roman",serif;letter-spacing:-1.5px;font-size:.94rem;line-height:1;white-space:nowrap;padding:0 1px}.brand-monogram span{display:inline-block;font-style:italic;color:var(--terracotta);margin:0 1px;line-height:1;transform:translateY(-.02em)}.brand-text{font-family:"Baskerville","Iowan Old Style","Times New Roman",serif;font-size:1.2rem;letter-spacing:.02em}.site-nav{display:flex;gap:30px}.site-nav a{text-decoration:none;font-size:.76rem;text-transform:uppercase;letter-spacing:.13em;font-weight:650;position:relative}.site-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:var(--terracotta);transition:.25s}.site-nav a:hover:after{right:0}.menu-toggle{display:none;border:0;background:transparent;font-size:1.5rem;color:var(--forest)}
.hero{min-height:calc(100vh - 76px);position:relative;display:grid;place-items:center;overflow:hidden;padding:70px 24px 85px;background:radial-gradient(circle at 50% 40%,rgba(255,250,242,.98) 0 33%,rgba(242,231,214,.94) 72%,rgba(229,213,190,.92) 100%)}.hero:before{content:"";position:absolute;inset:22px;border:1px solid rgba(116,91,64,.16);pointer-events:none}.hero-card{position:relative;z-index:4;text-align:center;width:min(770px,92vw);padding:74px 54px 60px;background:rgba(255,250,242,.72);box-shadow:0 28px 85px rgba(76,54,36,.09);border:1px solid rgba(116,91,64,.12);border-radius:220px 220px 26px 26px}.eyebrow{margin:0 0 12px;color:var(--terracotta);font-weight:700;letter-spacing:.2em;text-transform:uppercase;font-size:.72rem}.eyebrow.light{color:#f5d8a0}.hero-rule{width:180px;display:flex;align-items:center;gap:10px;margin:20px auto 28px;color:var(--gold)}.hero-rule:before,.hero-rule:after{content:"";height:1px;background:rgba(108,76,57,.28);flex:1}.hero-rule span{font-size:.75rem}.hero h1{margin:0;font-family:"Baskerville","Iowan Old Style","Times New Roman",serif;font-weight:400;line-height:.9}.hero h1 .first-name{display:block;font-size:clamp(3.6rem,8vw,7rem);letter-spacing:-.045em}.hero h1 b{display:block;font-family:"Snell Roundhand","Segoe Script","Brush Script MT",cursive;font-weight:400;color:var(--terracotta);font-size:clamp(3.8rem,7vw,6rem);line-height:.72;transform:rotate(-4deg);margin:3px 0 12px}.hero-date{font-family:"Baskerville","Times New Roman",serif;text-transform:uppercase;letter-spacing:.26em;font-size:1rem;margin:30px 0 4px;color:var(--forest)}.hero-location{margin:0;color:var(--muted);font-size:.86rem;text-transform:uppercase;letter-spacing:.15em}.hero-copy{max-width:540px;margin:25px auto 26px;color:#645b52}.hero-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:20px}.button{min-height:49px;padding:0 23px;border-radius:999px;border:1px solid transparent;font:inherit;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.primary{background:var(--forest);color:#fff}.primary:hover{background:var(--forest2)}.text-link{text-decoration:none;color:var(--brown);font-size:.9rem;border-bottom:1px solid rgba(108,76,57,.35);padding-bottom:2px}.hero-botanical{position:absolute;width:260px;height:390px;z-index:2;opacity:.6}.botanical-left{left:-30px;bottom:20px;transform:rotate(-13deg)}.botanical-right{right:-25px;top:55px;transform:scaleX(-1) rotate(-8deg)}.hero-botanical:before{content:"";position:absolute;width:2px;height:355px;background:var(--olive);left:110px;top:18px;transform:rotate(9deg);transform-origin:bottom}.hero-botanical i{position:absolute;width:86px;height:34px;border-radius:100% 0 100% 0;background:rgba(111,126,102,.72);transform-origin:right center}.hero-botanical i:nth-child(1){top:70px;left:29px;transform:rotate(24deg)}.hero-botanical i:nth-child(2){top:128px;left:107px;transform:scaleX(-1) rotate(18deg)}.hero-botanical i:nth-child(3){top:188px;left:28px;transform:rotate(14deg)}.hero-botanical i:nth-child(4){top:245px;left:106px;transform:scaleX(-1) rotate(25deg)}.hero-botanical i:nth-child(5){top:300px;left:38px;transform:rotate(9deg)}.scroll-note{position:absolute;bottom:24px;z-index:5;font-size:.65rem;letter-spacing:.17em;color:#7a6d60}.scroll-note span{margin-left:6px;color:var(--terracotta)}
.section{padding:112px 6vw}.section-inner{width:min(1160px,100%);margin:0 auto}.paper-section{background:var(--paper)}h2{font-family:"Baskerville","Iowan Old Style","Times New Roman",serif;font-weight:400;font-size:clamp(2.8rem,5vw,4.8rem);line-height:.98;letter-spacing:-.03em;margin:0 0 22px;color:var(--forest)}h3{font-family:"Baskerville","Iowan Old Style","Times New Roman",serif;font-size:1.55rem;font-weight:500;margin:0 0 5px}.center{text-align:center}.welcome{padding:96px 6vw}.welcome-grid{display:grid;grid-template-columns:170px 1fr;gap:45px 60px;align-items:center}.welcome-mark{width:160px;height:160px;border:1px solid var(--sand);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:"Baskerville","Times New Roman",serif;color:var(--brown);position:relative}.welcome-mark:before,.welcome-mark:after{content:"";position:absolute;inset:8px;border:1px solid rgba(205,178,142,.45);border-radius:50%}.welcome-mark span{font-size:2.2rem;line-height:1}.welcome-mark b{font:600 .65rem/1.5 "Avenir Next","Segoe UI",sans-serif;letter-spacing:.12em;color:var(--terracotta);margin:5px 0}.welcome-copy p:last-child{max-width:700px;color:var(--muted)}.quick-links{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.quick-links a{text-decoration:none;padding:28px 22px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:15px;transition:.2s}.quick-links a+a{border-left:1px solid var(--line)}.quick-links a:hover{background:#f3eadc}.link-number{grid-row:1/3;color:var(--terracotta);font-family:"Baskerville",serif;font-style:italic}.quick-links strong{font-family:"Baskerville","Times New Roman",serif;font-size:1.5rem;font-weight:500}.quick-links em{font-style:normal;font-size:.8rem;color:var(--muted);letter-spacing:.03em}
.timeline-section{background:#efe5d7;position:relative}.timeline-section:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(108,76,57,.06) .7px,transparent .7px);background-size:6px 6px;opacity:.5}.timeline-section .section-inner{position:relative}.section-heading{max-width:690px;margin:0 auto 62px}.section-heading>p:last-child{color:var(--muted)}.mini-ornament{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--gold);margin:17px auto}.mini-ornament span{width:55px;height:1px;background:rgba(108,76,57,.25)}.timeline{max-width:880px;margin:auto;position:relative}.timeline:before{content:"";position:absolute;left:208px;top:20px;bottom:20px;width:1px;background:rgba(108,76,57,.25)}.timeline-item{display:grid;grid-template-columns:170px 28px 1fr;gap:24px;align-items:start;padding:24px 0}.time-wrap{text-align:right;padding-top:2px}.time-wrap time{font-family:"Baskerville","Times New Roman",serif;font-size:1.4rem;color:var(--terracotta)}.time-wrap small{display:block;font-size:.58rem;letter-spacing:.18em;color:var(--muted)}.timeline-dot{width:11px;height:11px;border-radius:50%;background:var(--paper);border:2px solid var(--terracotta);margin:9px auto 0;position:relative;z-index:2}.timeline-item.featured .timeline-dot{background:var(--terracotta);box-shadow:0 0 0 6px rgba(168,95,67,.14)}.timeline-item p{margin:0;color:var(--muted);font-size:.94rem}
.parking-section{background:var(--forest);color:#f7f1e9;position:relative;overflow:hidden}.parking-section:after{content:"";position:absolute;width:500px;height:500px;border:1px solid rgba(255,255,255,.07);border-radius:50%;right:-180px;top:-170px}.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:center}.parking-section h2{color:#fff}.parking-copy>p:not(.eyebrow){color:rgba(255,255,255,.72);max-width:520px}.arrival-note{display:flex;gap:16px;align-items:flex-start;padding-top:24px;margin-top:28px;border-top:1px solid rgba(255,255,255,.16)}.arrival-note>span{color:#e9bd5c}.arrival-note strong{font-family:"Baskerville",serif;font-size:1.15rem}.arrival-note p{margin:4px 0 0;color:rgba(255,255,255,.65);font-size:.9rem}.map-frame{padding:13px;background:#f4eadc;box-shadow:0 28px 70px rgba(18,29,23,.35);transform:rotate(1deg);position:relative;z-index:2}.map-placeholder{min-height:430px;border:1px solid rgba(108,76,57,.26);background:#f7f0e5;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--ink);padding:40px;overflow:hidden}.map-placeholder:before{content:"";position:absolute;inset:14px;border:1px dashed rgba(108,76,57,.25)}.map-title{font-family:"Baskerville","Times New Roman",serif;font-size:2.4rem;color:var(--forest);position:relative}.map-placeholder p{position:relative;color:var(--muted);max-width:320px}.compass{position:absolute;top:36px;right:42px;font:600 .65rem/1.25 "Avenir Next",sans-serif;letter-spacing:.2em;color:var(--brown)}.compass span{letter-spacing:.08em}.map-path{position:absolute;width:270px;height:150px;border-left:2px dashed rgba(168,95,67,.55);border-bottom:2px dashed rgba(168,95,67,.55);border-radius:0 0 0 100px;left:50px;bottom:46px;transform:rotate(-10deg)}.outline-light{width:100%;margin-top:12px;background:transparent;border-color:rgba(108,76,57,.4);color:var(--brown)}.button:disabled{opacity:.62;cursor:not-allowed}
.honeymoon-section{background:var(--paper)}.honeymoon-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:center}.postcard-wrap{min-height:510px;position:relative;display:grid;place-items:center}.postcard-shadow{position:absolute;width:min(390px,88%);height:460px;background:#c8b79f;transform:rotate(-7deg);border-radius:10px;opacity:.45}.postcard{width:min(390px,88%);height:460px;background:linear-gradient(#7d9b84 0 51%,#ead3a4 51% 70%,#79a2a2 70%);position:relative;overflow:hidden;border:10px solid #fff8ed;box-shadow:var(--shadow);transform:rotate(3deg);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center}.postcard:after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,.65)}.postcard-sun{position:absolute;top:48px;right:58px;width:66px;height:66px;border-radius:50%;background:#e6bd59}.postcard-island{position:absolute;bottom:117px;left:0;right:0;margin:auto;width:240px;height:70px;border-radius:50% 50% 25% 25%;background:#4f765b;filter:drop-shadow(0 7px 0 rgba(42,91,76,.25))}.script-word{font-family:"Snell Roundhand","Segoe Script","Brush Script MT",cursive;font-size:5rem;line-height:.9;margin:0;position:relative;z-index:2;text-shadow:0 2px 10px rgba(0,0,0,.12)}.postcard strong,.postcard small{position:relative;z-index:2;letter-spacing:.2em}.postcard strong{font-size:.78rem;margin-top:14px}.postcard small{font-size:.58rem;margin-top:6px}.honeymoon-copy>p:not(.eyebrow):not(.privacy-note){color:var(--muted)}.payment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:28px 0 18px}.payment-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:20px 16px;text-align:left;font:inherit;cursor:pointer;transition:.2s}.payment-card:hover{transform:translateY(-4px);box-shadow:0 14px 35px rgba(62,43,28,.1);border-color:rgba(168,95,67,.35)}.payment-card span,.payment-card strong,.payment-card small{display:block}.pay-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:var(--terracotta);font-weight:800}.payment-card strong{font-family:"Baskerville",serif;font-size:1.05rem;margin:7px 0 4px}.payment-card small{font-size:.72rem;color:var(--muted)}.fund-ideas{display:flex;flex-wrap:wrap;gap:8px}.fund-ideas span{padding:6px 10px;border:1px solid rgba(108,76,57,.16);border-radius:999px;color:var(--brown);font-size:.73rem;background:#faf4e9}.privacy-note{font-size:.78rem;color:var(--muted);margin-top:17px}
.photos-section{background:var(--terracotta);color:#fff;position:relative;overflow:hidden}.photos-section:before{content:"";position:absolute;width:600px;height:600px;border:1px solid rgba(255,255,255,.08);border-radius:50%;left:-300px;bottom:-330px}.photo-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:center;position:relative}.photos-section h2{color:#fff}.photo-copy>p:not(.eyebrow){color:rgba(255,255,255,.74);max-width:480px}.photo-scribble{font-family:"Snell Roundhand","Segoe Script",cursive;font-size:5rem;color:rgba(255,255,255,.16);transform:rotate(-10deg);margin-top:24px}.upload-card{background:#fffaf2;color:var(--ink);padding:42px;border-radius:4px;box-shadow:0 30px 80px rgba(88,39,24,.25);position:relative}.upload-card:after{content:"";position:absolute;inset:11px;border:1px solid rgba(108,76,57,.13);pointer-events:none}.upload-icon{width:68px;height:68px;border:1px solid var(--sand);border-radius:50%;display:grid;place-items:center;margin-bottom:20px;position:relative;z-index:1}.upload-icon span{font-size:1.8rem;color:var(--terracotta);font-weight:300}.upload-kicker{font-size:.65rem;font-weight:800;letter-spacing:.17em;color:var(--terracotta);position:relative;z-index:1}.upload-card h3{font-size:2rem;position:relative;z-index:1}.upload-card>p:not(.upload-kicker){color:var(--muted);position:relative;z-index:1}.fake-upload{display:flex;flex-direction:column;border:1px dashed var(--sand);padding:21px 20px;margin:18px 0 12px;position:relative;z-index:1}.fake-upload.active-upload{cursor:pointer;transition:.2s;background:#fffdf8}.fake-upload.active-upload:hover{border-color:var(--terracotta);background:#fff8ee}.fake-upload span{font-weight:700}.fake-upload small{color:var(--muted)}.fake-upload input{display:none}.guest-name-field{position:relative;z-index:1;margin-top:22px}.guest-name-field label{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.11em;font-weight:800;color:var(--brown);margin-bottom:7px}.guest-name-field label small{text-transform:none;letter-spacing:0;font-weight:500;color:var(--muted)}.guest-name-field input{width:100%;min-height:48px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 14px;font:inherit;color:var(--ink);outline:none}.guest-name-field input:focus{border-color:rgba(168,95,67,.65);box-shadow:0 0 0 3px rgba(168,95,67,.09)}.selected-files{position:relative;z-index:1;font-size:.78rem;color:var(--muted);margin:0 2px 13px}.selected-files.ready{color:var(--forest);font-weight:650}.upload-button{width:100%;background:var(--forest);color:#fff;position:relative;z-index:1}.upload-progress{position:relative;z-index:1;margin-top:16px}.upload-progress-track{height:8px;border-radius:999px;background:#eadfce;overflow:hidden}.upload-progress-track span{display:block;height:100%;width:0;background:var(--terracotta);transition:width .25s ease}.upload-progress p{font-size:.78rem;color:var(--muted);margin:7px 1px 0}.upload-privacy{font-size:.73rem!important;line-height:1.5;margin:15px 2px 0!important;color:var(--muted)!important}
.faq-section{background:#ece2d4}.faq-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:85px;align-items:start}.faq-heading{position:sticky;top:115px}.faq-heading p:last-child{color:var(--muted)}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line);padding:0}.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;padding:24px 4px;font-family:"Baskerville","Times New Roman",serif;font-size:1.25rem}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary b{font-family:"Avenir Next",sans-serif;font-weight:300;color:var(--terracotta);font-size:1.4rem}.faq-list details[open] summary b{transform:rotate(45deg)}.faq-list p{margin:-8px 40px 25px 4px;color:var(--muted)}
footer{text-align:center;padding:65px 24px;background:var(--forest2);color:rgba(255,255,255,.76)}.footer-ornament{color:#deb456;margin-bottom:14px}.footer-names{font-family:"Baskerville","Times New Roman",serif;font-size:1.85rem;color:#fff;margin:0 0 3px}.footer-names span{font-family:"Snell Roundhand","Segoe Script",cursive;color:#e5b65b;font-size:1.25em}.footer-names+p{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase}.footer-ornament~a,footer>a{color:#e8cc8d;font-size:.82rem}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(120px);background:var(--forest2);color:#fff;padding:12px 18px;border-radius:999px;box-shadow:var(--shadow);transition:.25s;z-index:99}.toast.show{transform:translateX(-50%) translateY(0)}
@media(max-width:820px){.site-header{min-height:68px;padding:0 19px}.brand-text{font-size:1.02rem}.brand-monogram{width:37px;height:37px}.menu-toggle{display:block}.site-nav{position:absolute;top:68px;left:0;right:0;display:none;flex-direction:column;gap:0;padding:8px 20px 20px;background:rgba(248,242,232,.98);border-bottom:1px solid var(--line)}.site-nav.open{display:flex}.site-nav a{padding:14px 2px;border-bottom:1px solid var(--line)}.site-nav a:after{display:none}.hero{min-height:calc(100vh - 68px);padding:38px 14px 70px}.hero:before{inset:9px}.hero-card{width:100%;padding:58px 23px 48px;border-radius:150px 150px 20px 20px}.hero h1 .first-name{font-size:clamp(3rem,14vw,4.8rem)}.hero h1 b{font-size:3.7rem}.hero-date{font-size:.82rem}.hero-botanical{width:180px;height:300px;opacity:.28}.botanical-left{left:-100px}.botanical-right{right:-95px}.scroll-note{bottom:15px}.section{padding:78px 22px}.welcome{padding:72px 22px}.welcome-grid{grid-template-columns:1fr;gap:28px}.welcome-mark{width:130px;height:130px;margin:auto}.welcome-copy{text-align:center}.quick-links{grid-template-columns:1fr}.quick-links a+a{border-left:0;border-top:1px solid var(--line)}.quick-links a{padding:20px 10px}.timeline-section .section-heading{margin-bottom:38px}.timeline:before{left:8px}.timeline-item{grid-template-columns:1fr;gap:5px;padding:17px 0 17px 28px;position:relative}.time-wrap{text-align:left}.time-wrap small{display:inline;margin-left:5px}.timeline-dot{position:absolute;left:3px;top:23px}.split,.honeymoon-grid,.photo-layout,.faq-grid{grid-template-columns:1fr;gap:48px}.map-placeholder{min-height:340px}.map-frame{transform:none}.parking-section{padding-top:82px}.honeymoon-grid{gap:32px}.postcard-wrap{min-height:410px}.postcard,.postcard-shadow{height:375px}.script-word{font-size:4rem}.payment-grid{grid-template-columns:1fr}.payment-card{text-align:center}.photo-layout{gap:35px}.upload-card{padding:34px 24px}.faq-heading{position:static;text-align:center}.faq-grid{gap:30px}.faq-list summary{font-size:1.15rem}.footer-names{font-size:1.5rem}}


/* Seating chart */
.seating-section { background: #f7efe2; }
.seating-chart-frame { max-width: 1180px; margin: 2rem auto 0; padding: 12px; background: #fffaf1; border: 1px solid rgba(80,55,30,.18); box-shadow: 0 18px 50px rgba(55,38,20,.12); border-radius: 8px; }
.seating-chart-image { display: block; width: 100%; height: auto; border-radius: 4px; }
@media (max-width: 700px) { .seating-chart-frame { padding: 6px; margin-top: 1.25rem; } }

/* Guest parking map */
.parking-map-frame { gap: 1rem; }
.parking-map-image {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 3px;
  box-shadow: 0 18px 42px rgba(25, 20, 14, .24);
}
.parking-map-frame .button { align-self: center; }
