@import url("https://fonts.googleapis.com/css2?family=Great+Vibes&family=Pinyon+Script&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Montserrat:wght@400;500;600;700&display=swap");@font-face{font-family:Brittany Signature;src:url(/fonts/BrittanySignature.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--cream:#f8f1e6;--ivory:#fffaf2;--burgundy:#581e30;--emerald:#113b30;--gold:#bb8e42;--ink:#3e352f;--header-height:82px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Cormorant Garamond,Georgia,serif;font-size:21px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;height:auto}section[id]{scroll-margin-top:calc(var(--header-height) + 8px)}.site-header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,5vw,84px);background:var(--ivory);position:-webkit-sticky;position:sticky;top:0;z-index:20;border-bottom:1px solid #e6d8bf}.footer-monogram,.wordmark{font-size:34px;color:var(--emerald);letter-spacing:.12em}.wordmark{display:flex;align-items:center;line-height:0}.wordmark img{height:34px;width:auto;display:block}.footer-logo{height:78px;width:auto;display:block;margin:2px 0 6px;filter:brightness(0) invert(1)}.footer-monogram span,.wordmark span{color:var(--gold);font-style:italic}.nav-links{display:flex;gap:28px}.menu-button,.nav-links a,.nav-rsvp{font:600 11px Montserrat,sans-serif;letter-spacing:.1em;text-transform:uppercase}.nav-links a:hover{color:var(--gold)}.nav-rsvp{background:var(--emerald);color:white;padding:14px 20px;border-radius:8px}.menu-button{display:none;width:42px;height:42px;padding:0;background:transparent;border:0}.menu-button span{display:block;width:22px;height:2px;margin:5px auto;background:var(--emerald);border-radius:2px;transition:transform .2s ease,opacity .2s ease}.menu-button.is-open span:first-child{transform:translateY(7px) rotate(45deg)}.menu-button.is-open span:nth-child(2){opacity:0}.menu-button.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero{min-height:690px;background:var(--emerald) url(/hero-reference.png) center/cover no-repeat;display:grid;place-items:center;padding:55px 25px}.hero-frame{width:min(930px,92vw);padding:9px;border:1px solid #c2a16d;background:#f7f1e9e8;box-shadow:0 14px 60px #0d201a70}.hero-paper{min-height:440px;border:1px solid #bca67d;outline:1px solid #d7c7ab;outline-offset:-10px;background:radial-gradient(ellipse,#fffaf0ee 30%,#f6efe3eb 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:45px 25px}.hero-eyebrow{font:500 16px Cormorant Garamond,serif;letter-spacing:.07em;color:#74675b}.hero h1{font:400 clamp(52px,7.2vw,92px) /.72 Pinyon Script,cursive;color:#6b4b3b;width:100%;box-sizing:border-box;padding-inline:.2em .85em;margin:8px 0 6px;display:grid;justify-items:stretch;line-height:.72;opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}.hero h1.is-shown{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.hero h1{opacity:1;transform:none;transition:none}}.hero-fullnames{font:italic clamp(22px,2.4vw,28px) /1.3 Cormorant Garamond,serif;color:#6b4b3b;margin:12px 0 14px;letter-spacing:.03em}.hero-fullnames em{color:var(--gold);font-style:italic}.hero-name-first{justify-self:start}.hero-name-join{justify-self:center;color:var(--gold)}.hero-name-second{justify-self:end}.hero h1.is-compact .hero-name-first{justify-self:center;transform:translateX(-1.9em)}.hero h1.is-compact .hero-name-second{justify-self:center;transform:translateX(1.85em)}.hero-date{font-size:28px;font-style:italic;color:var(--gold);margin:2px}.hero-location{font:500 11px Montserrat,sans-serif;letter-spacing:.22em;color:#706455;text-transform:uppercase}.hero-explore{font:600 11px Montserrat,sans-serif;letter-spacing:.08em;border-bottom:1px solid var(--gold);padding:12px 0;margin-top:12px}.countdown-section{background:var(--emerald);color:#f7eee1;padding:40px max(5vw,24px);display:flex;align-items:center;justify-content:space-around;gap:32px}.eyebrow{font:600 11px Montserrat,sans-serif;letter-spacing:.25em;color:var(--gold)}.countdown-section h2{font-size:35px;font-weight:400;margin:10px 0}.countdown-values{display:flex;gap:clamp(15px,3vw,45px);text-align:center}.countdown-values div{display:grid;grid-gap:4px;gap:4px}.countdown-values strong{font-size:44px;font-weight:400}.countdown-values span{font:500 10px Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.15em}.section{padding:95px max(24px,calc((100vw - 1180px) / 2))}#story{position:relative;overflow:hidden}#story:before{inset:-36px;background:url(/story-bg.jpg) center 42%/auto 240% no-repeat;filter:blur(12px)}#story:after,#story:before{content:"";position:absolute;z-index:0}#story:after{inset:0;background:#f8f1e673}#story>*{z-index:1}#story .section-heading,#story .story-text,#story>*{position:relative}#story .section-heading:before,#story .story-text:before{content:"";position:absolute;z-index:-1;inset:-20px -4% -40px;border-radius:22px;background:#f8f1e6f2}#story .section-heading p,#story .story-text p{color:var(--ink)}.section-heading{text-align:center;max-width:740px;margin:0 auto 54px}.section-heading h2{font-size:clamp(46px,6vw,72px);font-weight:400;color:var(--burgundy);margin:12px 0}.section-heading p{font-size:24px;color:#71685e;margin:0}.ornament{display:block;color:var(--gold);margin-top:20px;font-size:19px}.story-layout{max-width:720px;margin:0 auto}.story-text h3{font-size:clamp(42px,5vw,65px);line-height:1.08;font-weight:400;color:var(--burgundy)}.story-text h3 em{color:var(--gold);font-weight:400}.story-text p{font-size:24px;line-height:1.5}.story-text blockquote{border-left:2px solid var(--gold);padding-left:18px;font-style:italic;color:var(--emerald)}.events-section{background:var(--ivory)}.event-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:25px;gap:25px}.event-card{text-align:center;border:1px solid #dbc9aa;padding:42px 25px;background:#fbf5ea}.event-symbol{display:block;font-size:42px;color:var(--gold);margin-bottom:16px}.event-card h3{font-size:43px;color:var(--burgundy);font-weight:400;margin:14px 0}.fine-line{width:80px;height:1px;background:var(--gold);margin:20px auto}.event-card p{margin:10px 0}.event-card strong{display:block;color:var(--emerald);font-weight:600;margin-top:20px}.outline-button,.solid-button{display:inline-block;border:1px solid var(--emerald);border-radius:8px;padding:14px 24px;font:600 11px Montserrat,sans-serif;letter-spacing:.08em;text-transform:uppercase;margin-top:22px}.outline-button:hover,.solid-button{background:var(--emerald);color:white}.solid-button:disabled{opacity:.5;cursor:wait}.dress-code{text-align:center;margin-top:42px;font:600 11px Montserrat,sans-serif;letter-spacing:.12em}.dress-code p{font:24px Cormorant Garamond,serif;letter-spacing:0}.swatches{display:flex;gap:16px;justify-content:center;margin:18px auto;width:min(640px,100%)}.swatches i{flex:1 1;height:44px;border-radius:0;background:var(--burgundy)}.swatches i:nth-child(2){background:var(--emerald)}.swatches i:nth-child(3){background:var(--gold)}.quote-section{text-align:center;background:linear-gradient(90deg,#2a101866,#1a0c1040 22%,#12080c73 50%,#1a0c1040 78%,#2a101866),url(/floral-burgundy.jpg) 50%/cover no-repeat;color:#fff6e7;padding:80px 20px}.quote-section span{color:var(--gold)}.quote-section blockquote{font:italic clamp(32px,5vw,56px) Cormorant Garamond,serif;margin:22px auto;max-width:900px}.quote-section p{font:600 11px Montserrat,sans-serif;letter-spacing:.22em;color:#e7c68a}.gallery-section{text-align:center}.gallery-section h3{font-size:36px;color:var(--emerald);font-weight:400}.gallery-placeholder{background:#eee3d2;border:1px solid #d8c3a0;padding:65px 20px;margin:20px auto 32px;max-width:820px}.gallery-placeholder span{font-size:55px;color:var(--gold)}.gallery-placeholder p{margin:10px}.gallery-placeholder small{font-size:17px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;margin:30px 0}.photo-grid img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center 18%}.rsvp-section{background:#e9dfce}.form-panel{max-width:740px;margin:auto}.wedding-form{display:grid;grid-gap:18px;gap:18px}.wedding-form label{display:grid;grid-gap:7px;gap:7px;font-size:21px;color:var(--burgundy)}.wedding-form input,.wedding-form select,.wedding-form textarea{width:100%;padding:13px 14px;background:#fffaf3;border:1px solid #d1bea0;border-radius:8px;font-size:19px;color:var(--ink)}.wedding-form .solid-button{width:100%;margin-top:10px}.form-status{font-size:19px;color:var(--emerald)}.share-section{background:var(--ivory)}.share-layout{display:grid;grid-template-columns:1fr 1fr;grid-gap:7%;gap:7%;align-items:start}.large-flower{font-size:65px;color:var(--gold)}.share-description h3{font-size:44px;color:var(--burgundy);font-weight:400;margin:8px 0}.share-description p{line-height:1.45}.muted{color:#84796d;font-size:17px}.hashtag-list{display:grid;justify-items:start;grid-gap:10px;gap:10px;margin-top:28px}.hashtag-list button{background:none;border:0;padding:3px 0;color:var(--emerald);font-size:19px}.upload-panel{background:#f4ebdb;padding:30px;border:1px solid #e1cfb0}.file-label{position:relative;border:1px dashed var(--gold);border-radius:8px;padding:26px;align-items:center;text-align:center;cursor:pointer}.file-label strong{font-size:23px}.file-label span{font-size:16px}.upload-panel input[type=file]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.file-label:focus-within{outline:2px solid var(--emerald);outline-offset:3px}.upload-previews{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,84px);grid-gap:10px;gap:10px;margin:0;padding:0;justify-content:start}.upload-previews li{position:relative;min-width:0}.upload-previews .upload-preview-fallback,.upload-previews img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;background:#fffaf3;border:1px solid #d1bea0}.upload-previews .upload-preview-fallback{display:grid;place-items:center;font:600 11px Montserrat,sans-serif;letter-spacing:.08em;color:var(--burgundy)}.upload-previews li>span:last-child{display:block;margin-top:5px;font-size:14px;line-height:1.2;color:#71685e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-preview-remove{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:26px;height:26px;margin:0;padding:0;border:1px solid var(--burgundy);border-radius:50%;background:#fffaf2;color:var(--burgundy);box-shadow:0 1px 4px #3e352f40;line-height:0}.upload-preview-remove svg{display:block;width:11px;height:11px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;fill:none}.footer{background:var(--emerald);color:#f9f1e4;text-align:center;padding:65px 20px;display:grid;justify-items:center;grid-gap:10px;gap:10px}.footer-monogram{color:#fff7e8;font-size:48px}.footer small{font:500 11px Montserrat,sans-serif;letter-spacing:.15em}.footer em{font:35px Great Vibes,cursive;color:#e6c184;margin:18px}.footer div:last-child{display:flex;gap:22px;font-size:17px}@media (max-width:850px){.nav-links{display:none;position:absolute;top:var(--header-height);left:0;right:0;background:var(--ivory);padding:25px;flex-direction:column}.nav-links.is-open{display:flex}.menu-button{display:block}.nav-rsvp{display:none}.countdown-section,.share-layout{display:grid;grid-template-columns:1fr}.countdown-section{text-align:center}.countdown-values{justify-content:center}.event-grid{grid-template-columns:1fr}.section{padding:70px 22px}.hero{min-height:610px}.hero-frame{width:100%}.hero-paper{min-height:350px}.hero h1{font-size:clamp(40px,7.2vw,54px);line-height:.98;padding-inline:.06em 1.05em;margin-bottom:14px}.photo-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.hero{min-height:560px;padding:22px 12px}.hero-paper{padding:28px 18px 24px}.hero h1{font-size:clamp(36px,10vw,46px);line-height:1.02;padding-inline:.02em .95em;margin-bottom:12px}.hero-eyebrow{font-size:13px}.hero-date{font-size:24px}.hero-location{font-size:9px}.countdown-values strong{font-size:31px}.countdown-values{gap:16px}.countdown-values span{font-size:8px}.photo-grid{grid-template-columns:1fr}.section-heading h2{font-size:47px}}.filmstrip{overflow:hidden;margin:28px 0 4px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.filmstrip-track{display:flex;gap:14px;width:max-content;animation:filmstrip 70s linear infinite}.filmstrip.is-paused .filmstrip-track,.filmstrip:focus-within .filmstrip-track,.filmstrip:hover .filmstrip-track{animation-play-state:paused}.filmstrip-card{flex:0 0 220px;border:0;padding:0;background:none;cursor:pointer}.filmstrip-card img{display:block;width:220px;height:300px;max-width:none;object-fit:cover;object-position:center 18%}.gallery-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:center}.gallery-actions .outline-button,.gallery-actions .solid-button{margin-top:18px}.lightbox{position:fixed;inset:0;z-index:40;background:#0b1914;display:grid;grid-template-columns:64px 1fr 64px;align-items:center;padding:24px 8px}.lightbox figure{margin:0;display:grid;justify-items:center;grid-gap:14px;gap:14px}.lightbox figure img{width:auto;height:min(76vh,900px);max-width:min(86vw,880px);object-fit:contain;background:transparent}.lightbox figcaption{color:#e7c68a;font:600 11px Montserrat,sans-serif;letter-spacing:.18em}.lightbox-close,.lightbox-nav{border:1px solid #e7c68a;background:transparent;color:#fff6e7;font:600 12px Montserrat,sans-serif;letter-spacing:.08em;text-transform:uppercase}.lightbox-close{position:absolute;top:18px;right:18px;padding:10px 14px;border-radius:8px}.lightbox-nav{width:48px;height:48px;border-radius:50%;font-size:28px;line-height:1;justify-self:center}@media (max-width:700px){.filmstrip-card{flex-basis:168px}.filmstrip-card img{width:168px;height:230px}.lightbox{grid-template-columns:44px 1fr 44px}.lightbox figure img{height:min(68vh,820px)}}@media (prefers-reduced-motion:reduce){.filmstrip{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.filmstrip-track{animation:none}}@keyframes filmstrip{0%{transform:translateX(0)}to{transform:translateX(calc(-50% - 7px))}}.admin-page{max-width:980px;margin:0 auto;padding:56px 20px 80px}.admin-page h1{font-weight:400;font-size:clamp(40px,6vw,64px);color:var(--burgundy);margin:8px 0 10px}.admin-page h2{font-weight:400;color:var(--emerald);margin:36px 0 14px}.admin-login{max-width:420px;display:grid;grid-gap:12px;gap:12px;margin-top:28px}.admin-page label{display:grid;grid-gap:7px;gap:7px;color:var(--burgundy)}.admin-page input{width:100%;padding:13px 14px;background:#fffaf3;border:1px solid #d1bea0;border-radius:8px;font-size:19px}.admin-note{background:#f4ebdb;border-radius:8px;padding:12px 14px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:16px;gap:16px}.admin-card{background:#fffaf3;border:1px solid #e1cfb0;border-radius:8px;padding:12px;display:grid;grid-gap:8px;gap:8px}.admin-card img{width:100%;height:220px;object-fit:cover;border-radius:6px}.admin-card small{color:#75685d}.admin-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-actions .outline-button,.admin-actions .solid-button{margin-top:8px}