@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@500;600&family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');

:root{color-scheme:light;--paper:#f8f3e8;--ink:#4b252b;--muted:#74625c;--accent:#9d3e43;--line:#ded4c6;--serif:'DM Serif Display',Georgia,serif;--hand:'Caveat',cursive}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:35px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}
body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:5;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' 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%3Cpath fill='%23857564' opacity='.3' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}
a{color:inherit}a:focus-visible{outline:3px solid var(--accent);outline-offset:6px}.skip-link{position:absolute;left:20px;top:-100px;z-index:10;background:var(--paper);padding:12px}.skip-link:focus{top:10px}
.site-header,.hero,.our-story,.coming-soon,footer{width:min(1240px,calc(100% - 112px));margin-inline:auto}
.site-header{display:flex;align-items:center;justify-content:space-between;padding:26px 0;border-bottom:1px solid var(--line)}
.brand{text-decoration:none;display:flex;align-items:center;gap:22px}.brand-mark,.footer-brand{font-family:var(--serif);font-size:48px;letter-spacing:-4px;line-height:1}.brand-mark>span,.footer-brand>span{font-family:Georgia,serif;font-size:30px;display:inline-block;vertical-align:top;margin:3px 0 0 5px;color:var(--accent)}.brand-caption{font-size:9px;letter-spacing:2px;border-left:1px solid var(--line);padding-left:22px;max-width:100px;line-height:1.8}nav{display:flex;align-items:center;gap:34px}nav a{font-size:12px;text-decoration:none}nav a:hover{text-decoration:underline;text-underline-offset:5px}nav a:last-child{border:1px solid #c5b7a7;padding:10px 18px;border-radius:30px}nav a span{margin-left:16px}
.hero{display:grid;grid-template-columns:1.08fr 1fr;gap:50px;align-items:center;padding-top:62px;padding-bottom:86px;min-height:730px}
.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.8px;text-transform:uppercase;margin:0 0 27px;display:block}.hero .eyebrow{display:flex;align-items:center;gap:10px}.tiny-star{font-size:23px;color:var(--accent)}
h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h1{font-size:clamp(64px,6.4vw,92px);line-height:1.04;letter-spacing:-3.4px;margin-bottom:26px}h1 em,h2 em{font-weight:400;color:var(--accent)}.intro{font-size:15px;line-height:1.9;color:var(--muted);max-width:390px;margin-bottom:30px}.button{display:inline-flex;align-items:center;gap:34px;border-radius:40px;background:var(--ink);color:var(--paper);padding:16px 24px;font-size:12px;text-decoration:none;transition:transform .2s,background .2s}.button span{font-size:19px}.button:hover{background:var(--accent);transform:translateY(-3px)}.hero-footnote{display:flex;gap:10px;align-items:center;margin-top:22px;font-size:11px;color:var(--muted)}.hand-heart{font-family:var(--hand);font-size:26px;color:var(--accent)}
.scrapbook{position:relative;padding:22px 22px 10px 12px;min-width:0}.postcard{position:relative;margin:0;background:#fffdf5;padding:13px 13px 0;transform:rotate(4deg);box-shadow:0 18px 30px -15px #4b252b40,0 0 0 1px #4b252b0c}.postcard img{display:block;width:100%;height:auto;aspect-ratio:1.13;object-fit:cover}.postcard figcaption{display:flex;justify-content:space-between;align-items:center;padding:15px 10px 19px;font-family:var(--hand);font-size:25px}.postcard figcaption>span:last-child{font-size:32px;color:var(--accent)}.tape{position:absolute;z-index:1;top:-17px;left:36%;width:114px;height:34px;transform:rotate(-8deg);background:#d9c49dc2;clip-path:polygon(2% 0,99% 4%,96% 20%,100% 35%,97% 60%,100% 96%,0 100%,3% 75%,0 50%,4% 25%)}.handwritten{font-family:var(--hand);font-size:24px}.top-note{position:absolute;top:-23px;right:30px;transform:rotate(7deg);z-index:2}.top-note>span{display:inline-block;font-size:39px;transform:translateY(20px)}.round-stamp{position:absolute;bottom:-9px;left:-34px;width:116px;height:116px;background:#ebc75a;border:1px solid var(--ink);outline:5px solid #ebc75a;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-16deg);box-shadow:0 5px 10px #4b252b10}.round-stamp span{font-size:8px;letter-spacing:1px;font-weight:700}.round-stamp b{font-size:40px;line-height:1.2;font-weight:400}.postcard-note{position:absolute;right:25px;bottom:-42px;font-size:10px;color:var(--muted);letter-spacing:1px}
.ribbon{display:flex;align-items:center;justify-content:center;gap:60px;background:var(--ink);color:var(--paper);padding:20px 30px;font-family:var(--serif);font-size:25px}.ribbon i{font-style:normal;font-size:24px;color:#e7bc64}.ribbon span{white-space:nowrap}
.our-story{display:grid;grid-template-columns:.65fr 1.5fr .3fr;gap:35px;padding-block:83px;border-bottom:1px solid var(--line);align-items:start}.our-story>.eyebrow{padding-top:12px}.our-story h2{font-size:43px;line-height:1.2;letter-spacing:-1px;margin-bottom:23px}.our-story p:not(.eyebrow){font-size:14px;line-height:1.9;max-width:515px;color:var(--muted);margin-bottom:0}.story-flower{font-size:115px;color:#ab6250;line-height:1;text-align:right;transform:rotate(10deg)}
.coming-soon{padding-block:68px 85px}.section-heading{display:flex;justify-content:space-between;gap:25px;align-items:end;margin-bottom:35px}.section-heading .eyebrow{margin-bottom:13px}h2{font-size:46px;line-height:1.15;letter-spacing:-1.2px;margin-bottom:0}.section-heading>p{font-size:12px;color:var(--muted);margin-bottom:4px;line-height:1.8}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{border-radius:9px;overflow:hidden;position:relative}.album-card{background:#e8ebdf}.calendar-card{background:#efe0ca}.stories-card{background:#edddd8}.card-top{padding:21px 22px 0;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:8px;letter-spacing:1.2px;font-weight:600}.status{font-size:8px;letter-spacing:0;font-weight:400;border:1px solid #4b252b35;border-radius:30px;padding:3px 8px;white-space:nowrap}.card-art{height:230px;position:relative}.card-copy{padding:0 26px 28px}.card-number{font-size:9px;border-top:1px solid #4b252b25;display:block;padding-top:16px;margin-bottom:8px;color:var(--muted)}h3{font-size:27px;line-height:1.2;letter-spacing:-.5px;margin-bottom:13px}.card-copy p{font-size:12px;color:#6a5850;line-height:1.8;margin-bottom:0;max-width:270px}
.mini-photo{position:absolute;background:#fffaf0;padding:8px;box-shadow:0 4px 10px #4b252b15;width:126px;height:147px;top:36px;left:calc(50% - 55px);transform:rotate(12deg);font-family:var(--hand);font-size:17px;text-align:center}.photo-back{transform:rotate(-16deg);left:calc(50% - 105px);top:32px;background:#faf5e9}.photo-back:before{content:'';display:block;height:98px;background:linear-gradient(140deg,#cf9a79 45%,#925c47 45%,#925c47 55%,#d8b58b 55%)}.mini-landscape{height:100px;background:radial-gradient(circle at 74% 25%,#e9ba5e 0 12%,transparent 13%),linear-gradient(160deg,transparent 52%,#7b9273 53% 69%,#425e51 70%),#bdcec6}.photo-spark{position:absolute;right:33px;top:24px;font-size:47px;color:#687a57}
.calendar{position:absolute;left:calc(50% - 78px);top:34px;width:156px;height:159px;background:#fff9ee;border-radius:5px;box-shadow:3px 6px 0 #d2b79a;transform:rotate(-7deg);text-align:center;padding-top:24px}.calendar>span{font-size:8px;letter-spacing:2px}.calendar>b{font-family:var(--hand);font-size:34px;font-weight:500;display:block;line-height:1.2}.calendar-binding{position:absolute;top:-6px;left:25px;right:25px;height:15px;border-left:4px solid #92705e;border-right:4px solid #92705e}.calendar-dots{font-size:28px;line-height:.8;letter-spacing:3px;padding-top:13px;color:#b19b83}.calendar-dots i{font-size:19px;font-style:normal;color:var(--accent);letter-spacing:0}.calendar-spark{position:absolute;right:38px;bottom:23px;font-size:60px;color:#a14c3c;transform:rotate(12deg)}
.letter{position:absolute;top:27px;left:calc(50% - 69px);width:139px;height:151px;background:#fff9ed;transform:rotate(8deg);padding:10px 17px;box-shadow:0 2px 8px #4b252b10}.letter>span,.letter>b{font-family:var(--hand);font-size:22px;font-weight:500}.letter>i{display:block;border-bottom:1px solid #cbb3a6;margin-top:10px}.letter>b{font-size:18px;display:block;text-align:right;margin-top:4px}.envelope{position:absolute;top:115px;left:calc(50% - 92px);width:173px;height:84px;background:#ba7763;clip-path:polygon(0 0,50% 35%,100% 0,100% 100%,0 100%);transform:rotate(-6deg)}.envelope:after{content:'';position:absolute;inset:0;background:#ce917b;clip-path:polygon(0 100%,50% 22%,100% 100%)}.letter-star{position:absolute;left:32px;top:42px;font-size:46px;color:#a34c4d;transform:rotate(-12deg)}
.closing-note{position:relative;text-align:center;overflow:hidden;background:#eae5d7;padding:57px 30px 50px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.closing-note .eyebrow{margin-bottom:18px}.closing-note h2{font-size:65px;line-height:1.08;margin-bottom:21px}.closing-note p{font-size:12px;color:var(--muted)}.closing-note a{display:inline-block;font-size:11px;text-underline-offset:5px;margin-top:12px}.closing-note a span{margin-left:12px}.closing-star{position:absolute;right:10%;top:65px;font-size:150px;color:#c4c8ad;transform:rotate(14deg);pointer-events:none}footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-block:29px}.footer-brand{text-decoration:none;font-size:36px}.footer-brand>span{font-size:22px}footer p,footer>span{font-size:10px;color:var(--muted);margin:0}
@media(min-width:1000px) and (prefers-reduced-motion:no-preference){.hero-copy{animation:arrive .7s both}.scrapbook{animation:arrive .9s .1s both}@keyframes arrive{from{opacity:0;translate:0 15px}to{opacity:1;translate:0 0}}}
@media(max-width:1050px){.site-header,.hero,.our-story,.coming-soon,footer{width:calc(100% - 64px)}.hero{gap:25px;min-height:650px;padding-block:60px 85px}h1{font-size:70px}.round-stamp{width:96px;height:96px;left:-12px}.round-stamp span{font-size:6px}.round-stamp b{font-size:34px}.postcard figcaption{font-size:21px}.ribbon{gap:28px;font-size:21px}.our-story{grid-template-columns:.7fr 1.5fr}.story-flower{display:none}.cards{gap:14px}.card-top{padding-inline:16px;letter-spacing:.6px}.card-copy{padding-inline:20px}h3{font-size:24px}.section-heading>p{max-width:210px}.closing-star{right:5%;font-size:110px}h2{font-size:40px}}
@media(max-width:760px){.hero{grid-template-columns:1fr;gap:60px;padding-top:45px}.hero-copy{max-width:540px}.hero h1{font-size:clamp(56px,10vw,78px)}.intro{max-width:420px}.scrapbook{width:min(480px,95%);justify-self:center;margin-bottom:20px}.ribbon{gap:20px;font-size:17px;padding-inline:20px}.ribbon i:last-child{display:none}.our-story{grid-template-columns:1fr;gap:0;padding-block:50px}.our-story>.eyebrow{padding:0;margin-bottom:20px}.our-story h2{font-size:38px}.coming-soon{padding-block:45px 55px}.section-heading{align-items:start;flex-direction:column;gap:15px}.section-heading>p{max-width:none}.cards{grid-template-columns:1fr}.card{display:grid;grid-template-columns:45% 55%}.card-top{grid-column:1/-1;padding:20px 22px 0}.card-art{height:215px}.card-copy{align-self:center;padding:20px 22px 22px 5px}.card-number{border:0;padding:0}.photo-spark,.calendar-spark,.letter-star{display:none}.mini-photo{width:108px}.photo-back{left:calc(50% - 78px)}.photo-front{left:calc(50% - 30px)}.closing-star{font-size:80px;right:4%;top:30px;opacity:.7}footer{flex-wrap:wrap}footer>span{width:100%;text-align:center;border-top:1px solid var(--line);padding-top:17px}nav{gap:20px}}
@media(max-width:440px){.site-header,.hero,.our-story,.coming-soon,footer{width:calc(100% - 40px)}.site-header{padding-block:21px}.brand-caption{display:none}.brand-mark{font-size:42px}nav{gap:16px}nav a{font-size:10px}nav a:last-child{padding:8px 12px}nav a span{margin-left:7px}.hero h1{letter-spacing:-2.5px;font-size:58px}.hero .eyebrow{font-size:9px;letter-spacing:1.2px}.intro{font-size:14px}.scrapbook{width:100%;padding-inline:14px}.postcard figcaption{font-size:20px;padding-inline:2px}.round-stamp{bottom:-20px}.top-note{font-size:21px}.ribbon{gap:13px;flex-wrap:wrap;font-size:16px}.ribbon i{font-size:16px}.ribbon span:last-of-type{flex-basis:100%;text-align:center}.ribbon i:nth-of-type(2){display:none}.our-story h2{font-size:33px}h2{font-size:36px}.card{display:block}.card-art{height:217px}.card-copy{padding:0 25px 26px}.card-number{border-top:1px solid #4b252b25;padding-top:15px}.mini-photo{width:126px}.photo-back{left:calc(50% - 105px)}.photo-front{left:calc(50% - 55px)}.photo-spark,.calendar-spark,.letter-star{display:block}.closing-note h2{font-size:55px}.closing-star{font-size:50px;right:5%;top:50px}footer p{max-width:220px;text-align:right}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Keep the postcard caption clear and the ribbon comfortable on small screens. */
body:before{background-size:160px 160px;opacity:.045}
.brand-mark{white-space:nowrap}
.round-stamp{bottom:90px}
@media(max-width:760px){.ribbon{flex-wrap:wrap}.ribbon span:last-of-type{flex-basis:100%;text-align:center}.ribbon i:nth-of-type(2){display:none}}
@media(max-width:440px){.round-stamp{bottom:80px}}
