:root{--paper:#f5f2eb;--ink:#33362f;--muted:#74746a;--line:#d7d4ca;--accent:#9b8267;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.7;-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button{border:0;background:none}img{max-width:100%;display:block}figure,p,h1,h2,h3{margin:0}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}::selection{background:#d8cbbb}em{font-weight:400}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.05}h2{font-size:clamp(44px,4.8vw,72px);letter-spacing:-1.8px}h2 em{color:#858475}h3{font-size:38px;letter-spacing:-.5px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:500;line-height:1.6}.text-link{font-size:12px;position:relative;display:inline-block;padding:5px 0;border-bottom:1px solid var(--ink);line-height:1.5;transition:color .2s,border-color .2s}.text-link:hover{color:var(--accent);border-color:var(--accent)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:53px;padding:15px 28px;font-size:12px;letter-spacing:.15px;border:1px solid transparent;transition:background .25s,color .25s,transform .25s}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--ink);color:var(--paper)}.button-dark:hover{background:#515548}.button-light{background:var(--paper);color:var(--ink)}.button-light:hover{background:#e7e1d6}.header{height:106px;margin:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:20}.brand{font:500 36px/.9 var(--serif);letter-spacing:-1.8px;display:inline-block}.brand i{font-weight:400}.brand span{display:block;font:400 7px/1 var(--sans);letter-spacing:2.6px;margin-top:11px;padding-left:2px}.desktop-nav{display:flex;gap:35px;margin-left:60px}.desktop-nav a{font-size:11px;transition:color .2s}.desktop-nav a:hover{color:var(--accent)}.menu-toggle{display:none}.hero{position:relative;padding:68px 5% 0;display:grid;grid-template-columns:46% 54%;column-gap:0}.hero-copy{padding-top:22px;position:relative;z-index:2}.hero-copy .eyebrow{font-size:9px;letter-spacing:1.9px}.hero h1{font-size:clamp(70px,7.7vw,118px);line-height:.94;letter-spacing:-3.7px;margin:34px 0 29px}.title-line{display:block;overflow:hidden;padding-bottom:8px;margin-bottom:-8px}.title-line>span{display:block;animation:title-in 1.25s cubic-bezier(.2,.65,.25,1) both}.title-line:nth-child(2)>span{animation-delay:.12s}.title-line:nth-child(3)>span{animation-delay:.24s}.hero h1 em{color:#838474}.hero-description{color:#727267;font-size:12px;line-height:1.9}.hero-actions{display:flex;align-items:center;gap:29px;margin-top:29px}.hero-location{display:flex;align-items:center;gap:10px;margin:47px 0 20px;font-size:10px;color:var(--muted)}.location-dot{width:6px;height:6px;border:1px solid var(--accent);border-radius:100%}.hero-visual{position:relative;margin-left:0;align-self:start;padding-bottom:26px}.hero-image{height:535px;overflow:hidden;animation:image-in 1.5s cubic-bezier(.2,.65,.25,1) both;position:relative}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:63% center;transform:scale(1.08);animation:hero-zoom 2.4s ease-out both;will-change:transform}.hero-visual:before{content:'';position:absolute;inset:16px -15px 42px 16px;border:1px solid #c5bba9;z-index:-1}.hero-visual figcaption{font-size:9px;color:var(--muted);margin-top:17px;letter-spacing:.2px}.photo-label{position:absolute;bottom:64px;left:-38px;background:var(--paper);width:215px;padding:20px 23px;z-index:3;border:1px solid var(--line);transform:rotate(-5deg);animation:label-in 1.5s .7s both}.photo-label span{display:block;font-size:9px;letter-spacing:1px}.photo-label i{font:italic 25px/1.4 var(--serif)}.thread{position:absolute;inset:-30px -35px -20px auto;width:105%;height:110%;pointer-events:none;z-index:2;overflow:visible}.thread path{stroke:#e8ded0;stroke-width:1;stroke-dasharray:1100;stroke-dashoffset:1100;animation:stitch 3.5s .8s ease-in-out forwards}.hero-bottom{grid-column:1/-1;margin-top:35px;min-height:80px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.2px}.hero-bottom-center{font-family:var(--serif);font-size:19px;font-style:italic;letter-spacing:0;color:var(--muted)}.hero-bottom a{letter-spacing:.3px}.hero-enter{animation:fade-in 1.3s .45s both}.section-shell{padding-left:9.5%;padding-right:9.5%}.about{padding-top:118px;padding-bottom:120px}.section-heading{text-align:center;margin-bottom:67px}.section-heading .eyebrow{margin-bottom:24px}.about-grid{display:grid;grid-template-columns:48% 39%;justify-content:space-between;align-items:center}.about-image{width:100%;padding-right:20px}.image-wrap{overflow:hidden}.about-image img{height:470px;width:100%;object-fit:cover}.about-image figcaption{font:italic 19px var(--serif);margin-top:15px;color:var(--muted)}.about-copy{padding:15px 0}.small-monogram{display:block;font:italic 55px var(--serif);color:var(--accent);margin-bottom:30px}.about-copy h3{margin-bottom:26px}.about-copy p{color:var(--muted);font-size:12px;margin-bottom:17px;line-height:1.9}.about-copy .text-link{margin-top:10px}.about-note{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:43px;padding-top:16px;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.services{background:#ebe8df;padding-top:93px;padding-bottom:80px}.services-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:47px}.services-heading .eyebrow{margin-bottom:22px}.services-heading>p{color:var(--muted);font-size:11px;line-height:1.9;padding-bottom:7px}.service{border-top:1px solid #c9c7bb}.service:last-child{border-bottom:1px solid #c9c7bb}.service summary{list-style:none;display:grid;grid-template-columns:1fr 30% 20px;gap:16px;align-items:center;padding:25px 0;cursor:pointer}.service summary::-webkit-details-marker{display:none}.service-name{font:400 34px var(--serif);letter-spacing:-.4px}.service-short{font-size:10px;color:var(--muted)}.plus{height:15px;width:15px;position:relative}.plus:before,.plus:after{content:'';position:absolute;left:0;top:7px;width:15px;height:1px;background:var(--ink);transition:transform .3s}.plus:after{transform:rotate(90deg)}details[open] .plus:after{transform:rotate(0)}.service-body{max-width:540px;padding:0 0 27px 0}.service-body p{font-size:12px;line-height:1.9;color:var(--muted);margin-bottom:15px}.services-note{font-size:10px;color:var(--muted);margin-top:24px}.gallery{padding-top:112px;padding-bottom:107px}.gallery-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:46px;gap:20px}.gallery-heading .eyebrow{margin-bottom:22px}.gallery-heading>a{margin-bottom:9px;font-size:10px}.gallery-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px;align-items:start}.gallery-item:nth-child(2){padding-top:65px;transition-delay:.1s}.gallery-item:nth-child(3){transition-delay:.2s}.gallery-open{display:block;padding:0;width:100%;position:relative;overflow:hidden;background:#e8e4de}.gallery-open img{height:360px;width:100%;object-fit:cover;object-position:50% 35%;transition:transform .8s cubic-bezier(.2,.65,.25,1),filter .5s;filter:saturate(.65)}.gallery-item:nth-child(2) img{object-position:56% 50%}.gallery-open:hover img{transform:scale(1.04);filter:saturate(.9)}.gallery-open>span{position:absolute;left:50%;bottom:25px;transform:translate(-50%,10px);padding:9px 20px;font-size:10px;background:var(--paper);opacity:0;transition:opacity .3s,transform .3s}.gallery-open:hover>span,.gallery-open:focus-visible>span{opacity:1;transform:translate(-50%,0)}.gallery-item figcaption{display:flex;justify-content:space-between;align-items:baseline;margin-top:16px;font-size:10px}.gallery-item figcaption i{font:italic 19px var(--serif);color:var(--muted)}.source-note{font-size:9px;color:var(--muted);margin-top:28px}.invitation{position:relative;overflow:hidden;background:#383d33;color:var(--paper);padding:82px 20px 88px;text-align:center}.invitation-inner{position:relative;z-index:2}.invitation .eyebrow{color:#c0c3b6;margin-bottom:26px}.invitation h2{font-size:clamp(39px,4.6vw,65px)}.invitation h2 em{color:#c3b59e}.invitation .button{margin-top:35px}.invitation-thread{position:absolute;inset:0;width:100%;height:100%;opacity:.25;pointer-events:none}.invitation-thread path{stroke:#cbbda7;stroke-width:1}.contacts{display:grid;grid-template-columns:45% 49%;justify-content:space-between;padding-top:110px;padding-bottom:110px}.contacts-intro .eyebrow{margin-bottom:24px}.contacts-intro h2{margin-bottom:26px}.contacts-intro p:not(.eyebrow){font-size:11px;line-height:1.9;color:var(--muted);margin-bottom:30px}.contact-row{display:grid;grid-template-columns:29% 1fr;gap:10px;padding:27px 0;border-top:1px solid var(--line)}.contact-row .eyebrow{font-size:8px;letter-spacing:1.2px;margin-top:6px}.contact-row h3{font:500 13px var(--sans);line-height:1.8;letter-spacing:0}.contact-row p{font-size:11px;color:var(--muted);margin-top:6px}.contact-row .text-link{font-size:10px;margin-top:13px}.contact-row .hours{margin-top:0;color:var(--ink)}.hours span{display:block}.contact-phone{font:400 28px var(--serif);white-space:nowrap;line-height:1}.secondary-phone{display:block;font-size:11px;margin-top:15px;color:var(--muted)}.social-links{display:flex;gap:25px}.footer{margin:0 5%;padding:32px 0 37px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:9px}.footer .brand{font-size:30px}.footer .brand span{font-size:6px;letter-spacing:2px}.footer>span:not(.copyright){font:italic 18px var(--serif);color:var(--muted)}.copyright{color:var(--muted)}dialog{border:0;color:var(--ink);background:var(--paper);padding:54px;max-width:calc(100% - 32px);width:490px;max-height:90dvh;overflow:auto}dialog::backdrop{background:#23251ed9;backdrop-filter:blur(7px)}dialog[open]{animation:dialog-in .3s ease both}.dialog-close{position:absolute;right:13px;top:8px;font:300 33px var(--sans);width:44px;height:44px;line-height:1}.contact-dialog h2{font-size:60px;margin:25px 0}.dialog-description{font-size:12px;line-height:1.9;color:var(--muted);margin-bottom:25px}.dialog-whatsapp{width:100%}.dialog-phone{display:block;text-align:center;font:30px var(--serif);margin-top:23px}.dialog-hours{text-align:center;color:var(--muted);font-size:10px;margin-top:7px}.chosen-service{font-size:11px;padding:10px 0 22px;color:var(--muted)}.lightbox{background:#f5f2eb;width:auto;padding:45px 25px 20px;overflow:hidden}.lightbox img{max-height:75dvh;max-width:75vw;width:auto;object-fit:contain}.lightbox figcaption{font-size:11px;margin-top:12px;text-align:center}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:var(--ink);color:white;padding:10px}.skip-link:focus{top:10px}.reveal{opacity:1}.motion-ready .reveal{opacity:0;transform:translateY(27px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.65,.25,1)}.motion-ready .reveal.is-visible{opacity:1;transform:none}
@keyframes title-in{from{transform:translateY(115%)}to{transform:translateY(0)}}@keyframes fade-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes image-in{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}@keyframes hero-zoom{from{transform:scale(1.15)}to{transform:scale(1.03)}}@keyframes stitch{to{stroke-dashoffset:0}}@keyframes label-in{from{opacity:0;transform:translateY(20px) rotate(-8deg)}to{opacity:1;transform:translateY(0) rotate(-5deg)}}@keyframes dialog-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(min-width:1550px){.header,.hero,.footer{max-width:1500px;margin-left:auto;margin-right:auto}.hero{padding-left:0;padding-right:0}.section-shell{padding-left:max(9.5%,calc((100% - 1200px)/2));padding-right:max(9.5%,calc((100% - 1200px)/2))}.hero-image{height:620px}.hero-location{margin-top:75px}}
@media(max-width:1050px){.hero{padding-top:48px}.hero h1{font-size:85px}.hero-image{height:515px}.desktop-nav{margin-left:0;gap:22px}.hero-actions{gap:18px}.hero-actions .button{padding:15px 20px}.hero-bottom-center{display:none}.hero-copy{padding-top:13px}.hero-description{font-size:11px}.hero-location{margin-top:40px}.section-shell{padding-left:7%;padding-right:7%}.about-grid{grid-template-columns:47% 43%}.about-image img{height:430px}.gallery-open img{height:310px}.contacts{grid-template-columns:42% 53%}.contact-row{grid-template-columns:25% 1fr}.contact-phone{font-size:26px}.footer>span:not(.copyright){display:none}}
@media(max-width:760px){html{scroll-padding-top:25px}.header{height:87px;margin:0 6%}.brand{font-size:32px}.brand span{font-size:6px;letter-spacing:2.2px}.desktop-nav,.header-contact{display:none}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:7px;width:44px;height:44px;padding:8px}.menu-toggle span{display:block;width:27px;height:1px;background:var(--ink);transition:transform .3s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-nav:not([hidden]){display:flex;flex-direction:column;align-items:start;gap:13px;padding:26px 6% 35px;border-bottom:1px solid var(--line);background:var(--paper);position:absolute;z-index:15;width:100%}.mobile-nav a,.mobile-nav button{font:29px var(--serif);padding:5px 0}.hero{display:flex;flex-direction:column;padding:37px 6% 0}.hero-copy{padding:0}.hero-copy .eyebrow{font-size:8px;letter-spacing:1.6px}.hero h1{font-size:clamp(68px,14.4vw,110px);letter-spacing:-2px;margin:25px 0 23px;line-height:.93}.hero h1 .title-line:nth-child(1),.hero h1 .title-line:nth-child(2){display:inline-block;margin-right:13px}.hero h1 .title-line:nth-child(3){display:block}.hero-description{font-size:11px}.hero-actions{margin-top:24px;gap:28px}.hero-actions .button{min-height:50px;font-size:11px;padding:14px 22px}.hero-actions .text-link{font-size:11px}.hero-location{margin-top:26px;margin-bottom:26px;font-size:9px}.hero-visual{width:100%;padding-bottom:10px}.hero-image{height:410px}.hero-image img{object-position:60% center}.hero-visual:before{inset:12px -9px 26px 12px}.photo-label{left:auto;right:-5px;bottom:45px;padding:14px 18px;width:169px}.photo-label i{font-size:23px}.photo-label span{font-size:8px}.thread{right:-14px;width:85%;height:100%}.hero-visual figcaption{font-size:8px;margin-top:13px}.hero-bottom{width:100%;margin-top:25px;min-height:64px;font-size:7px;letter-spacing:.8px;gap:15px}.hero-bottom a{font-size:8px}.section-shell{padding-left:7%;padding-right:7%}.about{padding-top:70px;padding-bottom:70px}h2{font-size:clamp(37px,8.8vw,58px);letter-spacing:-.8px}.eyebrow{font-size:8px;letter-spacing:1.7px}.section-heading{margin-bottom:35px}.section-heading .eyebrow{margin-bottom:18px}.about-grid{grid-template-columns:1fr;gap:27px}.about-image{padding-right:0;width:83%}.about-image img{height:340px}.about-image figcaption{font-size:17px}.about-copy{width:85%;margin-left:auto;padding:0}.small-monogram{font-size:40px;margin-bottom:18px}.about-copy h3{font-size:34px;margin-bottom:18px}.about-copy p{font-size:11px}.about-note{margin-top:28px}.services{padding-top:60px;padding-bottom:55px}.services-heading{display:block;margin-bottom:28px}.services-heading .eyebrow{margin-bottom:18px}.services-heading>p{font-size:10px;margin-top:22px}.service summary{grid-template-columns:1fr 15px;padding:22px 0}.service-name{font-size:28px}.service-short{display:none}.service-body p{font-size:11px}.service-body .text-link{font-size:11px}.services-note{font-size:9px}.gallery{padding-top:69px;padding-bottom:65px}.gallery-heading{display:block;margin-bottom:30px}.gallery-heading .eyebrow{margin-bottom:17px}.gallery-heading .text-link{margin-top:22px;font-size:10px}.gallery-grid{gap:16px;grid-template-columns:1fr 1fr}.gallery-item:nth-child(2){padding-top:43px}.gallery-item:nth-child(3){width:73%;grid-column:1/-1;margin:8px auto 0}.gallery-open img{height:240px;object-position:50% center}.gallery-item:nth-child(3) img{height:340px}.gallery-item figcaption{display:block;margin-top:11px;font-size:9px;line-height:1.6}.gallery-item figcaption i{display:block;font-size:16px}.gallery-open>span{display:none}.source-note{font-size:8px;margin-top:25px}.invitation{padding:58px 7% 62px}.invitation h2{font-size:39px;line-height:1.1}.invitation .eyebrow{margin-bottom:21px}.invitation .button{font-size:11px;margin-top:27px}.invitation-thread{width:180%;left:-40%}.contacts{display:block;padding-top:67px;padding-bottom:50px}.contacts-intro .eyebrow{margin-bottom:19px}.contacts-intro h2{margin-bottom:20px}.contacts-intro p:not(.eyebrow){font-size:11px}.contacts-intro .button{font-size:11px}.contact-info{margin-top:39px}.contact-row{grid-template-columns:29% 1fr;padding:23px 0;gap:14px}.contact-row .eyebrow{font-size:7px}.contact-row h3{font-size:12px}.contact-phone{font-size:28px}.footer{margin:0 6%;display:grid;grid-template-columns:1fr auto;padding:27px 0;gap:24px}.footer .brand{grid-row:1/3;font-size:29px}.footer>a:not(.brand){text-align:right;font-size:10px}.footer .copyright{font-size:8px;text-align:right}.contact-dialog{padding:45px 27px 33px}.contact-dialog h2{font-size:55px}.lightbox{padding:48px 12px 18px;max-width:calc(100% - 20px)}.lightbox img{max-width:calc(100vw - 44px);max-height:72dvh}.motion-ready .reveal{transform:translateY(20px)}}
@media(max-width:370px){.hero-actions{gap:18px}.hero-actions .button{padding:14px 15px}.hero-image{height:350px}.gallery-open img{height:210px}.service-name{font-size:25px}.contact-row{grid-template-columns:25% 1fr;gap:10px}.contact-phone{font-size:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1;transform:none}.thread path{stroke-dashoffset:0}.hero-image img{transform:none}}
