@charset "UTF-8";
:root{--forest:#354438;--olive:#626b43;--sage:#879379;--pale:#d7ddbf;--paper:#f7f6ef;--ink:#28332b;--line:#b6bea1;font-family:Georgia,'Times New Roman',serif;color:var(--forest);background:#e8ecdf;font-synthesis:none}*{box-sizing:border-box}body{margin:0}html{scroll-behavior:smooth;scroll-padding-top:72px}a{color:inherit}a:focus-visible,summary:focus-visible{outline:3px solid var(--olive);outline-offset:4px}h1,h2,h3,p{margin-top:0}p{font-size:1.05rem;line-height:1.5}img{max-width:100%;height:auto}section{scroll-margin-top:12px}.masthead{height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:var(--paper);border-bottom:1px solid var(--line);font-size:.75rem}.masthead a{min-height:44px;display:flex;align-items:center;text-decoration:none}.brand{font-size:1.5rem}.skip{position:fixed;top:-100px;background:white;padding:16px;z-index:9}.skip:focus{top:0}.invitation{background:var(--paper);margin:16px 12px 0;border:0}.panel{padding:44px 22px;text-align:center;border-bottom:1px solid #35443820}.source-art{display:block;margin-left:auto;margin-right:auto;mix-blend-mode:normal;filter:url("#invitation-ink")}.branches{width:100%;max-width:390px;margin-bottom:12px}.names{width:100%;max-width:425px}h1{margin:0 0 28px}.request{font-size:.68rem;line-height:1.6}.request span{font-size:1rem;letter-spacing:.18em}.wedding-date{margin:34px 0;font-size:1.1rem;letter-spacing:.15em;line-height:1.65}.wedding-date span{font-size:.93rem;letter-spacing:.065em}.venue-name{font-weight:400;font-size:1.12rem;letter-spacing:.19em;margin:0 0 6px}.location{font-size:1rem;letter-spacing:.1em;margin-bottom:4px}.text-link{font-size:.75rem;display:inline-flex;align-items:center;min-height:44px;text-underline-offset:5px}.reception-title{width:260px;margin-top:25px;margin-bottom:4px}.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:12px 18px;background:var(--forest);color:var(--paper);border-radius:2px;text-decoration:none;font-family:Arial,sans-serif;font-size:.8rem}.calendar{display:flex;background:transparent;color:var(--forest);border:1px solid var(--line);max-width:220px;margin:22px auto 0}.countdown{font-size:.72rem;margin:15px 0 0;color:var(--olive)}.guide h2{margin:0 0 24px}.attire-title{width:100%;max-width:406px}.attire-groups{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}.attire-groups h3{font-style:italic;font-weight:400;font-size:1.35rem;margin:0 0 15px}.swatches{display:flex;justify-content:center;gap:5px}.swatches i{background:var(--swatch);width:30px;max-width:100%;aspect-ratio:1;border-radius:50%;border:1px solid #35443811}.guest-columns{display:grid;gap:30px;margin-top:38px}.guest-columns h2{margin-bottom:20px}.guest-columns h2 img{width:190px}.guest-columns p{max-width:360px;margin:0 auto 16px}.details-title{width:198px;margin-bottom:0}.day h2{margin-bottom:-12px}.timeline-label{font-style:italic;font-size:.8rem;margin-bottom:28px}.timeline-art{width:100%;margin-bottom:42px}.couple-art{width:280px;max-width:90%}.rsvp-title{width:205px}.rsvp h2{margin-bottom:10px}.rsvp p{max-width:390px;margin-left:auto;margin-right:auto}.qr{display:block;width:235px;border:8px solid white;margin:26px auto 20px}.rsvp .small{font-size:.78rem}.scripture{margin:0 12px;background:var(--paper);text-align:center;padding:45px 28px;border:0;border-top:1px solid #35443820}.scripture .branches{max-width:230px}.scripture blockquote{max-width:540px;margin:25px auto 0}.scripture p{font-size:1.1rem;line-height:1.8}.scripture cite{display:block;font-size:1rem;font-style:normal;margin-top:28px}footer{text-align:center;padding:40px 20px 110px;font-style:italic;font-size:1.2rem}footer span{display:block;font-style:normal;font-size:.75rem;margin-top:12px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#f7f6eff5;border-top:1px solid var(--line);z-index:5;backdrop-filter:blur(12px);font-family:Arial,sans-serif}.bottom-nav a{display:flex;min-height:48px;align-items:center;justify-content:center;text-decoration:none;font-size:.73rem}.nav-rsvp{background:var(--forest);color:white;border-radius:2px}[hidden]{display:none!important}
@media(min-width:440px){.guest-columns{grid-template-columns:1fr 1fr;gap:22px}.guest-columns p{font-size:1rem}.panel{padding:48px 28px}}
@media(min-width:900px){.masthead{max-width:1100px;margin:auto;background:transparent;border:0}.invitation{max-width:1100px;margin:12px auto 0;display:grid;grid-template-columns:1fr 1fr}.panel{padding:56px 35px}.ceremony,.day{border-right:1px solid #35443820}.day,.rsvp{border-bottom:0}.guide{display:flex;flex-direction:column;justify-content:center}.guest-columns p{font-size:1.08rem}.rsvp{display:flex;flex-direction:column;align-items:center;justify-content:center}.scripture{max-width:1100px;margin:0 auto}.timeline-art{max-width:440px}.couple-art{width:304px}.bottom-nav{left:50%;right:auto;transform:translateX(-50%);bottom:12px;width:440px;border:1px solid var(--line);padding:7px;border-radius:4px}}

.attire-groups>div{min-width:0}.swatches i{flex:1;min-width:0;max-width:34px;width:auto}.guest-columns>article{min-width:0}
.skip:not(:focus){clip-path:inset(100%);width:1px;height:1px;overflow:hidden}.day h2{margin-bottom:0}.timeline-label{margin-top:-2px}


.accommodation-link{width:100%;max-width:320px;line-height:1.4;margin:0 auto 20px;text-align:center}

/* Soft borders and serif lettering echo the printed invitation. */
.button{position:relative;gap:14px;min-height:52px;padding:14px 23px;border:1px solid var(--sage);border-radius:32px;background:#e9edde;color:var(--forest);font-family:Georgia,'Times New Roman',serif;font-size:1rem;font-weight:400;line-height:1.35;box-shadow:inset 0 0 0 3px var(--paper);transition:background-color 240ms ease,border-color 240ms ease,color 240ms ease,box-shadow 240ms ease}

.accommodation-link{max-width:330px}
.calendar{background:transparent;border-color:var(--line);box-shadow:none;font-size:.9rem}
#rsvp-link{background:var(--olive);border-color:var(--olive);color:var(--paper);box-shadow:inset 0 0 0 3px var(--olive),inset 0 0 0 4px #d7ddbf66}
.button:focus-visible{outline:2px solid var(--olive);outline-offset:5px}
.button:active{background:var(--pale);border-color:var(--olive)}
#rsvp-link:active{background:var(--forest);color:var(--paper)}
.bottom-nav .nav-rsvp{border-radius:25px;background:#e9edde;color:var(--forest);border:1px solid var(--sage);font-family:Georgia,'Times New Roman',serif;font-size:.85rem}
@media(hover:hover){.button:hover{background:var(--pale);border-color:var(--olive);box-shadow:inset 0 0 0 3px var(--paper)}#rsvp-link:hover{background:var(--forest);border-color:var(--forest);box-shadow:inset 0 0 0 3px var(--forest),inset 0 0 0 4px #d7ddbf88}.calendar:hover{box-shadow:none}}

/* Fade again on each viewport entry; reset offscreen without layout movement. */
.reveal-item{transition:opacity 650ms ease,background-color 240ms ease,border-color 240ms ease,color 240ms ease,box-shadow 240ms ease}
.reveal-pending{opacity:0;transition:none}
.is-revealed{opacity:1}


@media(max-width:719px){.attire-groups{grid-template-columns:1fr;gap:28px}.attire-groups .swatches{max-width:220px;margin:0 auto;gap:10px}.attire-groups .swatches i{max-width:34px}}

.event-timeline{list-style:none;padding:0;margin:24px auto 42px;max-width:400px;text-align:left;position:relative}
.event-timeline::before{content:'';position:absolute;left:49px;top:42px;bottom:42px;width:1px;background:var(--line)}
.event-timeline li{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:20px;position:relative;padding:20px 0;min-height:144px}
.event-icon{position:relative;background:var(--paper);padding:10px 4px}
.event-icon img{width:auto;height:auto;max-width:92px;max-height:110px}
.event-caption time{display:block;font-size:.82rem;letter-spacing:.1em;color:var(--olive);margin-bottom:10px}
.event-caption h3{font-weight:400;font-size:1.2rem;line-height:1.35;margin:0}
@media(min-width:720px){.event-timeline li{grid-template-columns:120px minmax(0,1fr);gap:28px;min-height:160px}.event-timeline::before{left:59px}.event-icon img{max-width:110px;max-height:120px}.event-caption h3{font-size:1.35rem}}
@media(min-width:900px){.rsvp{justify-content:flex-start}}



.creator-credit{max-width:360px;margin:28px auto 0;padding-top:20px;border-top:1px solid var(--line);font-style:normal;font-size:.8rem;color:var(--olive)}.creator-credit p{font-size:inherit;margin:0;line-height:1.7}.creator-credit a{text-underline-offset:4px}.creator-phone{display:inline-flex;min-height:44px;align-items:center;justify-content:center}

.privacy-note{max-width:360px;margin:18px auto 0;font-size:.65rem;line-height:1.6;font-style:normal;color:var(--olive)}

/* Convert the source paper to alpha before fades are composited. */
.art-filter-defs{position:absolute;overflow:hidden;pointer-events:none}
