
:root{
  --bg:#f7f4f2; --ink:#2b1f1a; --rose:#dcb5b7; --mauve:#b79aa6; --gold:#c9b38d;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Didot','Bodoni MT','Playfair Display','Garamond',Georgia,serif;color:var(--ink);background:var(--bg);line-height:1.7}

/* Decorative background with embellishments */
.bg-detail{position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:.18;
  background:
    radial-gradient(80% 60% at 20% 10%, var(--rose) 0%, transparent 60%),
    radial-gradient(60% 50% at 80% 20%, var(--mauve) 0%, transparent 60%),
    radial-gradient(90% 60% at 50% 90%, var(--gold) 0%, transparent 70%),
    url('https://www.transparenttextures.com/patterns/damask.png');
  background-size:cover;
  filter: blur(35px) brightness(1.05);
}

/* Hero */
.hero{min-height:52vh;display:grid;place-items:center;background-size:cover;background-position:center;position:relative;isolation:isolate;border-bottom:2px solid rgba(0,0,0,.06)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(247,244,242,.85));z-index:-1}
.brand{text-align:center;padding:5rem 1rem 3rem}
.brand h1{font-size:clamp(2.8rem,6vw,5rem);letter-spacing:.06em;font-weight:500;margin:0 0 .3rem}
.tagline{font-size:1.1rem;letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.slogan{font-family:'Great Vibes',cursive;font-size:2rem;color:var(--ink);margin-top:.6rem}

/* Layout */
main{max-width:1100px;margin:0 auto;padding:1.4rem}
.section-title{font-size:clamp(1.8rem,3.2vw,2.6rem);margin:2rem 0 1rem;letter-spacing:.03em;border-left:6px solid var(--gold);padding-left:.6rem}
.about,.contact{background:rgba(255,255,255,.9);border:1px solid rgba(0,0,0,.06);border-radius:18px;padding:1.4rem 1.5rem;box-shadow:0 10px 30px rgba(0,0,0,.06);font-size:1.15em}

/* Carousel 5x7 single image */
.gallery{margin-top:1.6rem}
.carousel{display:flex;align-items:center;justify-content:center;gap:.7rem}
.carousel .nav{background:#fff;border:1px solid rgba(0,0,0,.12);box-shadow:0 4px 16px rgba(0,0,0,.08);color:var(--ink);padding:.5rem .8rem;border-radius:999px;cursor:pointer;font-size:1.6rem;line-height:1}
.viewport{width:5in;height:7in;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:16px;display:grid;place-items:center;overflow:hidden;box-shadow:0 16px 40px rgba(0,0,0,.12)}
.viewport img{max-width:100%;max-height:100%;object-fit:contain;display:block}

.dots{display:flex;gap:.4rem;justify-content:center;margin:.7rem 0 0}
.dots button{width:.55rem;height:.55rem;border-radius:50%;border:0;background:var(--mauve);opacity:.45;cursor:pointer}
.dots button.active{opacity:1;transform:scale(1.12);background:var(--rose)}

.contact a{color:inherit;text-decoration:none;border-bottom:1px dotted var(--ink)}
footer.footer{text-align:center;opacity:.7;padding:1.3rem 0}

@media(max-width:950px){.viewport{width:92vw;height:calc(92vw*1.4);}}
