@import url('https://fonts.googleapis.com/css2?family=Bree+Serif&family=Lora:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--paper:#faf5e9;--ink:#304b49;--muted:#61716a;--red:#a13e32;--ochre:#a27c43;--serif:'Lora',Georgia,serif;--display:'Bree Serif',Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.9 var(--serif);-webkit-font-smoothing:antialiased;background-image:radial-gradient(#8d764309 .6px,transparent .6px);background-size:5px 5px}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer}p,h1,h2,figure{margin:0}img,video{display:block;max-width:100%;height:auto}h1,h2{font-weight:400;line-height:1.2;letter-spacing:-.035em}h2{font-size:clamp(34px,3.6vw,52px)}em{font-weight:400;color:var(--red)}strong{font-weight:600}::selection{background:#e6d1a5}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--red);outline-offset:6px}.wrap{width:min(1180px,calc(100% - 96px));margin-inline:auto}.narrow{max-width:730px;margin-inline:auto;text-align:center}.chapter{color:var(--ochre);font-style:italic;font-size:16px;margin-bottom:20px}.eyebrow{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:#8b5141}.body-copy{margin-top:26px;line-height:1.95;color:var(--muted)}.lead{font-size:21px;line-height:1.8;color:var(--ink)}.handwritten{font-style:italic;font-size:27px;line-height:1.6;color:var(--red)}.ornament{display:block;color:var(--ochre);font-size:27px;line-height:1;margin-bottom:28px}.anchor{position:absolute;top:0}.skip-link{position:absolute;left:20px;top:-100px;padding:12px;background:var(--paper);z-index:20}.skip-link:focus{top:10px}
.site-header{height:110px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:14px;font:25px/1.05 var(--display);letter-spacing:-.025em}.brand>span:first-child{font-size:32px;color:var(--ochre)}nav{display:flex;gap:32px;font-size:13px}nav a,.header-contact{padding:10px 0}nav a:hover,.text-link:hover,.social-links a:hover{color:var(--red)}.header-contact{font-size:14px;color:var(--red);border-bottom:1px solid #a13e3255;white-space:nowrap}.header-contact span{margin-left:15px}
.hero{position:relative;isolation:isolate;min-height:760px;display:flex;align-items:center;background:#f8f2e4}.hero-village{position:absolute;inset:0 0 0 auto;width:78%;z-index:-1;mask-image:linear-gradient(to right,transparent,#000 32%);-webkit-mask-image:linear-gradient(to right,transparent,#000 32%)}.hero-village img{width:100%;height:100%;object-fit:cover;object-position:60% center}.hero:after{content:'';position:absolute;inset:auto 0 -1px;height:60px;background:linear-gradient(transparent,var(--paper));pointer-events:none}.hero-inner{padding-block:80px 110px}.hero-copy{max-width:610px;position:relative}.hero-copy:before{content:'';position:absolute;inset:-50px -65px -50px -60px;z-index:-1;background:radial-gradient(ellipse at 35% 50%,#f8f2e4fc,#f8f2e4e8 48%,#f8f2e400 74%)}h1{font:clamp(49px,5.4vw,78px)/1.13 var(--display);letter-spacing:-.045em;margin:28px 0 32px}h1 em{font-family:var(--serif);font-size:.94em}.hero-intro{font-size:20px;line-height:1.8;max-width:490px}.hero-purpose{font-size:15px;max-width:420px;line-height:1.9;margin-top:15px;color:var(--muted)}.collection-date{font-size:15px;margin-top:25px;color:#865438}.hero-actions{display:flex;align-items:center;gap:29px;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;font-size:15px;color:#fff8e9;background:var(--red);padding:13px 22px;border:1px solid #81382e;border-radius:4px 7px 3px 6px;min-height:52px}.button:hover{background:#86372e}.text-link{font-size:14px;border-bottom:1px solid #a27c4355;padding-block:8px}.text-link span{margin-left:12px}
.opening{display:grid;grid-template-columns:1fr 1.03fr;gap:70px;align-items:center;padding-block:110px 65px}.opening h2{margin-bottom:32px}.prose p+p{margin-top:23px}.prose{color:var(--muted)}.prose .handwritten{margin-top:30px}.painted-page img{width:100%;border:10px solid #fff9ed;outline:1px solid #a58c5f33;box-shadow:3px 5px 0 #a58c5f0c}.painted-page{transform:rotate(1deg)}figcaption{font-size:14px;line-height:1.7;font-style:italic;color:#7a7965;margin-top:15px;text-align:center}.opening .painted-page{align-self:center;margin-top:35px}
.film-section{padding-block:45px 100px;text-align:center}.film-heading{max-width:700px;margin:auto}.film-heading .chapter{margin-bottom:15px}.film-heading h2{font-size:clamp(30px,3vw,44px)}.film-frame{width:min(900px,100%);margin:38px auto 0;padding:9px;background:#fff9ee;outline:1px solid #a58c5f44;box-shadow:4px 6px 0 #a58c5f0c;transform:rotate(-.45deg)}.film-frame video{width:100%;aspect-ratio:16/9;background:#263f4b}.film-frame figcaption{margin:14px 10px 8px}
.memories{padding-block:45px 90px}.memories .lead{margin-top:28px}.memories .body-copy{font-size:16px}.corridor-scroll{margin:40px -24px 0;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-color:#bd9866 #f6ebd1}.corridor-scene{position:relative;width:100%;min-width:760px;aspect-ratio:3/2}.corridor-backdrop{width:100%;height:100%;display:block}.wall-photo{position:absolute;display:block;overflow:hidden;clip-path:polygon(1% 0,99% 1%,100% 99%,0 100%);transition:filter .2s}.wall-photo img{width:100%;height:100%;object-fit:cover}.wall-photo:hover{filter:brightness(1.12)}.wall-photo:focus-visible{outline:4px solid white;outline-offset:-4px}.photo-1{left:17.55%;top:32.65%;width:10.55%;height:23.55%}.photo-2{left:33.30%;top:32.65%;width:10.65%;height:23.55%}.photo-3{left:49.10%;top:35.65%;width:18.10%;height:17.90%}.photo-4{left:72.15%;top:32.55%;width:10.60%;height:23.65%}.gallery-hint{font-size:14px;line-height:1.8;text-align:center;font-style:italic;color:#7a7965;margin:16px auto 0}.gallery-hint span{display:none}.gratitude{margin-top:44px;font-size:18px;line-height:1.95}.gratitude p+p{margin-top:22px}.gratitude p:nth-child(2){font-size:16px;color:var(--muted)}.gratitude .handwritten{font-size:24px}
.gift-chapter{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:start;padding-block:65px 90px}.gift-illustration h2{margin-bottom:24px}.gift-illustration .body-copy{max-width:440px}.gift-illustration .painted-page{margin-top:32px;transform:rotate(-1.1deg)}.gift-note{text-align:center;font-size:17px;margin-top:34px;line-height:1.9}.gift-note span{font-size:13px;color:var(--muted);display:block;margin-top:12px}.faq-list{padding-top:12px}.faq-list details{padding:0 0 25px;margin-bottom:21px;border-bottom:1px solid #a27c4326}.faq-list details:last-child{border:0;margin-bottom:0}.faq-list summary{cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:22px;list-style:none;font-size:20px;line-height:1.5;color:var(--ink)}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::marker{content:''}.faq-list summary span{color:var(--ochre);font-size:22px;flex-shrink:0;transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list p{font-size:16px;line-height:1.95;margin-top:16px;color:var(--muted)}.faq-list p a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.faq-list strong{color:var(--ink)}
.invitation{padding-block:70px 85px;text-align:center;position:relative}.invitation:before{content:'';display:block;width:90px;height:1px;background:#a27c4355;position:absolute;top:0;left:calc(50% - 45px)}.invitation h2{font-size:clamp(35px,4vw,56px);line-height:1.3}.invitation-letter{max-width:700px;margin:30px auto 0;font-size:19px;color:var(--muted)}.invitation>.handwritten{font-size:24px;margin:23px auto 0;max-width:650px}.contact-links{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:35px}.contact-main{font:36px/1.4 var(--display);color:var(--red);letter-spacing:-.02em}.contact-email{font-size:22px;text-decoration:underline;text-underline-offset:6px;text-decoration-color:#a27c4366;overflow-wrap:anywhere;max-width:100%}.contact-links p{font-size:14px;color:var(--muted);margin-top:8px}.social-links{display:flex;gap:22px;justify-content:center;align-items:center;font-size:15px;margin-top:25px}.social-links>span{color:var(--ochre)}.share-link{border:0;background:none;padding:12px 0 4px;border-bottom:1px solid #a27c4366;color:var(--red);font-size:15px;margin-top:15px}.share-link span{margin-left:12px}.closing-wish{font-style:italic;font-size:20px;margin-top:35px;color:var(--ochre)}
footer{text-align:center;padding:0 20px 45px;max-width:820px}.footer-ornament{font-size:35px;color:#9d845d;margin-bottom:20px}footer p{font-size:13px;line-height:1.95;color:#6e7668}footer p+p{margin-top:12px}.footer-home{display:inline-block;margin-top:26px;font-size:12px;color:var(--ochre)}
dialog{background:var(--paper);color:var(--ink);padding:28px;border:1px solid #b39765;width:min(520px,92vw);max-height:92dvh;box-shadow:0 20px 90px #172d2c55}dialog::backdrop{background:#172d2ce8;backdrop-filter:blur(5px)}dialog h2{font-size:34px;margin:15px 0}dialog p{font-size:15px;margin:14px 0}dialog label{display:block;font-size:13px;margin-top:20px}dialog input{width:100%;padding:10px;border:1px solid #b39765;margin-bottom:20px;font-size:13px}dialog .dialog-close{position:absolute;right:12px;top:5px;font-size:27px;border:0;background:none;color:var(--ink)}#photo-dialog{width:min(1050px,94vw);max-width:94vw;padding:18px;overflow:auto}#photo-full{max-height:76dvh;max-width:100%;width:auto;margin:auto;object-fit:contain}#photo-caption{text-align:center;font-size:15px;line-height:1.7;margin:12px 10px 0}.photo-close{display:block;margin:0 0 9px auto;border:1px solid #b39765;border-radius:50%;width:40px;height:40px;background:var(--paper);color:var(--ink);font-size:27px;line-height:1}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--paper);color:var(--ink);padding:13px 23px;border:1px solid #a27c4366;box-shadow:0 5px 35px #0003;font-size:14px;transition:opacity .25s,transform .25s;z-index:100;max-width:calc(100% - 30px);text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1600px){.hero{min-height:820px}.hero-village{width:74%}}
@media(max-width:1050px){.wrap{width:calc(100% - 72px)}nav{gap:20px;font-size:12px}.brand{font-size:22px}.hero-copy{max-width:520px}h1{font-size:64px}.hero-village{width:85%;opacity:.85}.opening{gap:45px}.gift-chapter{gap:50px}.opening .painted-page{margin-top:0}.hero{min-height:720px}.hero-intro{font-size:18px}}
@media(max-width:760px){body{font-size:16px}.wrap{width:calc(100% - 44px)}.site-header{height:90px;gap:15px}.brand{font-size:21px;gap:10px}.brand>span:first-child{font-size:26px}nav{display:none}.header-contact{font-size:12px}.header-contact span{margin-left:7px}.hero{display:flex;flex-direction:column;min-height:0}.hero-village{position:relative;inset:auto;width:100%;aspect-ratio:3/2;mask-image:linear-gradient(#000 75%,transparent);-webkit-mask-image:linear-gradient(#000 75%,transparent);opacity:1;z-index:0;margin-bottom:-25px}.hero-village img{object-position:center}.hero-inner{padding-block:8px 65px}.hero-copy{max-width:none}.hero-copy:before{display:none}.hero:after{display:none}.eyebrow{font-size:10px;letter-spacing:.12em}h1{font-size:clamp(40px,9.4vw,61px);line-height:1.17;margin:20px 0 24px}.hero-intro{font-size:18px;line-height:1.8}.desktop-break{display:none}.hero-purpose{font-size:14px}.collection-date{font-size:14px;margin-top:23px}.hero-actions{gap:21px;margin-top:23px}.button{font-size:14px;padding:12px 17px;gap:17px}.text-link{font-size:13px}.text-link span{margin-left:5px}.opening{display:flex;flex-direction:column;gap:34px;padding-block:30px 55px}.opening h2{margin-bottom:25px}h2{font-size:37px;line-height:1.25}.chapter{font-size:14px;margin-bottom:16px}.lead{font-size:19px}.prose p+p{margin-top:21px}.handwritten{font-size:26px}.painted-page{width:100%}.painted-page img{border-width:7px}.opening .painted-page{margin-top:7px}figcaption{font-size:13px;max-width:95%;margin-inline:auto}.film-section{padding-block:25px 65px}.film-heading h2{font-size:32px}.film-frame{padding:5px;margin-top:28px}.film-frame figcaption{font-size:12px}.memories{padding-block:20px 55px}.memories h2{font-size:35px}.memories .body-copy{font-size:15px}.memories .lead{margin-top:23px}.corridor-scroll{margin:28px -22px 0}.corridor-scene{min-width:720px}.gallery-hint{font-size:12px;max-width:90%}.gallery-hint span{display:inline}.gratitude{margin-top:30px;font-size:16px}.gratitude p:nth-child(2){font-size:14px}.gratitude .handwritten{font-size:22px}.gift-chapter{grid-template-columns:1fr;gap:35px;padding-block:25px 45px}.gift-illustration h2{font-size:37px}.gift-illustration .painted-page{margin-top:25px}.gift-note{font-size:16px;margin-top:26px}.gift-note span{font-size:12px}.faq-list{padding-top:0}.faq-list summary{font-size:19px}.faq-list details{padding-bottom:21px;margin-bottom:21px}.faq-list p{font-size:16px}.invitation{padding-block:50px 55px}.invitation h2{font-size:33px}.invitation-letter{font-size:17px;margin-top:24px}.invitation>.handwritten{font-size:22px}.contact-main{font-size:31px}.contact-email{font-size:19px}.contact-links p{font-size:13px;max-width:290px}.social-links{font-size:14px}.share-link{font-size:14px}.closing-wish{font-size:18px}footer{padding-inline:0}footer p{font-size:12px}#photo-dialog{padding:12px}#photo-full{max-height:72dvh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Text and illustration share the same paper, like an open storybook. */
.story-spread{position:relative;isolation:isolate;gap:65px;grid-template-columns:1fr 1.12fr;padding-block:90px 85px}.story-spread .opening-copy{max-width:540px}.story-spread .painted-page{width:calc(100% + 55px);max-width:none;transform:none;margin-right:-55px}.story-spread .painted-page img{border:0;outline:0;box-shadow:none;mask-image:radial-gradient(ellipse at 50% 48%,#000 50%,#000b 66%,transparent 77%);-webkit-mask-image:radial-gradient(ellipse at 50% 48%,#000 50%,#000b 66%,transparent 77%)}.story-spread .painted-page figcaption{font-size:13px;max-width:80%;margin-top:-9px}.letter-spread{gap:72px;grid-template-columns:1fr 1fr;padding-block:70px 95px;align-items:center}.letter-spread .gift-illustration h2{font-size:clamp(36px,3.7vw,52px)}.letter-spread .painted-page{transform:none;width:calc(100% + 55px);max-width:none;margin-left:-35px;margin-top:25px}.letter-spread .painted-page img{border:0;outline:0;box-shadow:none;mask-image:radial-gradient(ellipse at 50% 48%,#000 51%,#000b 65%,transparent 77%);-webkit-mask-image:radial-gradient(ellipse at 50% 48%,#000 51%,#000b 65%,transparent 77%)}.letter-spread .painted-page figcaption{margin-top:-8px;font-size:13px}.illustration-whisper{font-size:22px;font-style:italic;color:var(--ochre);text-align:center;line-height:1.8;margin:26px auto 0}.donor-letter{position:relative;padding:16px 0 20px 24px}.letter-date{font-size:12px;color:#8b8067;font-style:italic;line-height:1.8;margin-bottom:25px}.donor-letter h3{font-family:var(--serif);font-size:29px;font-weight:400;font-style:italic;color:var(--red);line-height:1.4;margin:0 0 25px}.donor-letter>p:not(.letter-date){font-size:17px;line-height:1.95;color:var(--muted);margin-top:22px}.donor-letter strong{font-weight:500;color:var(--ink)}.donor-letter .letter-signoff{font-style:italic;color:var(--red)!important;font-size:22px!important}.letter-reply{display:inline-block;margin-top:25px;font-size:16px;border-bottom:1px solid #a27c4366;color:var(--red);padding-bottom:4px}.letter-reply span{margin-left:17px}.invitation{padding-top:58px;padding-bottom:65px}.invitation:before{display:none}.invitation h2{font-size:clamp(42px,4.6vw,64px)}.contact-links{margin-top:30px}.invitation .ornament{margin-bottom:25px}
@media(max-width:1050px){.story-spread{gap:30px}.story-spread .painted-page{width:calc(100% + 20px);margin-right:-20px}.letter-spread{gap:40px}.donor-letter{padding-left:0}.donor-letter>p:not(.letter-date){font-size:16px}}
@media(max-width:760px){.story-spread{padding-block:30px 45px;gap:20px;overflow:visible}.story-spread .opening-copy{max-width:none}.story-spread .painted-page{width:calc(100% + 22px);margin:0 -11px;max-width:none}.story-spread .painted-page figcaption{margin-top:-8px}.letter-spread{gap:33px;padding-block:25px 40px}.letter-spread .gift-illustration h2{font-size:37px}.letter-spread .painted-page{width:calc(100% + 22px);margin-left:-11px;max-width:none}.illustration-whisper{font-size:21px;margin-top:19px}.donor-letter{padding:12px 0 0}.donor-letter h3{font-size:27px;margin-bottom:22px}.donor-letter>p:not(.letter-date){font-size:16px;line-height:1.95;margin-top:21px}.letter-date{margin-bottom:18px;font-size:12px}.donor-letter .letter-signoff{font-size:21px!important}.invitation{padding-block:40px 50px}.invitation h2{font-size:43px}.closing-wish{font-size:17px}}
@media(max-width:760px){.letter-spread{grid-template-columns:minmax(0,1fr);align-items:start}.story-spread{display:flex;flex-direction:column}.donor-letter{min-width:0}.letter-spread .gift-illustration{min-width:0}}
@media(min-width:1051px){.story-spread .painted-page{width:calc(100% + 35px);margin-right:-35px}}
