@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&family=DM+Sans:wght@400;450;500;600&family=Italiana&display=swap');

:root { --paper:#f7f4ee; --ink:#29211e; --muted:#6e645c; --line:#dcd4c9; --sand:#ebe4da; --accent:#745346; --serif:'Italiana',Georgia,serif; --brand:'Cormorant Garamond',Georgia,serif; --sans:'DM Sans',Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:30px; -webkit-text-size-adjust:100%; }
body { margin:0; padding-inline:env(safe-area-inset-left,0px) env(safe-area-inset-right,0px); background:var(--paper); color:var(--ink); font:15px/1.65 var(--sans); }
body.photo-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; }
a,button { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
img { max-width:100%; }
::selection { background:#dccbbb; }
[hidden] { display:none!important; }
.wrap { width:min(1280px,calc(100% - 112px)); margin-inline:auto; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.skip-link { position:fixed; top:8px; left:12px; z-index:100; background:var(--ink); color:white; padding:12px 20px; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.preview-note { display:flex; justify-content:center; gap:18px; background:#e9e3d9; color:#51483f; font-size:9px; letter-spacing:.16em; padding:7px 20px; }
.preview-note span { letter-spacing:.03em; }
.site-header { height:112px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.wordmark { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:44px; gap:3px; font-family:var(--brand); font-weight:500; font-variant-caps:small-caps; font-size:37px; letter-spacing:-.02em; line-height:1; }
.wordmark img { display:block; height:22px; }
.site-header nav { display:flex; align-items:center; gap:38px; font-size:12px; }
.site-header nav a { display:inline-flex; align-items:center; min-height:44px; padding:10px 0; }
.site-header nav a:hover { color:var(--accent); }
.nav-contact { border-bottom:1px solid var(--ink); }
.nav-contact span { margin-left:18px; font-size:18px; }
.hero { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:65px; padding-block:55px 64px; align-items:center; }
.hero-copy { min-width:0; }
.eyebrow { font-size:10px; font-weight:500; letter-spacing:.19em; margin:0 0 28px; }
.tiny-star { font-size:21px; vertical-align:middle; margin-right:13px; }
h1,h2,p { margin-top:0; }
h1,h2 { font-family:var(--serif); font-weight:400; letter-spacing:-.045em; }
h1 { font-size:clamp(66px,7.2vw,105px); line-height:1.02; margin-bottom:30px; }
h1 em,h2 em { font-family:Georgia,'Times New Roman',serif; font-weight:400; font-style:italic; letter-spacing:-.065em; color:var(--accent); }
h2 { font-size:clamp(50px,5.2vw,72px); line-height:1.15; margin:0; }
.hero-description { font-size:14px; line-height:1.85; color:var(--muted); margin-bottom:30px; }
#hero-portfolio-link { display:flex; width:fit-content; margin-top:14px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:48px; padding:17px 23px; font-size:12px; line-height:1.5; transition:background .2s,transform .2s; }
.button-dark { background:var(--ink); color:var(--paper); }
.button-dark:hover { background:#533e33; transform:translateY(-2px); }
.button span[aria-hidden] { font-size:21px; line-height:1; }
.hero-footnote { display:flex; align-items:center; gap:13px; font-size:8px; letter-spacing:.15em; margin-top:42px; }
.small-rule { height:1px; width:28px; background:var(--ink); }
.hero-art { position:relative; min-width:0; padding-right:25px; }
.photo-slot { position:relative; overflow:hidden; background:#d5c4b2; }
.hero-photo { aspect-ratio:4/5; border-radius:46% 46% 0 0; }
.photo-slot img { display:block; width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform .55s; }
.hero-stars { position:absolute; right:2px; top:2px; width:72px; height:auto; }
.hero-side-label { position:absolute; right:0; bottom:32px; writing-mode:vertical-rl; font-size:8px; letter-spacing:.2em; }
.photo-caption { display:flex; justify-content:space-between; font-size:8px; letter-spacing:.16em; padding-top:13px; }
.hero-stamp { position:absolute; bottom:64px; left:-36px; display:flex; align-items:center; gap:15px; background:var(--paper); padding:19px 23px; box-shadow:0 6px 25px #29211e0d; }
.hero-stamp span { font-size:9px; line-height:1.5; letter-spacing:.12em; }
.hero-stamp b { font-size:35px; font-weight:400; color:var(--accent); }
.statement { background:var(--sand); padding:25px 0; }
.statement .wrap { display:flex; justify-content:space-between; gap:30px; align-items:center; }
.statement .wrap>span:first-child { font-family:var(--serif); font-size:35px; letter-spacing:-.02em; line-height:1.2; }
.statement img { width:260px; height:auto; }
.statement-small { font-size:8px; letter-spacing:.14em; line-height:1.8; }
.section-space { padding-block:90px; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:34px; gap:25px; }
.section-heading .eyebrow { margin-bottom:15px; }
.text-link { display:inline-flex; align-items:center; min-height:44px; gap:30px; font-size:11px; border-bottom:1px solid #958275; padding:8px 0; white-space:nowrap; }
.text-link span[aria-hidden] { font-size:20px; line-height:1; }
.text-link:hover { color:var(--accent); }
.portfolio-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:16px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.portfolio-filters { display:flex; flex-wrap:wrap; gap:8px; }
.portfolio-filters button { border:1px solid transparent; background:transparent; min-height:44px; padding:9px 17px; cursor:pointer; font-size:11px; transition:background .2s,color .2s; }
.portfolio-filters button[aria-pressed='true'] { background:var(--ink); color:var(--paper); }
.portfolio-filters button[aria-pressed='false']:hover { background:var(--sand); }
#portfolio-count { font-size:10px; color:var(--muted); margin:0; white-space:nowrap; }
.portfolio-group { padding-top:37px; }
.portfolio-group+.portfolio-group { margin-top:38px; border-top:1px solid var(--line); }
.portfolio-group[hidden]+.portfolio-group { margin-top:0; border-top:0; }
.group-heading { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:24px; }
.group-heading h3 { font-family:var(--brand); font-size:32px; font-weight:500; margin:0; }
.group-heading p { font-size:11px; color:var(--muted); margin:0; }
.gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:31px 24px; }
.gallery.two-looks { grid-template-columns:repeat(2,minmax(0,1fr)); }
.portfolio-piece { margin:0; min-width:0; }
.gallery-photo { width:100%; aspect-ratio:3/4; }
.gallery.two-looks .gallery-photo { aspect-ratio:4/4.7; }
.photo-slot button { position:absolute; inset:0; width:100%; background:none; border:0; cursor:zoom-in; z-index:1; }
.photo-slot button:focus-visible { outline-offset:-6px; outline:3px solid #fff; }
.photo-slot button .view-label { position:absolute; right:15px; bottom:15px; padding:7px 12px; background:var(--paper); color:var(--ink); font-size:10px; opacity:0; transform:translateY(5px); transition:opacity .2s,transform .2s; }
.photo-slot button:hover .view-label,.photo-slot button:focus-visible .view-label { opacity:1; transform:none; }
.gallery-photo:hover img { transform:scale(1.035); }
.portfolio-piece figcaption { display:flex; justify-content:space-between; gap:15px; padding-top:13px; font-size:11px; color:var(--muted); }
.portfolio-piece figcaption span:last-child { font-size:9px; letter-spacing:.08em; padding-top:2px; }
.portfolio-note { margin:36px 0 0; font-size:11px; color:var(--muted); }
.services-section { display:grid; grid-template-columns:1fr 1fr; gap:80px; padding-bottom:90px; }
.services-copy { position:relative; }
.services-section .eyebrow { margin-bottom:22px; }
.services-section h2 { font-size:60px; line-height:1.12; }
.services-intro { font-size:12px; line-height:1.85; color:var(--muted); margin-top:24px; }
.service-stars { display:block; margin:24px 0 0 12px; width:45px; height:auto; }
.service-list>div,.service-list>a { display:flex; align-items:center; gap:24px; border-bottom:1px solid var(--line); padding:18px 0; }
.service-list>a:hover h3 { color:var(--accent); }
.service-list>:first-child { border-top:1px solid var(--line); }
.service-list>div>span:first-child,.service-list>a>span:first-child { font-size:8px; color:var(--muted); }
.service-list span[aria-hidden] { margin-left:auto; font-size:19px; color:var(--accent); }
.service-list span.service-star { font-size:12px; }
.service-list h3 { font-family:var(--brand); font-variant-caps:small-caps; font-size:24px; font-weight:500; margin:0; }
.service-list>p { font-size:10px; color:var(--muted); margin-top:22px; }
.service-list>p a { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:4px; }
.about-section { padding-block:65px; background:var(--sand); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.brand-card { min-height:340px; padding:42px 28px; display:flex; flex-direction:column; align-items:center; justify-content:center; background:#d5c4b2; outline:1px solid #74534638; outline-offset:-13px; text-align:center; }
.brand-card-name { font-family:var(--brand); font-variant-caps:small-caps; font-size:52px; font-weight:500; letter-spacing:-.025em; line-height:1.15; }
.brand-card img { margin:16px 0 22px; width:100%; height:auto; }
.brand-card-location { font-size:8px; letter-spacing:.2em; color:var(--accent); }
.about-copy { max-width:400px; }
.about-copy .eyebrow { margin-bottom:18px; }
.about-copy h2 { margin-bottom:25px; }
.about-intro { font-size:20px; line-height:1.5; margin-bottom:18px; }
.about-copy>p:not(.eyebrow):not(.about-intro) { font-size:13px; line-height:1.9; color:var(--muted); }
.about-copy .text-link { margin-top:15px; }
.connect-section { text-align:center; }
.connect-celestial { margin-bottom:30px; }
.connect-section .eyebrow { margin-bottom:17px; }
.connect-section h2 { font-size:clamp(62px,7.3vw,100px); margin-bottom:22px; }
.connect-section>p:not(.eyebrow) { font-size:13px; color:var(--muted); line-height:1.9; margin-bottom:28px; }
.contact-options { display:flex; justify-content:center; gap:27px; font-size:11px; margin-top:23px; }
.contact-options a { display:inline-flex; align-items:center; min-height:44px; border-bottom:1px solid var(--line); padding-block:5px; }
.location-tag { margin-top:26px; font-size:8px; letter-spacing:.17em; }
.location-tag span { font-size:19px; vertical-align:middle; margin-right:7px; }
.site-footer { background:var(--ink); color:#f1ebe3; padding:42px 0 20px; }
.footer-top { display:flex; align-items:center; justify-content:space-between; padding-bottom:35px; }
.footer-top>a:last-child { display:inline-flex; align-items:center; min-height:44px; font-size:11px; }
.footer-top>a:last-child>span[aria-hidden] { margin-left:25px; }
.footer-bottom { display:flex; justify-content:space-between; gap:18px; border-top:1px solid #f1ebe329; padding-top:20px; font-size:9px; color:#c7bbb0; letter-spacing:.04em; }
.footer-bottom>span:nth-child(2) { font-size:8px; letter-spacing:.15em; }
.footer-bottom>a { display:inline-flex; align-items:center; min-height:44px; }
#photo-dialog { border:0; background:var(--paper); padding:14px 20px 12px; width:min(740px,calc(100vw - 40px)); max-width:none; max-height:95dvh; overflow:auto; }
#photo-dialog::backdrop { background:#201814df; }
.dialog-toolbar { display:flex; align-items:center; justify-content:space-between; padding-bottom:12px; font-size:11px; }
.dialog-close,.dialog-previous,.dialog-next { background:none; border:0; cursor:pointer; min-width:44px; min-height:44px; }
.dialog-close { display:flex; gap:18px; align-items:center; font-size:11px; }
.dialog-close span { font-size:23px; }
.dialog-photo { background:#e9e3da; display:flex; align-items:center; justify-content:center; }
#dialog-image { display:block; max-width:100%; max-height:calc(95dvh - 145px); width:auto; height:auto; object-fit:contain; }
.dialog-bottom { display:flex; align-items:center; justify-content:space-between; gap:14px; padding-top:8px; }
.dialog-bottom p { font-size:12px; text-align:center; margin:0; }
.dialog-previous,.dialog-next { font-size:23px; flex-shrink:0; }
.mobile-actions { display:none; }
@media(max-width:1020px) {
 .wrap { width:calc(100% - 64px); }
 .hero { gap:35px; padding-top:40px; }
 h1 { font-size:clamp(48px,6.5vw,72px); }
 .hero-stamp { left:-22px; padding:14px 17px; }
 .hero-footnote { margin-top:32px; }
 .statement img { width:220px; }
 .statement-small { display:none; }
 .about-grid { gap:40px; }
 .brand-card-name { font-size:42px; }
 .services-section { gap:40px; }
 .services-section h2 { font-size:51px; }
 .section-space { padding-block:75px; }
 .portfolio-filters button { padding:9px 13px; }
}
@media(max-width:720px) {
 html { scroll-padding-top:20px; scroll-padding-bottom:100px; }
 body { font-size:16px; padding-bottom:calc(72px + env(safe-area-inset-bottom,0px)); }
 a,button { touch-action:manipulation; }
 .wrap { width:calc(100% - 40px); }
 .preview-note { font-size:9px; gap:4px 12px; flex-wrap:wrap; letter-spacing:.06em; padding-block:6px; }
 .preview-note span { letter-spacing:0; }
 .site-header { height:auto; flex-direction:column; gap:10px; padding-top:16px; }
 .wordmark { font-size:32px; min-height:48px; justify-content:center; }
 .wordmark img { width:92px; height:18px; }
 .site-header nav { width:100%; gap:6px; font-size:13px; justify-content:space-between; }
 .site-header nav a { display:flex; align-items:center; justify-content:center; flex:1; min-height:48px; padding:8px 2px; }
 .nav-contact { border-bottom:0; }
 .nav-contact span { margin-left:6px; font-size:17px; }
 .hero { grid-template-columns:minmax(0,1fr); gap:28px; padding-block:28px 34px; }
 .eyebrow { font-size:11px; }
 .hero .eyebrow { margin-bottom:16px; }
 h1 { font-size:clamp(52px,13.4vw,80px); line-height:1.08; margin-bottom:20px; }
 .hero-description { font-size:16px; line-height:1.65; margin-bottom:22px; }
 .hero-footnote { display:none; }
 .button { padding:16px 20px; font-size:14px; gap:20px; min-height:54px; width:100%; }
 .hero-art { padding-right:12px; margin-left:20px; width:calc(100% - 20px); max-width:472px; justify-self:center; }
 .hero-photo { aspect-ratio:1/1.08; }
 .hero-stars { width:52px; top:4px; right:0; }
 .hero-stamp { bottom:40px; left:-20px; padding:12px 15px; }
 .hero-side-label { display:none; }
 .photo-caption { font-size:9px; letter-spacing:.08em; gap:10px; }
 .statement { padding:22px 0; }
 .statement .wrap { gap:12px; }
 .statement .wrap>span:first-child { font-size:27px; max-width:230px; }
 .statement img { width:100px; flex-shrink:0; }
 .section-space { padding-block:48px; }
 .section-heading { display:block; margin-bottom:25px; }
 .section-heading .eyebrow { margin-bottom:13px; }
 h2 { font-size:clamp(44px,11.5vw,62px); }
 .text-link { min-height:48px; font-size:14px; gap:18px; white-space:normal; }
 .section-heading .text-link { margin-top:12px; }
 .portfolio-toolbar { display:block; padding-block:12px; }
 .portfolio-filters { gap:8px; }
 .portfolio-filters button { font-size:13px; padding:10px 15px; min-height:46px; border-color:var(--line); border-radius:24px; }
 .portfolio-filters button[aria-pressed='true'] { border-color:var(--ink); }
 #portfolio-count { margin-top:12px; font-size:12px; }
 .portfolio-group { padding-top:25px; }
 .portfolio-group+.portfolio-group { margin-top:29px; }
 .group-heading { display:block; margin-bottom:18px; }
 .group-heading h3 { font-size:32px; }
 .group-heading p { font-size:14px; line-height:1.65; margin-top:3px; }
 .gallery,.gallery.two-looks { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 14px; }
 .gallery.two-looks .gallery-photo { aspect-ratio:3/4; }
 .photo-slot button .view-label { opacity:1; transform:none; right:8px; bottom:8px; padding:6px 9px; font-size:11px; }
 .portfolio-piece figcaption { font-size:13px; gap:8px; line-height:1.5; padding-top:10px; }
 .portfolio-piece figcaption span:last-child { display:none; }
 .portfolio-note { font-size:14px; line-height:1.7; margin-top:25px; }
 .services-section { grid-template-columns:minmax(0,1fr); gap:23px; padding-bottom:48px; }
 .services-section h2 { font-size:clamp(42px,11.5vw,62px); }
 .services-intro { font-size:16px; line-height:1.7; margin-bottom:0; }
 .services-intro br { display:none; }
 .service-stars { display:none; }
 .service-list>div,.service-list>a { gap:16px; min-height:64px; }
 .service-list h3 { font-size:26px; line-height:1.25; }
 .service-list>p { font-size:14px; }
 .service-list>p a { display:inline-flex; align-items:center; min-height:48px; }
 .about-section { padding-block:40px; }
 .about-grid { grid-template-columns:minmax(0,1fr); gap:33px; }
 .brand-card { min-height:240px; padding:32px 24px; }
 .brand-card-name { font-size:43px; }
 .brand-card-location { font-size:10px; }
 .about-copy { max-width:100%; }
 .about-copy h2 { margin-bottom:20px; }
 .about-intro { font-size:20px; }
 .connect-celestial { width:220px; height:auto; margin-bottom:24px; }
 .connect-section h2 { font-size:clamp(48px,13vw,72px); }
 .connect-section>p:not(.eyebrow) { font-size:16px; line-height:1.7; }
 .connect-section>p:not(.eyebrow) br { display:none; }
 .contact-options { gap:12px; font-size:14px; flex-wrap:wrap; }
 .contact-options a { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding-inline:8px; }
 .location-tag { font-size:10px; }
 .footer-top { flex-direction:column; align-items:flex-start; gap:14px; padding-bottom:20px; }
 .footer-top>a:last-child { font-size:14px; min-height:48px; display:inline-flex; align-items:center; gap:12px; }
 .footer-top>a:last-child>span[aria-hidden] { margin-left:0; }
 .footer-bottom { font-size:11px; align-items:center; flex-wrap:wrap; }
 .footer-bottom a { min-height:48px; display:inline-flex; align-items:center; }
 .footer-bottom>span:nth-child(2) { display:none; }
 .site-footer { padding-top:32px; }
 .mobile-actions { display:grid; grid-template-columns:1fr 1.15fr; gap:10px; position:fixed; z-index:20; bottom:0; left:0; right:0; border-top:1px solid var(--line); background:var(--paper); padding:10px max(20px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px)); box-shadow:0 -4px 18px #29211e08; }
 .mobile-actions a { display:flex; align-items:center; justify-content:center; gap:24px; min-height:50px; padding:10px; font-size:14px; line-height:1.4; border:1px solid var(--line); }
 .mobile-actions .mobile-text { background:var(--ink); color:var(--paper); border-color:var(--ink); }
 .booking-ready #mobile-booking-link { background:var(--ink); color:var(--paper); border-color:var(--ink); }
 .booking-ready .mobile-actions .mobile-text { background:var(--paper); color:var(--ink); border-color:var(--line); }
 .mobile-text span { font-size:20px; }
 #photo-dialog { position:fixed; inset:0; margin:0; padding:max(8px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px)); width:100%; height:100vh; height:100dvh; max-height:none; overflow:hidden; }
 #photo-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:8px; }
 .dialog-toolbar { font-size:14px; padding-bottom:0; }
 .dialog-close,.dialog-previous,.dialog-next { min-width:48px; min-height:48px; }
 .dialog-close { font-size:14px; }
 .dialog-photo { min-height:0; }
 #dialog-image { width:100%; height:100%; max-height:100%; object-fit:contain; }
 .dialog-bottom { padding-top:0; gap:10px; }
 .dialog-bottom p { font-size:14px; line-height:1.5; flex:1; min-width:0; }
 .dialog-previous,.dialog-next { border:1px solid var(--line); border-radius:50%; }
}
@media(max-width:359px) {
 .site-header nav { font-size:12px; }
 .gallery,.gallery.two-looks { grid-template-columns:minmax(0,1fr); }
 .statement img { width:78px; }
 .service-list h3 { font-size:24px; }
}
@media(hover:none) { .photo-slot button .view-label { opacity:1; transform:none; } .gallery-photo:hover img { transform:none; } .button-dark:hover { transform:none; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } }
