:root{--cream:#FBF6EF;--paper:#F4EBDD;--rose:#D98C8C;--rose-d:#B5626A;--mustard:#D9A441;--sage:#9DB49A;--teal:#5E9C9A;--terra:#C8734B;--ink:#3E3330;--soft:#75655F;--r:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:400 17px/1.7 Nunito,system-ui,sans-serif;overflow-x:hidden}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.15;margin:0 0 .4em}
h1{font-size:clamp(2.5rem,5.4vw,4.4rem)}h2{font-size:clamp(2rem,4vw,3rem)}
h1 em{font-style:italic;color:var(--rose-d)}
a{color:inherit}img{max-width:100%}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
section{position:relative;padding:100px 0}section.tight{padding:20px 0 90px}
.center{text-align:center}.small{font-size:.85rem;color:var(--soft)}
.lead{font-size:1.14rem;color:var(--soft);max-width:42em}.center .lead,.lead.center{margin-left:auto;margin-right:auto}
.kicker{font-family:Caveat,cursive;font-size:1.75rem;color:var(--terra);display:block;margin-bottom:.15em;line-height:1.2}
.hand{font-family:Caveat,cursive;color:var(--rose-d)}.hand.big{font-size:1.9rem;margin:.2em 0}
.btn{display:inline-flex;align-items:center;gap:.5em;padding:.85em 1.6em;border-radius:999px;font-weight:700;text-decoration:none;transition:transform .25s,box-shadow .25s,background .25s;border:2px solid transparent}
.btn.sm{padding:.55em 1.2em;font-size:.92rem}
.btn.primary{background:var(--rose-d);color:#fff;box-shadow:0 8px 24px -10px var(--rose-d)}
.btn.ghost{border:2px dashed var(--rose-d);color:var(--rose-d)}
.btn.sage{background:var(--sage);color:#fff;box-shadow:0 8px 24px -10px #6f8a6c}
.hero-ctas{display:grid;grid-template-columns:auto auto;justify-content:start;align-items:start}.hero-ctas .btn{justify-content:center}.hero-ctas .btn.sage{grid-column:1}
.hello-links{display:flex;flex-wrap:wrap;gap:8px 22px;margin:1.4em 0 0}
.hello-links a{display:inline-flex;align-items:center;gap:.45em;color:var(--rose-d);font-weight:700;text-decoration:none;border-bottom:2px dashed transparent;transition:border-color .25s}
.hello-links a:hover{border-bottom-color:var(--rose)}
.hello-links svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.hello-links svg .dot{fill:currentColor;stroke:none}
@media(max-width:560px){.hero-ctas{grid-template-columns:1fr}.hero-ctas .btn.sage{order:1}.hero-ctas .btn.ghost{order:2}}
.btn:hover{transform:translateY(-3px) rotate(-1deg)}
.ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:1.2em}.ctas.center{justify-content:center}
/* nav */
nav{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s,box-shadow .3s}
nav.solid{background:rgba(251,246,239,.94);backdrop-filter:blur(8px);box-shadow:0 2px 20px -12px #0003}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:74px}
.logo{font-family:Fraunces,serif;font-size:1.3rem;text-decoration:none;display:flex;align-items:center;gap:.45em;white-space:nowrap}
.logo b,.f-logo b{font-family:Caveat,cursive;font-size:1.65rem;color:var(--rose-d);font-weight:700}
.rose{display:inline-block;animation:sway 4s ease-in-out infinite alternate}@keyframes sway{to{transform:rotate(14deg)}}
.menu{display:flex;gap:1.3em;align-items:center;font-weight:600;font-size:.95rem}
.menu>a:not(.btn){text-decoration:none;position:relative}
.menu>a:not(.btn)::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;border-bottom:2px dashed var(--rose);transition:right .3s}
.menu>a:not(.btn):hover::after,.menu>a[aria-current]::after{right:0}
.lang{display:flex;border:1.5px solid var(--rose);border-radius:999px;overflow:hidden;background:#fffc}
.lang a{font:700 .78rem Nunito;padding:.35em .7em;color:var(--rose-d);text-decoration:none}
.lang a.on{background:var(--rose);color:#fff}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px}.burger i{display:block;width:24px;height:2.5px;background:var(--rose-d);margin:5px 0;border-radius:2px;transition:.3s}
@media(max-width:960px){.burger{display:block}.menu{position:fixed;inset:74px 0 auto;background:var(--cream);flex-direction:column;padding:24px;gap:1em;box-shadow:0 20px 30px -20px #0004;transform:translateY(-130%);transition:transform .4s;z-index:-1}
body.menu-open .menu{transform:none}body.menu-open .burger i:nth-child(1){transform:translateY(7.5px) rotate(45deg)}body.menu-open .burger i:nth-child(2){opacity:0}body.menu-open .burger i:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}nav{background:rgba(251,246,239,.94)}}
/* hero */
#hero{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;overflow:hidden;position:relative}
.hero-text{padding:120px 5vw 60px 6vw;position:relative;z-index:2}.ht{position:relative}
.stitch{display:block;width:240px;height:18px;margin:.2em 0 1em}
.stitch path{stroke:var(--mustard);stroke-width:3;fill:none;stroke-dasharray:9 7;stroke-linecap:round;animation:sew 3s ease forwards}
@keyframes sew{from{stroke-dashoffset:300}to{stroke-dashoffset:0}}
.slides{position:relative;height:100vh;overflow:hidden}
.slides .sl{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.12);transition:opacity 1.6s ease,transform 7s ease}
.slides .sl.on{opacity:1;transform:scale(1)}
.slides .frame{overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--paper)}
.slides .frame .bg{position:absolute;inset:-40px;width:calc(100% + 80px);height:calc(100% + 80px);object-fit:cover;filter:blur(28px) saturate(1.1);opacity:.55}
.slides .frame .fg{position:relative;max-height:64%;max-width:72%;width:auto;height:auto;border:12px solid #fff;border-radius:6px;box-shadow:0 26px 60px -24px #0009;rotate:-2deg;margin-left:14%}
.slides::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--cream) 0,transparent 26%);pointer-events:none}
.badge{position:absolute;z-index:2;bottom:8%;left:-40px;background:#fff;border-radius:50%;width:150px;height:150px;display:grid;place-items:center;text-align:center;font-family:Caveat;font-size:1.35rem;line-height:1.05;color:var(--rose-d);box-shadow:0 14px 40px -18px #0006;animation:spin 18s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:900px){#hero{grid-template-columns:1fr;min-height:auto}.slides{height:62vh;order:-1}.slides::before{background:linear-gradient(0deg,var(--cream) 0,transparent 30%)}.hero-text{padding:10px 24px 60px}.slides .frame .fg{margin-left:0;max-height:72%}.badge{left:auto;right:18px;bottom:-30px;width:118px;height:118px;font-size:1.1rem}}
.blob{position:absolute;border-radius:50%;filter:blur(55px);opacity:.33;animation:float 14s ease-in-out infinite alternate;pointer-events:none}
.b1{width:320px;height:320px;background:var(--rose);top:8%;left:-90px}.b2{width:260px;height:260px;background:var(--mustard);bottom:4%;left:40%;animation-delay:-5s}
@keyframes float{to{transform:translate(40px,-30px) scale(1.15)}}
/* marquee */
.marquee{overflow:hidden;padding:26px 0;background:var(--paper);border-block:2px dashed #e5d6c2}
.track{display:flex;gap:18px;width:max-content;animation:scroll 70s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.track img{height:170px;width:170px;object-fit:cover;border-radius:50%;border:6px solid #fff;box-shadow:0 8px 20px -12px #0005;transition:transform .3s}
.track img:hover{transform:scale(1.08) rotate(-3deg)}
@keyframes scroll{to{transform:translateX(-50%)}}
/* name cards */
.names-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:22px;margin-top:40px}
.card{perspective:1000px;height:310px;cursor:pointer;outline:none}
.card .in{position:relative;height:100%;transition:transform .8s cubic-bezier(.3,1.4,.5,1);transform-style:preserve-3d}
.card:hover .in,.card.flip .in,.card:focus .in{transform:rotateY(180deg)}
.card .f,.card .b{position:absolute;inset:0;border-radius:var(--r);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}
.card .f img{width:100%;height:100%;object-fit:cover}
.card .f span{position:absolute;bottom:10px;left:12px;right:12px;background:#fffe;border-radius:999px;padding:.05em .8em;font-family:Caveat;font-size:1.5rem;color:var(--rose-d);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:fit-content;max-width:calc(100% - 24px)}
.card .b{transform:rotateY(180deg);background:var(--paper);display:flex;flex-direction:column;justify-content:center;padding:24px;text-align:center;border:2px dashed var(--rose)}
.card .b h3{font-family:Caveat;font-size:2.3rem;color:var(--rose-d);margin:0}
.card .b p{margin:.2em 0;color:var(--soft)}
/* nina */
#nina{background:linear-gradient(180deg,var(--cream),#F7E6E1)}
.nina{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.polaroids{position:relative;height:480px}
.polaroids figure{position:absolute;margin:0;background:#fff;padding:12px 12px 46px;box-shadow:0 18px 40px -20px #0007;width:56%;transition:transform .5s}
.polaroids figure img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.polaroids figcaption{position:absolute;bottom:8px;left:0;right:0;text-align:center;font-family:Caveat;font-size:1.35rem}
.polaroids figure:nth-child(1){left:0;top:30px;transform:rotate(-7deg)}
.polaroids figure:nth-child(2){right:0;top:0;transform:rotate(5deg)}
.polaroids figure:nth-child(3){left:22%;bottom:0;transform:rotate(-2deg)}
.polaroids figure:hover{transform:rotate(0) scale(1.06);z-index:5}
@media(max-width:900px){.nina{grid-template-columns:1fr}.polaroids{height:400px}}
/* journey */
#journey{background:var(--paper)}
.map{position:relative;margin-top:50px}
.map svg{width:100%;height:auto;overflow:visible}
.map path{fill:none;stroke:var(--rose-d);stroke-width:3;stroke-dasharray:10 8}
.stops{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin:-20px 0 40px}
.stop{background:#fff;border-radius:18px;padding:18px;box-shadow:0 10px 30px -22px #0006;text-align:center}
.stop .flag{font-size:2rem}.stop h3{font-size:1.1rem;margin:.3em 0}.stop p{font-size:.9rem;color:var(--soft);margin:0;line-height:1.55}
@media(max-width:900px){.stops{grid-template-columns:1fr 1fr}.map svg{display:none}}
/* gallery */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0 10px}
.filters button{border:2px solid var(--rose);background:#fff;color:var(--rose-d);border-radius:999px;padding:.45em 1.1em;font:700 .95rem Nunito;cursor:pointer;transition:.25s}
.filters button small{opacity:.7;font-weight:600}
.filters button.on,.filters button:hover{background:var(--rose);color:#fff}
.masonry{columns:4 250px;column-gap:16px;margin-top:30px}
.masonry figure{break-inside:avoid;margin:0 0 16px;border-radius:18px;overflow:hidden;position:relative;background:var(--paper)}
.masonry figure.hide{display:none}
.masonry a{display:block;cursor:zoom-in}
.masonry img{width:100%;height:auto;display:block;transition:transform .8s}
.masonry figure:hover img{transform:scale(1.07)}
.masonry figcaption{position:absolute;inset:auto 0 0;padding:34px 14px 10px;background:linear-gradient(transparent,#0009);color:#fff;font-family:Caveat;font-size:1.4rem;opacity:0;transform:translateY(10px);transition:.35s;pointer-events:none}
.masonry figure:hover figcaption{opacity:1;transform:none}
@media(hover:none){.masonry figcaption{opacity:1;transform:none;font-size:1.2rem}}
.masonry.paint{columns:3 300px}.masonry.paint figure{border:10px solid #fff;box-shadow:0 18px 40px -26px #0008;border-radius:4px}
/* materials */
#materials{background:var(--paper)}
.mats{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:40px}
.mat{text-align:center}.mat .ring{width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;border:6px solid #fff;box-shadow:0 12px 30px -18px #0007;margin-bottom:12px}
.mat img{width:100%;height:100%;object-fit:cover;transition:transform 1s}.mat:hover img{transform:scale(1.15) rotate(4deg)}
.mat h3{font-size:1.05rem;margin:0}.mat p{font-size:.88rem;color:var(--soft);margin:.2em 0 0}
@media(max-width:900px){.mats{grid-template-columns:repeat(2,1fr)}}
/* villages */
#villages,.page-head.green{background:#EAF1EC}#villages{overflow:hidden}
.vill{display:grid;grid-template-columns:1fr 1.25fr;gap:50px;align-items:center}
.paint-stack{position:relative;height:520px}
.paint-stack img{position:absolute;width:60%;border:10px solid #fff;box-shadow:0 20px 50px -25px #0008;aspect-ratio:1;object-fit:cover}
.paint-stack img:nth-child(1){left:0;top:40px;rotate:-4deg}.paint-stack img:nth-child(2){right:0;top:0;rotate:3deg}.paint-stack img:nth-child(3){left:20%;bottom:0;rotate:-1deg}
@media(max-width:900px){.vill{grid-template-columns:1fr}.paint-stack{height:380px}}
/* reviews */
.stats{display:flex;gap:44px;justify-content:center;flex-wrap:wrap;margin:10px 0 40px}
.stats b{display:block;font-family:Fraunces;font-size:3rem;color:var(--rose-d);line-height:1.1}
.quotes{position:relative;height:150px;max-width:760px;margin:0 auto}
.quotes blockquote{position:absolute;inset:0;margin:0;font-family:Fraunces;font-style:italic;font-size:clamp(1.4rem,2.6vw,2rem);opacity:0;transform:translateY(20px);transition:.8s}
.quotes blockquote.on{opacity:1;transform:none}
.quotes cite{display:block;font:600 .95rem Nunito;color:var(--soft);margin-top:.6em;font-style:normal}
/* cta */
#adopt{background:var(--rose-d);color:#fff;text-align:center;overflow:hidden}
#adopt h2{color:#fff}#adopt .kicker{color:#FFE3A8}#adopt .lead{color:#fff;opacity:.92;margin:0 auto 10px}
#adopt .btn.primary{background:#fff;color:var(--rose-d)}#adopt .btn.ghost{border-color:#fff;color:#fff}
#adopt .wrap{position:relative;z-index:2}
.floaters img{position:absolute;width:120px;height:120px;border-radius:50%;object-fit:cover;border:5px solid #fff3;animation:bob 6s ease-in-out infinite alternate;opacity:.85}
@keyframes bob{to{transform:translateY(-24px) rotate(6deg)}}
@media(max-width:700px){.floaters img{width:70px;height:70px;opacity:.5}}
/* page heads */
.page-head{padding:150px 0 30px;background:linear-gradient(180deg,#F7E6E1,var(--cream))}
/* story */
.chapter{display:grid;grid-template-columns:1.2fr 1fr;gap:56px;align-items:center;padding:60px 0;border-bottom:2px dashed #eadbc8}
.chapter.alt .ch-text{order:2}
.chapter .num{font-family:Caveat;font-size:3rem;color:var(--rose)}
.chapter p{color:#54463f}
.ch-pics{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ch-pics img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:18px;box-shadow:0 18px 40px -24px #0008}
.ch-pics img:nth-child(2){margin-top:50px}
.ch-pics img.one{grid-column:1/-1;aspect-ratio:auto;object-fit:contain;border:10px solid #fff;border-radius:6px}
@media(max-width:900px){.chapter{grid-template-columns:1fr;gap:24px}.chapter.alt .ch-text{order:0}}
footer{padding:56px 0 40px;text-align:center;background:var(--paper)}
.f-logo{font-family:Fraunces;font-size:1.4rem}.f-links a{color:var(--rose-d);font-weight:700}
/* reveal */
.rv{opacity:0;transform:translateY(36px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}
/* lightbox */
#lb{position:fixed;inset:0;background:#2a201eee;z-index:100;display:none;place-items:center}
#lb.on{display:grid;animation:fade .3s}
#lb figure{margin:0;text-align:center}
#lb img{max-width:88vw;max-height:84vh;border-radius:14px;box-shadow:0 30px 80px #000a;animation:pop .35s}
#lb figcaption{color:#fff;font-family:Caveat;font-size:1.8rem;margin-top:.3em}
#lb button{position:absolute;background:#fff2;color:#fff;border:0;width:54px;height:54px;border-radius:50%;font-size:2rem;cursor:pointer;line-height:1}
#lb button:hover{background:#fff4}.lb-x{top:18px;right:18px}.lb-p{left:18px;top:50%}.lb-n{right:18px;top:50%}
@keyframes fade{from{opacity:0}}@keyframes pop{from{transform:scale(.92);opacity:0}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}
