/* CSS gives the HTML its colours, layout and motion. Change these variables first. */
:root{--paper:#f8f1e8;--ink:#493032;--wine:#853749;--rose:#eedad6;--line:#d9c7bf;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.6}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--wine);outline-offset:6px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.05em;line-height:1.06}em{font-weight:400;color:var(--wine)}.topbar{max-width:1360px;margin:auto;padding:28px 6%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--serif);font-style:italic;font-size:22px}.wordmark span{color:var(--wine);margin-left:8px}.nav-note{font-size:12px}.hero{max-width:1360px;min-height:760px;margin:auto;position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:60px 9% 95px;gap:35px}.eyebrow{font-size:10px;letter-spacing:2.2px;font-weight:600;display:block;margin-bottom:25px}.hero h1{font-size:clamp(70px,8.3vw,118px);margin-bottom:30px}.hero-copy>p{color:#786264;font-size:16px;line-height:1.8}.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;background:var(--wine);border:1px solid var(--wine);color:#fff7ef;padding:16px 23px;border-radius:3px;font-size:12px;letter-spacing:.3px;transition:transform .2s,background .2s}.button:hover{background:#682738;transform:translateY(-2px)}.hero .button{margin-top:32px}.handwritten{font-family:var(--serif);font-style:italic;color:var(--wine);font-size:18px}.hero-aside{display:block;margin:22px 0 0 20px;transform:rotate(-5deg)}.hero-art{height:520px;position:relative}.polaroid{background:#fffdf7;padding:12px 12px 0;box-shadow:0 13px 35px #53312c20;position:absolute;width:250px}.polaroid img{width:100%;height:305px;object-fit:cover;display:block}.polaroid figcaption{text-align:center;font-family:var(--serif);font-style:italic;font-size:15px;padding:16px 0 18px}.hero-back{left:0;top:16px;transform:rotate(-10deg)}.hero-back img{object-position:50% 33%}.hero-front{right:-5px;bottom:20px;transform:rotate(9deg);width:275px}.hero-front img{height:338px;object-position:50% 28%}.hero-front:before{content:'';position:absolute;top:-14px;left:90px;width:90px;height:28px;background:#d5bca780;transform:rotate(-7deg)}.orbit-heart{position:absolute;right:0;top:-10px;font:95px var(--serif);color:var(--wine);transform:rotate(15deg)}.photo-stamp{position:absolute;bottom:0;left:0;width:88px;height:88px;border:1px solid #ab7680;border-radius:50%;font-size:9px;letter-spacing:2px;line-height:1.8;text-align:center;padding:16px 0;color:var(--wine);transform:rotate(-15deg)}.hero-bottom{position:absolute;bottom:25px;left:6%;right:6%;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.7px;color:#8a7371}.hero-bottom a{letter-spacing:.5px;font-size:11px}.section{padding:95px max(6%,calc((100% - 1196px)/2));}.memories{border-top:1px solid var(--line);overflow:hidden}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:40px}.section-heading h2,h2{font-size:clamp(38px,4.2vw,58px)}.section-heading>p{font-size:13px;color:#826a69;padding-bottom:5px}.gallery-tools{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;color:#8a7371;font-size:11px}.arrow{border:1px solid var(--line);border-radius:50%;width:36px;height:36px;background:transparent;color:var(--ink);margin-left:5px}.arrow:hover{background:var(--rose)}.gallery{display:flex;gap:25px;overflow-x:auto;scroll-snap-type:x mandatory;padding:15px 8px 28px;scrollbar-width:thin;scrollbar-color:#c29399 transparent}.memory{flex:0 0 265px;border:0;background:#fffdf7;padding:10px 10px 0;box-shadow:0 5px 15px #53312c0d;text-align:left;scroll-snap-align:center;transition:transform .25s;color:var(--ink);transform:rotate(-2deg)}.memory:nth-child(even){transform:rotate(2deg)}.memory:hover{transform:translateY(-7px) rotate(0)}.memory img{width:100%;height:335px;object-fit:cover;display:block}.memory:nth-child(2) img,.memory:nth-child(3) img,.memory:nth-child(n+5) img{object-fit:contain;background:#f0e8e3}.memory>span{display:block;padding:19px 3px;font:italic 14px var(--serif)}.memory small{font:9px Arial,sans-serif;color:#a5817d;margin-right:8px}.gallery-footer{display:flex;align-items:center;justify-content:space-between;margin-top:20px}.gallery-footer>span:last-child{font-size:9px;letter-spacing:1.7px;color:#947d77}.reasons{background:#efded9;text-align:center;position:relative}.reasons .eyebrow{color:#93616b}.reason-card{max-width:650px;min-height:240px;margin:35px auto 25px;padding:30px 35px;background:#fbf5ed;border:1px solid #e1c9c2;position:relative;box-shadow:7px 7px 0 #e6ccc6}.reason-heart{font:36px var(--serif);color:var(--wine)}.reason-card p{font:italic clamp(24px,3vw,35px)/1.4 var(--serif);margin:12px 0 28px;min-height:98px}.reason-count{font-size:9px;letter-spacing:2px;color:#9b7b78}.tiny-note{font-size:11px;color:#95736f;margin-top:22px}.letter-section{display:grid;grid-template-columns:1fr 1.2fr;gap:70px;align-items:center;min-height:520px}.letter-intro>p{font-size:13px;color:#8a7371;margin-top:25px}.letter-wrap{width:100%;max-width:540px;margin:auto}.envelope{position:relative;display:block;width:100%;height:270px;border:1px solid #dac2b6;background:#ecd8c8;box-shadow:0 16px 25px #53312c0b;overflow:hidden}.envelope:before,.envelope:after{content:'';position:absolute;width:75%;height:100%;bottom:-50%;background:#f0dfd1;border:1px solid #d9c1b6;transform:rotate(35deg);left:-20%}.envelope:after{transform:rotate(-35deg);right:-20%;left:auto}.envelope-fold{position:absolute;left:0;right:0;top:0;height:155px;background:#e5cdbb;clip-path:polygon(0 0,100% 0,50% 100%)}.seal{position:absolute;top:115px;left:calc(50% - 27px);width:54px;height:54px;line-height:54px;background:var(--wine);color:#f8e4d6;border:3px double #bc7b85;border-radius:50%;z-index:2;font:30px/48px var(--serif);transition:transform .3s}.envelope:hover .seal{transform:scale(1.1)}.envelope-label{position:absolute;bottom:20px;left:0;right:0;z-index:3;font:italic 23px var(--serif);color:#79514d}.envelope-label small{font:9px Arial,sans-serif;letter-spacing:2px}.letter{background:#fffaf1;border:1px solid #e2d2c4;padding:38px;box-shadow:0 12px 35px #53312c0b;animation:unfold .5s ease}.letter h3{font-size:36px;color:var(--wine);margin:20px 0}.letter>p{font:17px/1.8 var(--serif);margin-top:17px}.letter .signature{margin-top:28px}.signature span{font:italic 30px var(--serif);color:var(--wine)}.text-button{border:0;border-bottom:1px solid #b58b8b;background:transparent;color:var(--wine);font-size:11px;padding:5px 0;margin-top:25px}footer{border-top:1px solid var(--line);padding:30px 6%;display:flex;justify-content:space-between;align-items:center;gap:20px}footer>span:nth-child(2),footer>a{font-size:10px;color:#927a75}.lightbox{border:0;background:#241b1bf5;color:#fff;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:50px 60px}.lightbox[open]{display:flex;align-items:center;justify-content:center;gap:25px}.lightbox::backdrop{background:#241b1b}.lightbox figure{display:flex;flex-direction:column;align-items:center;max-width:85vw}.lightbox img{max-height:78dvh;max-width:100%;object-fit:contain}.lightbox figcaption{font:italic 18px var(--serif);padding:15px;text-align:center}.lightbox button{border:1px solid #ffffff44;border-radius:50%;background:transparent;color:white;width:42px;height:42px;flex-shrink:0}.lightbox-close{position:absolute;right:22px;top:18px;font-size:28px}.spark{position:fixed;pointer-events:none;color:var(--wine);z-index:5;animation:float 1.5s ease-out forwards;font:24px var(--serif)}@keyframes float{to{transform:translate(var(--dx),-120px) rotate(25deg);opacity:0}}@keyframes unfold{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1400px){.hero-art{max-width:480px}.hero{gap:60px}}@media(max-width:900px){.hero{padding-left:6%;padding-right:6%;min-height:700px;gap:20px}.polaroid{width:200px}.polaroid img{height:260px}.hero-front{width:225px}.hero-front img{height:290px}.hero-art{height:460px}.letter-section{gap:30px}.letter{padding:25px}}@media(max-width:650px){.topbar{padding:20px 6%}.wordmark{font-size:19px}.nav-note{font-size:10px}.hero{display:flex;flex-direction:column;align-items:stretch;padding-top:45px;padding-bottom:80px;gap:35px;min-height:auto}.hero-copy{position:relative;z-index:1}.hero h1{font-size:76px}.eyebrow{font-size:9px;margin-bottom:20px}.hero-copy>p{font-size:14px}.hero-aside{font-size:16px;margin-left:12px}.hero-art{width:100%;max-width:365px;height:410px;align-self:center;margin-top:5px}.polaroid{width:190px;padding:9px 9px 0}.polaroid img{height:240px}.hero-back{top:0;left:10px}.hero-front{width:215px;right:10px;bottom:18px}.hero-front img{height:265px}.polaroid figcaption{font-size:12px;padding:13px 0}.orbit-heart{font-size:65px;right:10px}.photo-stamp{width:70px;height:70px;font-size:7px;left:15px;padding-top:13px}.hero-bottom{bottom:20px;font-size:7px}.section{padding:60px 6%}.section-heading{display:block;margin-bottom:28px}.section-heading>p{margin-top:20px;font-size:12px}h2,.section-heading h2{font-size:39px}.gallery-tools>span{max-width:200px;line-height:1.5;font-size:10px}.memory{flex-basis:245px}.memory img{height:315px}.gallery{gap:18px}.gallery-footer>span:last-child{font-size:7px}.handwritten{font-size:16px}.reason-card{padding:25px 20px;min-height:230px}.reason-card p{font-size:27px}.letter-section{grid-template-columns:1fr;gap:35px}.envelope{height:230px}.envelope-fold{height:135px}.seal{top:95px}.letter-intro>p{margin-top:18px}footer{flex-wrap:wrap;padding-top:25px;padding-bottom:25px}footer .wordmark{width:100%}.lightbox{padding:60px 12px}.lightbox[open]{gap:6px}.lightbox button{width:30px;height:30px}.lightbox figure{max-width:calc(100vw - 96px)}.lightbox figcaption{font-size:15px;padding:12px 0}.lightbox img{max-height:75dvh}.lightbox-close{right:18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* A smaller heading keeps Millicent’s longer dedication balanced on small screens. */
.hero h1.personal-title{font-size:clamp(48px,5.8vw,78px)}
@media(max-width:650px){.hero h1.personal-title{font-size:clamp(44px,12vw,65px)}}
