@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@300;400;500&family=Italiana&display=swap";:root{--wine:#6f2935;--wine-dark:#351d22;--rose:#bd7180;--paper:#fbf5ea;--cream:#f3e8da;--ink:#39282a}.letter-no-scroll{overflow:hidden}.letter-site{min-height:100vh;color:var(--ink);background:#f5ece5;font-family:DM Sans,sans-serif;overflow:hidden}.letter-site *,.letter-site :before,.letter-site :after{box-sizing:border-box}.letter-grain{pointer-events:none;opacity:.24;z-index:50;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");position:fixed;inset:0}.letter-intro{isolation:isolate;color:#fff;place-items:center;min-height:100svh;display:grid;position:relative}.intro-photo,.intro-shade{z-index:-2;pointer-events:none;position:absolute;inset:0}.intro-photo img{object-fit:cover;object-position:center 46%;width:100%;height:100%;transition:transform 1.8s cubic-bezier(.2,.7,.2,1);transform:scale(1.02)}.is-open .intro-photo img{transform:scale(1.08)}.intro-shade{z-index:-1;background:linear-gradient(90deg,#1e0f12a1,#1e0f122e 54%,#1e0f1261),linear-gradient(#0000 48%,#160c0ea6)}.intro-content{width:min(1120px,86vw);padding:8rem 0 5rem}.eyebrow{text-transform:uppercase;letter-spacing:.35em;font-size:.68rem;font-weight:500}.intro-content .eyebrow{color:#f2d8db}.intro-content h1{letter-spacing:-.045em;text-shadow:0 5px 28px #0003;max-width:780px;margin:.6rem 0 1.15rem;font-family:Cormorant Garamond,serif;font-size:clamp(4.3rem,9vw,8.5rem);font-weight:500;line-height:.78}.intro-content h1 em{color:#f0c5cb;font-weight:400}.intro-copy{color:#fff5ef;max-width:470px;font:italic 1.35rem/1.6 Cormorant Garamond,serif}.seal-button{color:#fff;cursor:pointer;letter-spacing:.15em;text-transform:uppercase;background:0 0;border:0;align-items:center;gap:1rem;margin-top:2rem;padding:0;font:500 .78rem DM Sans,sans-serif;display:flex}.seal-mark{background:var(--wine);border-radius:50%;place-items:center;width:62px;height:62px;font:2rem Cormorant Garamond,serif;transition:all .3s;display:grid;box-shadow:0 8px 25px #00000047,inset 0 0 0 5px #ffffff14}.seal-button:hover .seal-mark,.seal-button:focus-visible .seal-mark{background:#8b3847;transform:rotate(-8deg)scale(1.08)}.seal-button:focus-visible,.letter-nav a:focus-visible,.photo-card button:focus-visible,.note-envelope button:focus-visible,.lightbox button:focus-visible{outline-offset:5px;outline:2px solid #f1bdc5}.scroll-cue{color:#fff;text-transform:uppercase;letter-spacing:.25em;cursor:pointer;writing-mode:vertical-rl;background:0 0;border:0;align-items:center;gap:.8rem;font-size:.6rem;display:flex;position:absolute;bottom:3.2rem;right:5vw}.scroll-cue span:last-child{font-size:1rem;animation:1.8s ease-in-out infinite letter-bob}@keyframes letter-bob{50%{transform:translateY(7px)}}.letter-content{background:var(--cream);opacity:0;transition:opacity .8s,transform .8s;transform:translateY(24px)}.is-open .letter-content{opacity:1;transform:none}.is-sealed .letter-content{pointer-events:none;height:0;overflow:hidden}.letter-nav{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fbf5eaeb;border-bottom:1px solid #6f29351f;justify-content:center;align-items:center;gap:1.2rem;height:74px;display:flex;position:sticky;top:0}.letter-nav a{color:var(--wine-dark);text-transform:uppercase;letter-spacing:.22em;font-size:.62rem;text-decoration:none}.letter-nav span{color:var(--rose)}.paper-section{background:var(--paper);border:1px solid #562f2b12;width:min(880px,100% - 2rem);margin:8rem auto;padding:clamp(3rem,8vw,7rem) clamp(2rem,8vw,7rem);position:relative;transform:rotate(-.35deg);box-shadow:0 28px 80px #4625231c}.paper-section:before{content:"";pointer-events:none;border:1px solid #8451481f;position:absolute;inset:10px}.paper-pin{background:var(--wine);color:#fff;border-radius:50%;place-items:center;width:58px;height:58px;font:1.7rem Cormorant Garamond,serif;display:grid;position:absolute;top:-28px;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #411b2233}.handwritten{color:var(--wine);margin:0 0 2rem;font:italic 3rem Cormorant Garamond,serif}.letter-body{font:1.28rem/1.95 Cormorant Garamond,serif}.letter-body p{margin:0 0 1.5rem}.letter-body p:first-child:first-letter{float:left;color:var(--wine);margin:.2rem .5rem 0 0;font:5rem/.72 Italiana,serif}.letter-body strong{color:var(--wine);font-weight:600}.signature{color:var(--wine);flex-direction:column;align-items:flex-end;margin-top:3rem;font:italic 1.45rem/1.55 Cormorant Garamond,serif;display:flex}.quote-break{text-align:center;background:var(--wine-dark);color:#fff7ee;place-items:center;min-height:72vh;padding:7rem 1.5rem;display:grid;position:relative}.quote-break:before,.quote-break:after{content:"";background:#ffffff40;width:1px;height:18%;position:absolute;left:50%}.quote-break:before{top:0}.quote-break:after{bottom:0}.quote-heart{color:#db9aa5;font-size:1.7rem;position:absolute;top:20%}.quote-break blockquote{margin:0;font:400 clamp(3rem,7vw,6.6rem)/.95 Cormorant Garamond,serif}.quote-break em{color:#e3aeb5}.gallery-section{background:#f4e9df;padding:clamp(6rem,10vw,10rem) max(1rem,5vw)}.section-heading{text-align:center;width:min(680px,100%);margin:0 auto 6rem}.section-heading .eyebrow,.notes-copy .eyebrow{color:var(--rose)}.section-heading h2,.notes-copy h2{letter-spacing:-.04em;margin:1rem 0;font:500 clamp(3.4rem,7vw,6rem)/.85 Cormorant Garamond,serif}.section-heading h2 em,.notes-copy h2 em{color:var(--wine);font-weight:400}.section-heading>p:last-child,.notes-copy>p:last-child{color:#725e5d;font-size:.92rem;line-height:1.8}.photo-grid{grid-template-columns:repeat(12,1fr);align-items:start;gap:clamp(1.5rem,4vw,4.5rem) clamp(1rem,3vw,3rem);width:min(1180px,100%);margin:auto;display:grid}.photo-card{margin:0}.photo-card button{cursor:zoom-in;background:#ddd;border:0;width:100%;padding:0;display:block;position:relative;overflow:hidden;box-shadow:0 18px 40px #341f2021}.photo-card img{object-fit:cover;width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.65,.2,1),filter .5s;display:block}.photo-card button:hover img{filter:saturate(1.05);transform:scale(1.035)}.zoom-hint{width:38px;height:38px;color:var(--wine);opacity:0;background:#fbf5eae6;border-radius:50%;place-items:center;transition:all .3s;display:grid;position:absolute;bottom:1rem;right:1rem;transform:translateY(8px)}.photo-card button:hover .zoom-hint,.photo-card button:focus-visible .zoom-hint{opacity:1;transform:none}.photo-card figcaption{color:#745e5d;padding:1rem .2rem;font:italic 1.05rem/1.45 Cormorant Garamond,serif}.photo-1{grid-column:1/7}.photo-1 button{aspect-ratio:3/4}.photo-2{grid-column:8/13;margin-top:8rem}.photo-2 button{aspect-ratio:4/3}.photo-3{grid-column:2/6;margin-top:3rem}.photo-3 button{aspect-ratio:3/4}.photo-4{grid-column:7/13}.photo-4 button{aspect-ratio:4/3}.photo-5{grid-column:1/6;margin-top:8rem}.photo-5 button{aspect-ratio:3/4}.photo-6{grid-column:7/11}.photo-6 button{aspect-ratio:3/4}.photo-7{grid-column:3/10;margin-top:2rem}.photo-7 button{aspect-ratio:3/4}.wide-memory{color:#fff;place-items:center;min-height:82vh;display:grid;position:relative;overflow:hidden}.wide-memory:after{content:"";pointer-events:none;background:linear-gradient(#1e10120f 35%,#1e1012b3);position:absolute;inset:0}.wide-memory>img{object-fit:cover;object-position:center 45%;width:100%;height:100%;position:absolute}.wide-memory-copy{z-index:1;align-self:end;width:min(1050px,86vw);padding-bottom:7rem;font:400 clamp(2.1rem,4.6vw,4.5rem)/1.05 Cormorant Garamond,serif;position:relative}.wide-memory-copy p{margin:.1em 0}.wide-memory-copy p:last-child{color:#f2c5cc;margin-left:12%;font-style:italic}.notes-section{background:#f8efe6;grid-template-columns:1fr 1fr;align-items:center;gap:8vw;min-height:86vh;padding:clamp(6rem,10vw,10rem) max(1.25rem,7vw);display:grid}.notes-copy{justify-self:end;max-width:520px}.note-envelope{background:var(--wine);clip-path:polygon(0 0,100% 0,100% 92%,95% 100%,5% 100%,0 92%);flex-direction:column;justify-content:center;align-items:center;width:min(530px,100%);min-height:380px;padding:2rem;display:flex;position:relative;box-shadow:0 25px 60px #4b1f272e}.note-envelope:before{content:"";pointer-events:none;background:linear-gradient(145deg,#0000 49.7%,#ffffff12 50%),linear-gradient(215deg,#0000 49.7%,#ffffff0d 50%);position:absolute;inset:0}.note-card{z-index:1;text-align:center;background:var(--paper);width:90%;min-height:205px;color:var(--ink);align-content:center;place-items:center;gap:1rem;padding:2rem;transition:opacity .2s,transform .45s;display:grid;position:relative;transform:translateY(22px)rotate(-1deg);box-shadow:0 12px 32px #1e0a0e33}.note-card.is-visible{transform:translateY(-18px)rotate(-1deg)}.note-card span{color:var(--rose);font-size:1.5rem}.note-card p{margin:0;font:italic 1.65rem/1.35 Cormorant Garamond,serif}.note-envelope button{z-index:2;color:#fff;text-transform:uppercase;letter-spacing:.18em;cursor:pointer;background:0 0;border:1px solid #ffffff73;border-radius:999px;margin-top:1.1rem;padding:.8rem 1.25rem;font:.68rem DM Sans,sans-serif;position:relative}.note-envelope button span{margin-left:.8rem}.letter-ending{text-align:center;background:var(--paper);flex-direction:column;justify-content:center;align-items:center;min-height:92vh;padding:7rem 1.5rem;display:flex}.ending-heart{color:var(--rose);font-size:2.2rem}.letter-ending>p{text-transform:uppercase;letter-spacing:.3em;margin:1.5rem 0 .5rem;font-size:.64rem}.letter-ending h2{letter-spacing:-.04em;max-width:900px;margin:0;font:500 clamp(3.2rem,6.5vw,6rem)/.92 Cormorant Garamond,serif}.letter-ending h2 em{color:var(--wine);font-weight:400}.ending-line{background:var(--rose);width:1px;height:90px;margin:3rem 0}.letter-ending small{color:#7c6864;font:italic 1.05rem Cormorant Garamond,serif}.lightbox{z-index:100;color:#fff;background:#190d10f0;place-items:center;padding:2rem 6rem;display:grid;position:fixed;inset:0}.lightbox figure{justify-items:center;gap:.8rem;max-width:min(80vw,1050px);max-height:88vh;margin:0;display:grid}.lightbox img{object-fit:contain;max-width:100%;max-height:80vh;box-shadow:0 20px 70px #0006}.lightbox figcaption{color:#ead9d5;text-align:center;font:italic 1rem Cormorant Garamond,serif}.lightbox button{color:#fff;cursor:pointer;background:0 0;border:0;position:absolute}.lightbox-close{font-size:2.6rem;line-height:1;top:1rem;right:1.5rem}.lightbox-arrow{padding:1rem;font-size:2rem;top:50%;transform:translateY(-50%)}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}@media (width<=760px){.intro-content{width:86vw;padding-top:5rem}.intro-content h1{font-size:clamp(3.7rem,18vw,6.2rem);line-height:.82}.intro-copy{font-size:1.15rem}.intro-photo img{object-position:54% center}.scroll-cue{display:none}.letter-nav{gap:.7rem;height:62px}.letter-nav a{letter-spacing:.13em;font-size:.56rem}.paper-section{margin:5rem auto;padding:4rem 1.5rem 3rem;transform:none}.handwritten{font-size:2.4rem}.letter-body{font-size:1.16rem;line-height:1.8}.signature{font-size:1.2rem}.quote-break{min-height:64vh}.photo-grid{display:block}.photo-card,.photo-2,.photo-3,.photo-4,.photo-5,.photo-6,.photo-7{width:100%;max-width:520px;margin:0 auto 3.5rem}.photo-card:nth-child(2n){width:88%;margin-right:0}.photo-card:nth-child(odd){width:92%;margin-left:0}.photo-card button{aspect-ratio:4/5}.wide-memory{min-height:70vh}.wide-memory>img{object-position:center}.wide-memory-copy{padding-bottom:4rem}.wide-memory-copy p:last-child{margin-left:0}.notes-section{grid-template-columns:1fr;gap:3rem}.notes-copy{justify-self:start}.note-envelope{min-height:340px}.note-card{min-height:190px;padding:1.5rem}.lightbox{padding:3.5rem 1rem 5rem}.lightbox-arrow{top:auto;bottom:.7rem;transform:none}.lightbox-prev{left:28%}.lightbox-next{right:28%}}@media (prefers-reduced-motion:reduce){.letter-site *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation:none!important}}
