@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@400;500;600&display=swap');
:root{--wine:#4b1728;--cream:#fbf5e9;--gold:#d5b478;--ink:#432a2a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:7px}h1,h2,h3,p{margin:0}h1,h2,h3,.signoff,.monogram{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400}h2{font-size:clamp(2.8rem,6vw,5.6rem);line-height:1.06;letter-spacing:-.025em}h2 em{font-weight:400;color:#8a4a50}p{line-height:1.8}.eyebrow{font-size:.75rem;letter-spacing:.24em;font-weight:500}.section-pad{padding:110px 24px}.intro{position:fixed;inset:0;z-index:100;background:radial-gradient(ellipse at 50% 40%,#714136,var(--wine) 75%);color:var(--cream);display:flex;align-items:center;justify-content:center;flex-direction:column;padding:28px;transition:opacity .85s ease,visibility .85s}.intro .eyebrow{text-align:center;color:var(--gold);margin-bottom:60px}.envelope{width:min(380px,85vw);height:240px;position:relative;perspective:1200px;filter:drop-shadow(0 24px 35px #17061166);background:#e9d6b9;border-radius:4px}.envelope:after{content:'';position:absolute;inset:0;background:linear-gradient(32deg,#e8d6bd 49.8%,transparent 50%) left/50% 100% no-repeat,linear-gradient(-32deg,#f2e3ca 49.8%,transparent 50%) right/50% 100% no-repeat;pointer-events:none;border-radius:4px}.flap{position:absolute;inset:0;background:#f6e9d1;clip-path:polygon(0 0,100% 0,50% 65%);transform-origin:top;transition:transform 1s;z-index:3}.letter{position:absolute;inset:15px 20px;background:var(--cream);color:var(--wine);text-align:center;padding-top:36px;font:italic 2rem 'Cormorant Garamond',Georgia,serif;transition:transform 1.15s .4s}.letter span{font-size:1.2rem}.seal{position:absolute;z-index:4;left:50%;top:46%;transform:translate(-50%,-50%);width:74px;height:74px;border-radius:50%;border:4px double #b98875;background:#6c2839;color:#f2dcb6;font:1.45rem Georgia,serif;box-shadow:0 5px 15px #4b172850;transition:opacity .3s,transform .4s}.seal span{font-size:.85rem;padding:0 3px}.seal:hover{transform:translate(-50%,-50%) scale(1.08)}.intro-note{margin-top:44px;text-align:center;font:italic 1.6rem 'Cormorant Garamond',Georgia,serif}.text-button{background:none;border:0;border-bottom:1px solid currentColor;color:inherit;padding:10px 0;font-size:.875rem;letter-spacing:.06em;min-height:44px}.intro .text-button{margin-top:14px;color:var(--gold)}.skip{position:absolute;bottom:22px;border:0;background:none;color:#e0c7bc;padding:12px;font-size:.875rem}.intro.opening .flap{transform:rotateX(180deg)}.intro.opening .seal{opacity:0;transform:translate(-50%,-50%) scale(1.3)}.intro.opening .letter{transform:translateY(-105px)}.intro.hidden{opacity:0;visibility:hidden;pointer-events:none}body.locked{overflow:hidden}header{position:absolute;z-index:5;top:0;left:0;right:0;padding:24px 6%;display:flex;justify-content:space-between;align-items:center;color:var(--cream)}header>a:last-child{font-size:.875rem;border-bottom:1px solid #d5b47880;padding:8px 0}.monogram{font-size:1.6rem;letter-spacing:.1em}.monogram i{color:var(--gold);font-size:1.1rem}.hero{min-height:880px;min-height:100svh;background:var(--wine);color:var(--cream);position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:110px 24px 100px}.hero-border{position:absolute;inset:95px 5% 65px;border:1px solid #d5b47840;border-radius:50% 50% 0 0/40% 40% 0 0;pointer-events:none}.orb{position:absolute;width:60vw;height:60vw;border-radius:50%;filter:blur(80px);opacity:.18;background:#c4845e;pointer-events:none}.orb-one{top:-30%;left:-25%;animation:drift 16s ease-in-out infinite alternate}.orb-two{bottom:-30%;right:-25%;animation:drift 20s ease-in-out infinite alternate-reverse}.hero .eyebrow{color:var(--gold);position:relative}.prelude{font:italic clamp(1.4rem,3vw,2rem) 'Cormorant Garamond',Georgia,serif;margin:25px 0 15px;position:relative}h1{display:flex;flex-direction:column;align-items:center;line-height:.85;position:relative;font-size:clamp(4.8rem,11vw,10rem);letter-spacing:-.055em}h1 em{font-size:.48em;color:var(--gold);margin:16px 0;font-weight:400}.name{display:block;opacity:0;transform:translateY(30px);filter:blur(6px);transition:opacity 1.5s,transform 1.5s,filter 1.5s}.entered .name{opacity:1;transform:none;filter:none}.entered .name:last-child{transition-delay:.28s}.hero-bottom{margin-top:35px;position:relative}.hero-bottom p{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.3rem;line-height:1.45}.rule{width:45px;height:1px;background:var(--gold);margin:23px auto}.hero-bottom .occasion{font-family:'DM Sans',sans-serif;font-size:.75rem;letter-spacing:.23em}.scroll-cue{position:absolute;bottom:20px;font-size:.75rem;letter-spacing:.12em;color:#e4c8bb;padding:10px}.scroll-cue span{display:block;width:1px;height:20px;background:var(--gold);margin:10px auto 0;animation:pulse 2s infinite}.opening,.promise{text-align:center}.opening .eyebrow,.promise .eyebrow{color:#925e50;margin-bottom:28px}.body-copy{margin-top:25px;color:#795c53;font-size:1.05rem}.joining{display:flex;align-items:center;justify-content:center;gap:20px;margin:65px auto 0;max-width:420px;color:#985846}.joining span{font:italic 2.7rem 'Cormorant Garamond',Georgia,serif}.joining div{height:1px;background:linear-gradient(90deg,transparent,#b58e60);flex:1}.joining div:nth-last-child(2){transform:rotate(180deg)}.joining b{font-size:2.5rem;font-weight:400}.chapters{position:relative;background:#f2e8d9;padding-top:20px;padding-bottom:20px}.chapters:before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:#be9c7260}.chapter{position:relative;width:50%;padding:80px 7% 80px 5%;text-align:right}.chapter:nth-of-type(2){margin-left:50%;text-align:left;padding:80px 5% 80px 7%}.chapter:after{content:'';position:absolute;right:-5px;top:95px;width:9px;height:9px;border:1px solid #ac794a;background:#f2e8d9;transform:rotate(45deg)}.chapter:nth-of-type(2):after{left:-4px;right:auto}.chapter-number{font-size:.75rem;letter-spacing:.15em;color:#8d654e}.chapter h2{font-size:clamp(2.2rem,4vw,3.6rem);margin:22px 0}.chapter p{color:#795c53}.promise{background:var(--wine);color:var(--cream);position:relative}.promise h2 em{color:#e4b889}.promise .eyebrow,.promise .body-copy{color:#d8bcaa}.star{display:block;color:var(--gold);font-size:3.5rem;margin-top:30px}.celebration{background:var(--cream)}.details-card{max-width:960px;margin:auto;border:1px solid #ba956850;outline:1px solid #ba956830;outline-offset:9px;text-align:center;padding:65px 40px}.details-card .eyebrow{color:#8b5c44}.details-card h2{font-size:clamp(2.7rem,5vw,4.5rem);margin:20px 0}.card-intro{font:italic 1.8rem 'Cormorant Garamond',Georgia,serif}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:45px;padding:35px 0;border-top:1px solid #bfa58055;border-bottom:1px solid #bfa58055}.detail-label{font-size:.75rem;letter-spacing:.2em;color:#8b5c44}h3{font-size:1.8rem;margin:12px 0 5px}.details-grid p,.details-note{color:#795c53;font-size:.9rem}.details-note{margin-top:28px}footer{text-align:center;padding:20px 24px 55px}footer .eyebrow{color:#8b5c44}.signoff{font-size:clamp(2.7rem,6vw,4rem);margin:20px 0 10px}.signoff i{color:#aa7954}footer>p:not(.eyebrow):not(.signoff){color:#795c53}footer .text-button{margin-top:25px;color:var(--wine)}footer .draft{font-size:.75rem;letter-spacing:.12em;margin-top:50px}.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(28px);transition:opacity 1s,transform 1s}.js .reveal.visible{opacity:1;transform:none}@keyframes drift{to{transform:translate(20%,15%)}}@keyframes pulse{50%{opacity:.3;transform:translateY(5px)}}@media(min-width:1000px){h1{flex-direction:row;gap:28px}h1 em{margin:0}.hero-bottom{margin-top:48px}.hero-border{inset:100px 9% 65px}.hero{min-height:800px;min-height:100svh}}@media(max-width:600px){.section-pad{padding:75px 24px}.hero{min-height:760px;min-height:100svh}.hero-border{inset:95px 18px 65px}.hero .eyebrow{font-size:.65rem;letter-spacing:.18em}.chapters{padding:20px 24px 20px 43px}.chapters:before{left:26px}.chapter,.chapter:nth-of-type(2){width:100%;margin:0;text-align:left;padding:45px 0 45px 12px}.chapter:after,.chapter:nth-of-type(2):after{left:-21px;top:60px;right:auto}.details-card{padding:40px 18px}.details-grid{grid-template-columns:1fr;gap:25px}.details-grid>div+div{border-top:1px solid #bfa58040;padding-top:25px}.intro .eyebrow{margin-bottom:45px}.envelope{height:210px}.intro-note{font-size:1.4rem}.hero-bottom p{font-size:1.2rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.name,.js .reveal{opacity:1;transform:none;filter:none}}

/* A traditional blessing and photographic chapter details. */
.blessing{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:70px;align-items:center;max-width:1200px;margin:auto}.blessing-image{padding:12px;border:1px solid #b99b6b70;border-radius:220px 220px 6px 6px}.blessing-image img{display:block;width:100%;height:490px;object-fit:cover;object-position:center;border-radius:210px 210px 3px 3px}.invocation{font-family:Georgia,serif;font-size:1.65rem;color:#895331;margin-bottom:28px}.blessing-copy .eyebrow{color:#925e50;margin-bottom:24px}.blessing-copy h2{font-size:clamp(2.8rem,5vw,4.6rem)}.story-photo{margin:0 0 32px;overflow:hidden;border:8px solid #fbf5e9;box-shadow:0 10px 25px #4b172810;transform:rotate(-3deg)}.story-photo img{display:block;width:100%;height:250px;object-fit:cover;transition:transform 1.2s}.story-photo:hover img{transform:scale(1.04)}.chapter:nth-of-type(3) .story-photo{transform:rotate(3deg)}@media(max-width:700px){.blessing{grid-template-columns:1fr;gap:38px;text-align:center;padding-bottom:35px}.blessing-image{max-width:330px;width:100%;margin:auto}.blessing-image img{height:360px}.story-photo img{height:220px}.invocation{font-size:1.45rem}}@media(prefers-reduced-motion:reduce){.story-photo:hover img{transform:none}}

.chapter:nth-of-type(3) .story-photo img{transform:scale(2.4);transform-origin:78% 43%}.chapter:nth-of-type(3) .story-photo:hover img{transform:scale(2.5)}.photo-credits{margin:30px auto 0;font-size:.75rem;color:#795c53;max-width:600px}.photo-credits summary{cursor:pointer;padding:12px;min-height:44px}.photo-credits a{text-decoration:underline}.photo-credits p{margin-top:8px}@media(prefers-reduced-motion:reduce){.chapter:nth-of-type(3) .story-photo:hover img{transform:scale(2.4)}}

.couple-section{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center;max-width:1200px;margin:auto}.couple-copy .eyebrow{color:#925e50;margin-bottom:24px}.couple-signature{font:italic 2rem 'Cormorant Garamond',Georgia,serif;margin-top:30px}.couple-signature i{color:#aa7954}.couple-frame{margin:0;padding:12px;background:#fffaf0;box-shadow:0 20px 55px #4b172818;transform:rotate(2deg);border:1px solid #c2a37160}.couple-frame img{display:block;width:100%;height:500px;object-fit:cover;object-position:center 35%}.couple-frame figcaption{font-size:.75rem;color:#795c53;text-align:center;padding:16px 4px 8px;line-height:1.6}.js .couple-frame.visible{transform:rotate(2deg)}@media(max-width:700px){.couple-section{grid-template-columns:1fr;gap:35px;text-align:center}.couple-frame{max-width:400px;width:100%;margin:auto}.couple-frame img{height:410px}.couple-copy h2 br{display:none}.couple-copy h2 em{display:block}}
