:root{--ivory: #f5efe4;--ivory-warm: #efe6d6;--deep: #1a1f1c;--sage: #7a8471;--sage-soft: #a9b09f;--rose: #c4a29a;--brass: #a08856;--serif: "Cormorant Garamond", "Georgia", serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--max-w: 880px;--nav-h: 68px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--ivory);color:var(--deep);font-family:var(--sans);font-weight:300;font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img{display:block;max-width:100%}a{color:inherit}.nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);padding:0 clamp(20px,4vw,48px);display:flex;align-items:center;justify-content:space-between;z-index:100;transition:background .4s ease,backdrop-filter .4s ease,border-color .4s ease;border-bottom:1px solid transparent}.nav--scrolled{background:#f5efe4d1;backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);border-bottom-color:#1a1f1c14}.nav__monogram{font-family:var(--serif);font-size:22px;letter-spacing:.24em;text-decoration:none;color:var(--deep)}.nav__amp{font-style:italic;color:var(--brass);margin:0 2px}.nav__links{list-style:none;display:flex;gap:clamp(18px,2.5vw,34px);align-items:center}.nav__links a{font-family:var(--sans);font-size:13px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--deep);padding:8px 0;border-bottom:1px solid transparent;transition:border-color .22s ease,color .22s ease}.nav__links a:hover{border-bottom-color:var(--brass);color:var(--brass)}.nav__toggle{display:none;background:transparent;border:none;cursor:pointer;padding:8px;gap:5px;flex-direction:column}.nav__toggle span{display:block;width:22px;height:1px;background:var(--deep)}.hero{min-height:100vh;padding:calc(var(--nav-h) + 40px) 24px 64px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:40px}.hero__portrait{position:relative;width:min(520px,82vw);aspect-ratio:3 / 4}.hero__photo{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/hero.jpg),linear-gradient(180deg,#d8d3c6,#b8b4a6 60%,#8f9585);background-size:cover;background-position:center 30%;filter:sepia(.08) contrast(1.02) brightness(.98);box-shadow:inset 0 0 0 1px #f5efe4b3,inset 0 0 0 2px #1a1f1c0d,0 28px 60px -30px #1a1f1c66}.hero__photo:before{content:"";position:absolute;inset:0 0 auto 0;height:20%;background:linear-gradient(180deg,#00000059,#00000014 70%,#0000);pointer-events:none}.hero__photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 50%,rgba(26,31,28,.18) 100%);pointer-events:none}.hero__monogram{position:absolute;top:2%;left:0;right:0;display:flex;align-items:baseline;justify-content:center;gap:10px;color:#ffffffeb;font-family:var(--serif);text-shadow:0 1px 2px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.5),0 4px 22px rgba(0,0,0,.45);flex-wrap:wrap;z-index:2}.hero__mono-letter{font-size:clamp(30px,6vw,44px);letter-spacing:.28em;font-weight:500}.hero__mono-amp{font-style:italic;font-size:clamp(28px,5vw,40px);color:#fffffffa}.hero__mono-headline{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(24px,4.6vw,40px);letter-spacing:.02em;line-height:1.15;color:#fffffff5;text-align:center;padding:0 12px}.hero__mono-date{flex-basis:100%;font-family:var(--sans);font-size:12px;letter-spacing:.32em;text-transform:uppercase;margin-top:4px;color:#ffffffe6;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.6),0 2px 6px rgba(0,0,0,.5),0 3px 14px rgba(0,0,0,.45)}.hero__caption{display:flex;flex-direction:column;gap:12px;align-items:center;max-width:620px}.hero__names{font-family:var(--serif);font-weight:400;font-size:clamp(48px,8vw,84px);letter-spacing:.02em;line-height:1.05}.hero__names em{font-style:italic;color:var(--brass);padding:0 6px}.hero__subnames{font-family:var(--serif);font-style:italic;font-size:clamp(18px,2.4vw,22px);color:var(--sage)}.hero__venue,.hero__date{font-family:var(--sans);font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--deep)}.hero__date{color:var(--sage);margin-top:-4px}.hero__actions{margin-top:20px;display:flex;gap:14px;flex-wrap:wrap;justify-content:center}.add-cal{position:relative;display:inline-block}.add-cal__menu{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:200px;background:var(--ivory);border:1px solid rgba(26,31,28,.12);border-radius:8px;box-shadow:0 4px 12px #1a1f1c14,0 12px 32px #1a1f1c24;padding:6px;z-index:40;display:flex;flex-direction:column}.add-cal__option{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;font-family:var(--sans);font-size:14px;color:var(--deep);text-align:left;padding:10px 14px;border-radius:6px;cursor:pointer;text-decoration:none;letter-spacing:.02em;transition:background-color .16s ease,color .16s ease}.add-cal__option:hover,.add-cal__option:focus-visible{background:#7a84711f;color:var(--deep);outline:none}.hero__countdown{margin-top:18px;font-family:var(--serif);font-style:italic;font-size:17px;color:var(--sage)}.hero__countdown em{color:var(--brass)}.hero__bridge{max-width:560px;margin-top:8px;font-family:var(--serif);font-style:italic;font-size:clamp(17px,2vw,20px);color:var(--sage);line-height:1.6}.dot{color:var(--sage-soft);margin:0 6px}.btn{display:inline-block;padding:14px 28px;font-family:var(--sans);font-size:12px;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;border:1px solid var(--deep);background:transparent;color:var(--deep);cursor:pointer;transition:all .26s ease}.btn:hover,.btn--solid{background:var(--deep);color:var(--ivory)}.btn--solid:hover{background:var(--brass);border-color:var(--brass)}.btn--ghost{border-color:var(--sage);color:var(--sage)}.btn--ghost:hover{background:var(--sage);color:var(--ivory);border-color:var(--sage)}.btn--wide{width:100%}.section{max-width:var(--max-w);margin:0 auto;padding:96px 24px;scroll-margin-top:var(--nav-h)}.eyebrow{font-family:var(--sans);font-size:11px;letter-spacing:.36em;text-transform:uppercase;color:var(--brass);text-align:center;margin-bottom:14px}.section__title{font-family:var(--serif);font-weight:400;font-size:clamp(38px,5vw,56px);text-align:center;letter-spacing:.01em;line-height:1.15;margin-bottom:48px}.section__note{margin-top:40px;text-align:center;font-family:var(--serif);font-style:italic;color:var(--sage);font-size:16px}.subheading{font-family:var(--serif);font-weight:500;font-size:24px;margin-bottom:16px;color:var(--deep)}.prose{max-width:640px;margin:0 auto}.prose p{margin-bottom:20px}.prose__signoff{font-family:var(--serif);font-style:italic;font-size:20px;text-align:center;color:var(--sage);margin-top:32px}.prose__signature{text-align:center;font-family:var(--serif);font-size:18px;letter-spacing:.1em;margin-top:8px;color:var(--deep)}.divider{display:flex;justify-content:center;color:var(--sage-soft);padding:8px 0}.divider svg{width:160px;height:auto}.timeline{list-style:none;position:relative;max-width:640px;margin:0 auto;padding-left:40px}.timeline:before{content:"";position:absolute;left:8px;top:12px;bottom:12px;width:1px;background:linear-gradient(180deg,transparent,var(--sage-soft),transparent)}.timeline__item{position:relative;margin-bottom:44px}.timeline__item:last-child{margin-bottom:0}.timeline__marker{position:absolute;left:-37px;top:12px;width:11px;height:11px;border-radius:50%;background:var(--ivory);border:1px solid var(--brass);box-shadow:0 0 0 4px var(--ivory)}.timeline__card{padding:20px 24px 24px;background:var(--ivory-warm);border:1px solid rgba(26,31,28,.08)}.timeline__day{font-family:var(--sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--brass)}.timeline__kind{font-family:var(--serif);font-style:italic;color:var(--sage);margin-top:2px}.timeline__time{font-family:var(--serif);font-size:22px;margin-top:12px}.timeline__title{font-family:var(--serif);font-weight:500;font-size:24px;margin-top:2px}.timeline__venue{font-family:var(--sans);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);margin-top:6px;margin-bottom:12px}.timeline__dress{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--brass);margin:-4px 0 12px}.timeline__dress strong{font-style:normal;font-family:var(--sans);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--sage);margin-right:8px}.timeline__body{color:var(--deep);opacity:.85}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:56px}.clean-list{list-style:none;display:flex;flex-direction:column;gap:16px}.clean-list li{padding-left:16px;border-left:1px solid var(--sage-soft)}.two-col p{margin-bottom:16px}.code{display:inline-block;padding:2px 10px;background:var(--ivory-warm);border:1px solid var(--sage-soft);font-family:var(--serif);letter-spacing:.18em;font-size:15px}.note{margin:20px 0;padding:18px 20px;background:var(--ivory-warm);border-left:2px solid var(--brass);font-family:var(--serif);font-style:italic;color:var(--deep)}.muted{color:var(--sage);font-size:15px}.faq{max-width:720px;margin:0 auto}.faq__item{border-bottom:1px solid rgba(26,31,28,.12)}.faq__item:first-child{border-top:1px solid rgba(26,31,28,.12)}.faq__q{list-style:none;cursor:pointer;padding:22px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;font-family:var(--serif);font-size:22px;color:var(--deep);transition:color .22s ease}.faq__q::-webkit-details-marker{display:none}.faq__q:hover{color:var(--brass)}.faq__icon{font-family:var(--serif);font-size:24px;color:var(--brass);transition:transform .26s ease;line-height:1}.faq__item[open] .faq__icon{transform:rotate(45deg)}.faq__a{padding:0 0 22px;max-width:620px;color:var(--deep);opacity:.85;white-space:pre-line}.rsvp__intro{max-width:620px;margin:0 auto 48px;text-align:center;font-family:var(--serif);font-size:19px;font-style:italic;color:var(--deep);opacity:.9}.rsvp__form{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:24px}.field{display:flex;flex-direction:column;gap:8px}.field>span,.field legend{font-family:var(--sans);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--sage)}.field input[type=text],.field input[type=email],.field input[type=tel],.field textarea{border:none;border-bottom:1px solid var(--sage-soft);background:transparent;padding:10px 2px;font-family:var(--serif);font-size:18px;color:var(--deep);transition:border-color .22s ease}.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--brass)}.field--radio,.field--check{border:none;padding:0;display:flex;flex-direction:column;gap:10px}.field--radio label,.field--check label{display:flex;align-items:center;gap:12px;cursor:pointer;font-family:var(--serif);font-size:18px}.field--radio input,.field--check input{accent-color:var(--brass);width:16px;height:16px}.field--inline{flex-direction:row;align-items:center;gap:12px;cursor:pointer}.field--inline>span{font-family:var(--serif);font-size:18px;color:var(--deep);letter-spacing:0;text-transform:none}.field--inline input{accent-color:var(--brass);width:16px;height:16px}.rsvp__form .btn{margin-top:12px}.footer{padding:60px 24px 40px;text-align:center;border-top:1px solid rgba(26,31,28,.08);background:var(--ivory-warm)}.footer__line{font-family:var(--sans);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--sage)}.footer__amp{font-family:var(--serif);font-style:italic;color:var(--brass);margin:0 4px}.footer__love{margin-top:12px;font-family:var(--serif);font-style:italic;color:var(--sage);font-size:16px}@media (max-width: 720px){.nav__toggle{display:flex}.nav__links{position:absolute;top:var(--nav-h);left:0;right:0;background:var(--ivory);flex-direction:column;padding:24px;gap:18px;border-bottom:1px solid rgba(26,31,28,.08);transform:translateY(-8px);opacity:0;pointer-events:none;transition:all .24s ease}.nav__links--open{transform:translateY(0);opacity:1;pointer-events:auto}.two-col{grid-template-columns:1fr;gap:40px}.section{padding:72px 24px}.hero{gap:32px}}.gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:32px 24px;background:radial-gradient(ellipse at top,rgba(160,136,86,.1) 0%,transparent 60%),linear-gradient(180deg,var(--ivory) 0%,var(--ivory-warm) 100%);overflow-y:auto}.gate__inner{width:100%;max-width:420px;text-align:center;padding:48px 32px;border:1px solid rgba(26,31,28,.08);background:#f5efe499;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.gate__monogram{font-family:var(--serif);font-size:42px;letter-spacing:.28em;color:var(--deep);margin-bottom:32px;display:flex;justify-content:center;align-items:baseline;gap:10px}.gate__monogram em{font-style:italic;color:var(--brass);font-size:36px}.gate__eyebrow{font-family:var(--sans);font-size:11px;letter-spacing:.36em;text-transform:uppercase;color:var(--brass);margin-bottom:14px}.gate__title{font-family:var(--serif);font-weight:400;font-size:40px;letter-spacing:.01em;line-height:1.15;margin-bottom:20px}.gate__prose{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--sage);line-height:1.6;max-width:340px;margin:0 auto 32px}.gate__form{display:flex;flex-direction:column;gap:20px;text-align:left}.gate__form .field>span{text-align:center}.gate__form input[type=password]{text-align:center;letter-spacing:.3em}.gate__error{font-family:var(--serif);font-style:italic;color:var(--rose);text-align:center;font-size:15px;margin-top:-4px}.gate__footer{margin-top:36px;font-family:var(--sans);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--sage)}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
