:root{--bg:#FDF4EC;--ink:#4A1D14;--muted:#7D5A50;--crimson:#A8173A;--rose:#F7DCDD;--line:#EBD5CC;--card:#FFFBF7;
--serif:"Playfair Display",Georgia,serif;--round:"Arial Rounded MT Bold","Arial Rounded MT","Varela Round",Arial,sans-serif;--script:"Great Vibes","Brush Script MT",cursive;--sans:"Jost",system-ui,sans-serif;
color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.65 var(--sans);overflow-x:hidden}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.15;margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--crimson);outline-offset:3px}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
section{padding:90px 0}
i{font-style:normal;display:inline-flex}
[data-ic] svg{width:100%;height:100%;fill:none;stroke:var(--crimson);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;background:var(--crimson);color:#fff;font:500 16px var(--sans);padding:14px 28px;border-radius:999px;text-decoration:none;transition:background .25s,transform .25s}
.btn:hover{background:#8C122F;transform:translateY(-2px)}
.btn.ghost{background:transparent;color:var(--crimson);border:1.5px solid var(--crimson)}
.btn.ghost:hover{background:var(--crimson);color:#fff}

header{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font:400 23px var(--round);color:#2E1410}
.mark{width:36px;height:36px}
nav{display:flex;align-items:center;gap:4px}
nav a{text-decoration:none;font-weight:500;padding:8px 16px;border-radius:999px;transition:color .2s}
nav a:not(.btn):hover,nav a.on{color:var(--crimson)}
nav .btn{padding:10px 22px;font-size:15px;margin-left:8px;color:#fff}
.burger{display:none;background:var(--crimson);color:#fff;border:0;border-radius:999px;padding:9px 18px;font:500 15px var(--sans);cursor:pointer}
@media(max-width:760px){.burger{display:block}nav{position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--bg);border-bottom:1px solid var(--line);padding:10px 24px 18px;display:none}nav.open{display:flex}nav .btn{margin:8px 0 0}}

.hero{background:radial-gradient(120% 100% at 15% 0%,#FFFAF4,#FBEBDF 60%,#F9E2DB);padding:0;overflow:hidden}
.hero .wrap{max-width:1400px;display:grid;grid-template-columns:.8fr 1.2fr;align-items:end}
.copy{text-align:center;padding:50px 20px 46px;align-self:center}
.wm{font:400 clamp(36px,4.6vw,56px)/1 var(--round);color:#2E1410}
.rule{display:flex;align-items:center;gap:12px;max-width:340px;margin:12px auto 28px}
.rule span{flex:1;height:1px;background:var(--crimson);opacity:.55}
.rule i{width:26px;height:26px}
h1{font-size:clamp(32px,3.9vw,54px);color:#5C2418}
h1 em{display:block;font:400 clamp(76px,9vw,130px)/.95 var(--script);color:var(--crimson);margin-top:4px}
.sub{font-size:19px;max-width:30ch;margin:14px auto 0}
.feats{display:grid;grid-template-columns:repeat(3,1fr);margin:30px 0 28px}
.feat{display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 10px;font-size:15px;line-height:1.35;border-left:1px solid var(--line)}
.feat:first-child{border-left:0}
.feat i{width:42px;height:42px}
.cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.shot img{display:block;width:100%;height:auto;-webkit-mask-image:linear-gradient(to right,transparent,#000 22%);mask-image:linear-gradient(to right,transparent,#000 22%)}
@media(max-width:980px){.hero .wrap{grid-template-columns:1fr}.copy{padding-bottom:20px}.shot img{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 18%);mask-image:linear-gradient(to bottom,transparent,#000 18%)}}

.strip{background:var(--rose);border-block:1px solid #efc6cb}
.strip .wrap{display:flex;padding:0;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}.strip .wrap::-webkit-scrollbar{display:none}
.sb:first-child{border-left:0!important}.sb{flex:1 0 118px;scroll-snap-align:start;background:none;border:0;border-left:1px solid #e8bcc2;padding:20px 6px 16px;cursor:pointer;color:var(--ink);font:500 15px/1.3 var(--sans);display:flex;flex-direction:column;align-items:center;gap:8px;transition:background .25s}
.sb:hover{background:#f3c9ce}
.sb i{width:34px;height:34px}
.bar .wrap{display:flex;align-items:center;justify-content:center;padding-block:20px}
.bi{display:flex;align-items:center;gap:12px;font-size:19px;text-decoration:none}
.bi i{width:30px;height:30px}
.tag{font:400 36px/1 var(--script);color:var(--crimson)}

.head{margin-bottom:34px}
h2{font-size:clamp(32px,4.4vw,50px);color:#5C2418}
.lead{color:var(--muted);max-width:50ch;margin:12px 0 0}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.chip{border:1.5px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:8px 18px;font:500 15px var(--sans);cursor:pointer;transition:all .25s}
.chip:hover{border-color:var(--crimson)}
.chip[aria-pressed="true"]{background:var(--crimson);border-color:var(--crimson);color:#fff}
.grid{display:flex;flex-wrap:wrap;justify-content:center;gap:26px}
.card{flex:0 0 calc((100% - 78px)/4);background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden;display:flex;flex-direction:column;position:relative;transition:transform .3s,box-shadow .3s;animation:fade .4s both}
.card:hover{transform:translateY(-5px);box-shadow:0 24px 40px -26px rgba(92,36,24,.5)}
.art{aspect-ratio:4/3;overflow:hidden;position:relative;cursor:pointer;background:var(--rose)}
.art img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.card:hover .art img{transform:scale(1.04)}
.heart{position:absolute;top:14px;right:14px;width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.9);cursor:pointer;font-size:17px;color:#b9a09a;z-index:2;transition:color .25s}
.heart[aria-pressed="true"]{color:var(--crimson)}
.cbody{padding:18px 20px 20px;display:flex;flex-direction:column;gap:4px;flex:1}
.tagc{font-size:13px;color:var(--crimson);font-weight:500}
.card h3{font-size:22px}.card p{margin:0;color:var(--muted);font-size:15px;flex:1}
.row{margin-top:14px}
.mini{border:1.5px solid var(--crimson);background:transparent;color:var(--crimson);border-radius:999px;font:500 14px var(--sans);padding:8px 18px;cursor:pointer;transition:all .25s}
.mini:hover{background:var(--crimson);color:#fff}
dialog{border:0;border-radius:26px;padding:0;overflow:auto;max-height:calc(100dvh - 32px);max-width:780px;width:calc(100% - 32px);background:var(--card);color:var(--ink);box-shadow:0 40px 90px -30px rgba(0,0,0,.5)}
dialog::backdrop{background:rgba(40,15,12,.5)}
.qv{display:grid;grid-template-columns:1fr 1fr}
.qv .art{aspect-ratio:auto;height:100%;min-height:320px;cursor:default}
.qv .txt{padding:40px 32px;display:flex;flex-direction:column;gap:12px;justify-content:center;align-items:flex-start}
.qv h3{font-size:30px}.qv p{margin:0;color:var(--muted)}
.x{position:absolute;top:12px;right:12px;width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:var(--ink);font-size:18px;cursor:pointer;z-index:3}
@media(max-width:640px){.qv{grid-template-columns:1fr}.qv .art{min-height:220px}}

.two{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
@media(max-width:820px){.two{grid-template-columns:1fr;gap:36px}}
.two p{color:var(--muted);margin:0 0 14px}
.ac{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.ac p{margin:0 0 6px}.ac a{color:var(--crimson);font-weight:500}
.occ{display:flex;flex-wrap:wrap;gap:12px}
.oc{border:1.5px solid var(--line);background:var(--card);border-radius:999px;padding:11px 20px;font:500 16px var(--sans);color:var(--ink);cursor:pointer;display:flex;gap:8px;align-items:center;transition:background .25s,border-color .25s}
.oc:hover{background:var(--rose);border-color:var(--crimson)}
#occasions{background:#FBEBE3}
#about{background:var(--bg)}
.values{display:grid;gap:14px}
.val{display:flex;gap:18px;align-items:center;padding:20px;background:var(--card);border:1px solid var(--line);border-radius:20px}
.val span{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:26px;flex:none;background:var(--rose)}
.val h3{font-size:20px}.val p{margin:2px 0 0;font-size:15px}

#contact{background:linear-gradient(180deg,#FBE3E3,#F7D3D6)}
#contact .lead,#contact p{color:var(--muted)}
.info p{margin:0 0 8px}.info a{color:var(--crimson);font-weight:500}
form,.ok{background:var(--card);padding:30px;border-radius:24px;display:grid;gap:16px;border:1px solid var(--line)}
label{font-weight:500;font-size:15px;display:grid;gap:6px}
input,textarea{font:inherit;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:13px 15px;width:100%;transition:border-color .25s,box-shadow .25s}
input:focus,textarea:focus{outline:none;border-color:var(--crimson);box-shadow:0 0 0 4px rgba(168,23,58,.15)}
.err{border-color:#d12c4f!important}
.ok{display:none;text-align:center;padding:50px 30px}
.ok.show{display:block}
.ok h3{font-size:28px;margin:8px 0}.ok p{margin:0}
footer{background:#F7D3D6;color:var(--muted);text-align:center;padding:0 0 32px;font-size:15px}
footer .tag{display:block;margin-bottom:6px}

.rv{opacity:0;transform:translateY(16px);transition:opacity .6s,transform .6s}
.rv.in{opacity:1;transform:none}
@keyframes fade{from{opacity:0;transform:translateY(10px)}}
/* About section animations */
#about h2{position:relative;display:inline-block}
#about h2::after{content:"";position:absolute;left:0;bottom:-8px;height:3px;width:100%;background:var(--crimson);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .9s .45s ease}
#about h2.in::after{transform:scaleX(1)}
#about .rv{transition:none;transform:none}
#about .rv.in{opacity:1;transform:none}
#about .two>div:first-child .rv.in{animation:inL .8s cubic-bezier(.2,.8,.2,1) calc(var(--i,0)*.13s) backwards}
#about .two>div:last-child .rv.in{animation:inR .8s cubic-bezier(.2,.8,.2,1) calc(var(--i,0)*.13s) backwards}
#about .rv:nth-child(2){--i:1}#about .rv:nth-child(3){--i:2}#about .rv:nth-child(4){--i:3}
#about .val:nth-child(1){--i:1}#about .val:nth-child(2){--i:2}#about .val:nth-child(3){--i:3}#about .val:nth-child(4){--i:4}
#about .val.in span{animation:iconpop .7s cubic-bezier(.3,1.7,.5,1) calc(var(--i,0)*.13s + .3s) backwards}
#about .val{transition:transform .3s,box-shadow .3s,border-color .3s}
#about .val:hover{transform:translateY(-4px);box-shadow:0 18px 30px -22px rgba(92,36,24,.5);border-color:var(--crimson)}
#about .val span{transition:transform .35s cubic-bezier(.3,1.7,.5,1)}
#about .val:hover span{transform:scale(1.12) rotate(-8deg)}
@keyframes inL{from{opacity:0;transform:translateX(-40px)}}
@keyframes inR{from{opacity:0;transform:translateX(40px)}}
@keyframes iconpop{from{transform:scale(0) rotate(-45deg)}}
/* Layout fixes: tablet and mobile */
@media(max-width:1100px){.card{flex-basis:calc((100% - 52px)/3)}}
@media(max-width:760px){.card{flex-basis:calc((100% - 26px)/2)}nav a:not(.btn){padding:12px 8px}}
@media(max-width:600px){
section{padding:60px 0}
.wrap{padding:0 18px}
.copy{padding:34px 4px 22px}
.shot{margin:0 -18px}
.feat{font-size:13px;padding:0 6px}.feat i{width:34px;height:34px}
.tag{font-size:30px;text-align:center;text-wrap:balance}
h1 em{margin-top:10px}
.bar .wrap{padding-block:14px}
h2{font-size:30px}
.filters{flex-wrap:nowrap;overflow-x:auto;margin-inline:-18px;padding:2px 18px 8px;scrollbar-width:none}
.filters::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;padding:12px 16px;font-size:14px}
.grid{gap:14px}.card{flex-basis:calc((100% - 14px)/2);border-radius:18px}
.cbody{padding:12px 12px 14px}.card h3{font-size:17px}.card p{font-size:13px}.tagc{font-size:12px}
.mini{padding:9px 14px;font-size:13px}
.heart{top:8px;right:8px;width:40px;height:40px}
.two{gap:30px}
form,.ok{padding:22px}
.val{padding:16px}
}
@media(hover:none){.card:hover{transform:none;box-shadow:none}.card:hover .art img{transform:none}}
/* Photo gallery, photo count, form buttons */
.art{position:relative}
.pics{position:absolute;left:10px;bottom:10px;background:rgba(255,255,255,.92);color:var(--ink);font:500 12px var(--sans);padding:4px 10px;border-radius:999px;pointer-events:none}
.gal{display:flex;flex-direction:column;background:var(--rose);min-width:0}
.gal .main{position:relative;flex:1;min-height:300px}
.gal .main img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gnav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--ink);font-size:26px;line-height:1;cursor:pointer;z-index:2}
.gprev{left:10px}.gnext{right:10px}
.thumbs{display:flex;gap:8px;padding:10px;overflow-x:auto}
.thumbs button{flex:0 0 72px;height:54px;border:2px solid transparent;border-radius:10px;overflow:hidden;padding:0;cursor:pointer;opacity:.7;background:none}
.thumbs button[aria-current="true"]{border-color:var(--crimson);opacity:1}
.thumbs img{width:100%;height:100%;object-fit:cover;display:block}
.fbtn{display:flex;gap:10px;flex-wrap:wrap}.fbtn .btn{flex:1 1 150px}
@media(max-width:640px){.gal .main{min-height:240px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}html{scroll-behavior:auto}}
