:root{--paper:#fcf8f3;--ink:#30271f;--pink:#f2d7dd;--rose:#94646b;--gold:#a27839;--line:#dfd5ca}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{display:block;width:100%;height:100%;object-fit:cover}button,a,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--rose);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;line-height:.98;letter-spacing:-2.5px}em{font-weight:400;color:var(--rose)}.announcement{background:var(--pink);text-align:center;font-size:9px;letter-spacing:2px;padding:9px 15px}.announcement span{margin-left:32px}header{padding:25px 5.5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:var(--paper)}.brand{font-family:'Cormorant Garamond',serif;font-size:37px;line-height:1;letter-spacing:-1px;display:flex;align-items:center;gap:8px}.brand>span:first-child{font:italic 18px 'Cormorant Garamond',serif;letter-spacing:0;max-width:43px;line-height:.9}.brand .brand-star{font-size:31px;color:var(--gold);margin-left:4px}nav{display:flex;align-items:center;gap:33px;font-size:12px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--ink);color:#fff;padding:17px 25px;font-size:12px;transition:background .2s,transform .2s}.button:hover{background:var(--rose);transform:translateY(-2px)}.button span{font-size:19px;line-height:1}.button.small{padding:12px 21px}.menu-toggle{display:none}.hero{max-width:1500px;margin:auto;display:grid;grid-template-columns:1fr 1fr;padding:69px 5.5% 78px;gap:40px;align-items:center}.eyebrow{font-size:9px;font-weight:600;letter-spacing:2px;margin-bottom:23px}.tiny-star{color:var(--gold);margin-right:9px}h1{font-size:clamp(62px,6.8vw,105px)}.intro{color:#6c6258;margin-top:25px;line-height:1.8;font-size:14px}.hero-actions{display:flex;gap:27px;align-items:center;margin-top:28px}.text-link{display:inline-flex;gap:25px;align-items:center;font-size:12px;border-bottom:1px solid var(--ink);padding-bottom:5px}.hero-note{display:flex;gap:13px;align-items:center;margin-top:43px;font-size:11px}.hero-note p span{color:#877b72;font-size:10px}.line-heart{font-size:34px;color:var(--rose)}.hero-art{height:575px;position:relative}.photo-main{position:absolute;inset:0 12% 30px 14%;border-radius:180px 180px 0 0;overflow:hidden;background:var(--pink)}.photo-main img{object-position:50% 35%}.photo-main:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#211c1b80)}.photo-tag{position:absolute;bottom:26px;left:25px;color:white;font-size:9px;letter-spacing:2px;z-index:1}.photo-second{position:absolute;width:40%;height:245px;bottom:0;right:-2%;border:7px solid var(--paper);transform:rotate(6deg);box-shadow:0 6px 25px #30271f17}.round-seal{position:absolute;left:0;top:50px;width:112px;height:112px;border-radius:50%;background:var(--pink);display:flex;flex-direction:column;justify-content:center;text-align:center;letter-spacing:2px;font-size:9px;transform:rotate(-16deg);border:1px solid #c59e8a}.round-seal span{font-size:30px;line-height:1.1;margin-top:8px;color:var(--gold)}.art-spark{position:absolute;font-family:Georgia;color:var(--gold)}.spark-one{font-size:80px;right:-6px;top:8px}.spark-two{font-size:45px;left:15px;bottom:48px}.handwritten{position:absolute;bottom:-25px;left:14%;font:italic 25px 'Cormorant Garamond',serif;transform:rotate(-5deg);color:var(--rose)}.ribbon{display:flex;align-items:center;justify-content:space-around;gap:20px;padding:18px;background:var(--pink);font-size:17px;color:var(--gold);overflow:hidden}.ribbon span{font-size:9px;color:var(--ink);letter-spacing:2px;white-space:nowrap}.section{padding:87px 5.5%;max-width:1500px;margin:auto}h2{font-size:clamp(42px,4.4vw,68px)}.section-top{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:37px}.section-top>p{font-size:12px;color:#796c60}.filters{display:flex;gap:8px;margin-bottom:30px;flex-wrap:wrap}.filters button{border:1px solid var(--line);background:transparent;border-radius:30px;font-size:11px;padding:8px 21px}.filters button.active{background:var(--ink);color:white;border-color:var(--ink)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:32px}.service{border-top:1px solid var(--line);padding:22px 0 24px}.service-title{display:flex;justify-content:space-between;gap:12px}.service h3{font:400 27px 'Cormorant Garamond',serif}.service .price{font-size:12px;padding-top:4px;color:var(--rose);white-space:nowrap}.service p{font-size:11px;color:#85776c;margin-top:7px}.service a{font-size:10px;display:inline-flex;gap:15px;margin-top:13px;border-bottom:1px solid #b9a69a}.menu-bottom{display:flex;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding-top:23px;margin-top:10px}.menu-bottom p{font-size:10px;color:#887a6f;max-width:500px}.gallery{background:#f5eee7;max-width:none}.gallery .section-top,.gallery-grid,.gallery-note{max-width:1335px;margin-left:auto;margin-right:auto}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.gallery-item{padding:0;background:none;border:0;text-align:left;overflow:hidden}.gallery-item img{height:360px;transition:transform .4s;object-position:center 38%}.gallery-item:hover img{transform:scale(1.025)}.gallery-item:nth-child(even){margin-top:40px}.gallery-item span{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;padding-top:15px}.gallery-item b{font-weight:400;font-size:17px}.gallery-note{text-align:center;font-size:11px;margin-top:40px}.gallery-note span{font-size:22px;margin-left:10px;color:var(--rose)}.experience{display:grid;grid-template-columns:1.15fr 1fr;gap:100px;padding-top:98px;padding-bottom:98px}.experience h2{font-size:clamp(43px,4.2vw,64px);line-height:1.1}.experience-heading>p:not(.eyebrow){font-size:12px;max-width:380px;margin:26px 0;color:#796b60}.steps{align-self:center}.steps article{display:flex;gap:25px;padding:30px 0;border-bottom:1px solid var(--line)}.steps article:first-child{border-top:1px solid var(--line)}.steps article>span{font:italic 29px 'Cormorant Garamond',serif;color:var(--rose)}.steps h3{font:400 28px 'Cormorant Garamond',serif}.steps p{font-size:12px;color:#796b60;margin-top:9px;max-width:340px}.faq{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:75px}.faq h2{font-size:49px}.questions details{border-bottom:1px solid var(--line);padding:19px 0}.questions details:first-child{padding-top:0}.questions summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;font-size:12px}.questions summary::-webkit-details-marker{display:none}.questions summary span{color:var(--rose);font-size:20px;line-height:1}.questions details[open] summary span{transform:rotate(45deg)}.questions details p{font-size:12px;color:#796b60;margin-top:18px;max-width:420px}.questions details a{text-decoration:underline}.booking{position:relative;background:var(--pink);text-align:center;padding:74px 20px 70px;overflow:hidden}.booking h2{font-size:75px}.booking .button{margin-top:28px}.booking>p:last-child{font-size:10px;margin-top:23px}.booking-star{position:absolute;left:12%;top:65px;color:#ba8d63;font-size:110px}.booking:after{content:'♡';position:absolute;right:13%;bottom:70px;font:100px 'Cormorant Garamond',serif;color:#b4878e;transform:rotate(20deg)}footer{padding:45px 5.5% 23px}.footer-top{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;align-items:start;padding-bottom:35px}.footer-top p{font-size:12px;color:#7b6b5f}.footer-top>div{display:flex;flex-direction:column;gap:8px;font-size:11px}.footer-bottom{border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;font-size:9px;color:#88776a}.mobile-book{display:none}.skip{position:absolute;left:20px;top:-100px;background:white;z-index:50;padding:12px}.skip:focus{top:10px}dialog{padding:12px;border:0;background:var(--paper);max-width:90vw;max-height:90dvh}dialog::backdrop{background:#211b19d9}dialog img{width:auto;max-width:82vw;height:auto;max-height:76dvh;object-fit:contain}dialog p{font-size:11px;margin-top:8px}.close-lightbox{position:absolute;right:20px;top:20px;border:0;background:var(--paper);border-radius:50%;width:36px;height:36px;font-size:27px}
@media(min-width:1500px){.hero-art{height:660px}.photo-second{height:290px}.gallery-item img{height:420px}}@media(max-width:1000px){nav{gap:18px}.hero{gap:15px;padding-top:50px}.hero-art{height:480px}.photo-second{height:195px}.round-seal{width:90px;height:90px;font-size:7px}.hero-actions{gap:17px}.hero-actions .button{gap:20px;padding:15px 18px}.experience{gap:45px}.gallery-item img{height:280px}.ribbon span:last-child{display:none}.service-grid{column-gap:20px}.service h3{font-size:24px}}@media(max-width:700px){.announcement{font-size:7px;letter-spacing:1.4px}.announcement span{display:none}header{padding:21px 6%;position:relative}.brand{font-size:32px}.brand>span:first-child{font-size:16px}.menu-toggle{display:flex;gap:12px;align-items:center;border:0;background:none;font-size:11px;padding:5px}nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);padding:25px 6%;z-index:10;border-bottom:1px solid var(--line);align-items:flex-start;box-shadow:0 15px 20px #30271f0a}nav.open{display:flex;flex-direction:column;gap:20px}.hero{display:flex;flex-direction:column;padding:39px 6% 48px;gap:37px;align-items:stretch}h1{font-size:70px;letter-spacing:-2px}.hero .eyebrow{font-size:8px;margin-bottom:19px}.intro{font-size:12px;margin-top:20px}.hero-actions{gap:25px;margin-top:24px}.hero-note{margin-top:25px}.hero-art{height:470px;width:100%;max-width:470px;align-self:center}.photo-main{inset:0 15% 35px 10%;border-radius:160px 160px 0 0}.photo-second{width:42%;height:205px;right:0}.round-seal{left:-2%;top:38px}.spark-one{font-size:62px;right:0}.spark-two{left:0;bottom:65px}.handwritten{font-size:23px;bottom:-12px;left:10%}.ribbon{gap:20px;padding:15px 12px;justify-content:flex-start}.ribbon span{font-size:7px;letter-spacing:1.2px}.ribbon span:nth-of-type(n+4){display:none}.section{padding:58px 6%}.section-top{display:block;margin-bottom:28px}.section-top>p,.section-top>.text-link{margin-top:22px}h2{font-size:45px;letter-spacing:-1.5px}.eyebrow{font-size:8px;margin-bottom:16px}.filters{gap:6px;margin-bottom:23px}.filters button{font-size:10px;padding:7px 15px}.service-grid{grid-template-columns:1fr 1fr;gap:0 21px}.service h3{font-size:23px;line-height:1.1}.service-title{flex-direction:column;gap:2px}.service{padding:18px 0}.service .price{font-size:11px}.menu-bottom{display:block}.menu-bottom .text-link{margin-top:16px}.gallery-grid{grid-template-columns:1fr 1fr;gap:24px 14px}.gallery-item img{height:260px}.gallery-item:nth-child(even){margin-top:25px}.gallery-item span{font-size:7px;letter-spacing:1px}.gallery-note{margin-top:25px}.experience{grid-template-columns:1fr;gap:30px}.experience h2{font-size:45px}.experience-heading>p:not(.eyebrow){font-size:12px}.steps article{padding:22px 0}.steps h3{font-size:27px}.faq{display:block}.faq h2{font-size:45px}.questions{margin-top:30px}.booking{padding:60px 6%}.booking h2{font-size:61px}.booking-star{font-size:55px;left:4%;top:35px}.booking:after{font-size:60px;right:4%;bottom:40px}.footer-top{grid-template-columns:1fr 1fr;gap:25px}.footer-top>.brand{grid-column:1/-1}.footer-top>div{font-size:10px}footer{padding:35px 6% 85px}.mobile-book{display:block;position:fixed;bottom:14px;left:6%;right:6%;background:var(--ink);color:white;padding:14px;text-align:center;font-size:12px;z-index:9;box-shadow:0 4px 20px #30271f30}}@media(max-width:370px){h1{font-size:60px}.hero-art{height:410px}.photo-second{height:175px}.hero-actions{gap:15px}.hero-actions .button{font-size:11px;gap:15px}.gallery-item img{height:230px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Gentle motion with an accessible reduced-motion alternative. */
@keyframes rise-in{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes photo-in{from{opacity:0;transform:translateY(28px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes gentle-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes sparkle-turn{0%,100%{transform:rotate(-7deg) scale(.95)}50%{transform:rotate(7deg) scale(1.06)}}
@keyframes dialog-in{from{opacity:0;transform:translateY(15px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:no-preference){
.hero-copy>.eyebrow{animation:rise-in .8s both .05s}.hero h1{animation:rise-in .9s both .14s}.hero .intro{animation:rise-in .85s both .28s}.hero-actions{animation:rise-in .85s both .38s}.hero-note{animation:rise-in .85s both .48s}.hero-art{animation:photo-in 1.1s both .25s}
.spark-one{animation:sparkle-turn 7s ease-in-out infinite}.spark-two{animation:gentle-float 6s ease-in-out infinite}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease var(--reveal-delay,0ms),transform .8s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}.reveal.is-visible,.reveal:focus-within{opacity:1;transform:translateY(0)}
.service{animation:rise-in .5s both;animation-delay:var(--service-delay,0ms)}dialog[open]{animation:dialog-in .3s cubic-bezier(.22,1,.36,1)}nav.open{animation:rise-in .25s both}}
.button span,.text-link span{transition:transform .25s cubic-bezier(.22,1,.36,1)}.button:hover span,.text-link:hover span{transform:translate(3px,-3px)}.text-link{transition:color .2s,border-color .2s}.text-link:hover{color:var(--rose);border-color:var(--rose)}.filters button{transition:background .2s,color .2s,border-color .2s,transform .2s}.filters button:hover{transform:translateY(-2px);border-color:var(--rose)}.gallery-item img{transition:transform .6s cubic-bezier(.22,1,.36,1)}.gallery-item:hover img{transform:scale(1.045)}.gallery-item span b{transition:transform .25s}.gallery-item:hover span b{transform:translate(3px,-3px)}.questions summary span{transition:transform .25s}.service a{transition:color .2s}.service a:hover{color:var(--rose)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
