:root{--ink:#19110c;--coffee:#57321d;--brown:#6a4d3a;--clay:#a06049;--tan:#a98467;--sand:#dbb39e;--mist:#e5e5e4;--paper:#fff;--sans:'Inter',Arial,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font:14px/1.55 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.skip{position:absolute;left:-999px;top:8px;z-index:10;background:#fff;padding:12px}.skip:focus{left:8px}.composition{position:relative;max-width:1360px;min-height:0;margin:0 auto;padding:0 6%;overflow:hidden;background:#fff}.page-window{position:relative;width:100%;min-height:0;margin:0 auto;background:var(--paper);padding:0 0 45px}.mini-nav{height:66px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px}.mini-wordmark{font-size:13px;font-weight:600;line-height:1.1;letter-spacing:.08em;white-space:nowrap}.mini-wordmark small{display:block;font-size:6px;letter-spacing:.24em;margin-top:4px}.mini-nav nav{display:flex;gap:17px;align-items:center;font-size:8px;white-space:nowrap}.mini-nav nav a{color:#514a45}.mini-book,.pill,.contact-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:30px;background:var(--tan);color:#fff}.mini-book{justify-self:end;padding:8px 13px;font-size:8px;white-space:nowrap}.front-hero{min-height:460px;display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:5%;padding:29px 0 22px}.front-copy{position:relative;z-index:1}.eyebrow{margin:0;color:var(--coffee);font-size:8px;font-weight:600;letter-spacing:.12em}.front-copy h1{font-size:clamp(42px,5.2vw,70px);font-weight:500;line-height:1.03;letter-spacing:-.06em;margin:21px 0 15px}.front-copy h1 span,.services-title h2 span,.about-strip h2 span,.contact h2 span{font-weight:400;color:var(--clay)}.front-copy>p:not(.eyebrow){max-width:235px;font-size:10px;line-height:1.6;color:#62584f;margin:0 0 17px}.pill{padding:10px 15px;font-size:8px;gap:14px;white-space:nowrap}.pill b{font-weight:500;font-size:11px}.availability{display:block;margin-top:18px;font-size:7px;color:#62584f}.front-photo{align-self:stretch;position:relative;margin:0;min-height:400px;overflow:hidden}.front-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 27%}.front-photo figcaption{position:absolute;right:0;bottom:0;background:#fff;padding:8px 11px;font-size:8px}.location-line{min-height:35px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:6px;letter-spacing:.09em;color:#62584f}.location-line a{white-space:nowrap}.services{padding:58px 0 55px;display:grid;grid-template-columns:.78fr repeat(3,1fr);gap:20px;align-items:start}.services-title h2,.about-strip h2{font-size:clamp(24px,3vw,39px);font-weight:500;line-height:1.1;letter-spacing:-.055em;margin:12px 0 15px}.outline-link{display:inline-flex;border-radius:20px;padding:6px 11px;font-size:7px;}.service-image{height:155px;width:100%;overflow:hidden}.service-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 32%}.services article h3{font-size:9px;font-weight:500;margin:8px 0 2px}.services article p{font-size:7px;line-height:1.5;color:#62584f;margin:0}.portfolio-gallery{padding:55px 0 68px}.gallery-heading{margin-bottom:24px}.gallery-heading h2{font-size:clamp(28px,3.2vw,42px);font-weight:500;line-height:1.12;letter-spacing:-.05em;margin:10px 0}.gallery-heading h2 span{color:var(--clay);font-weight:400}.gallery-heading>p:last-child{font-size:11px;color:#62584f;margin:0}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.gallery-item{margin:0;overflow:hidden}.gallery-item img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 30%}
.about-strip{margin:0;padding:76px 7%;background:var(--mist);color:var(--ink);display:grid;grid-template-columns:1fr 1fr;align-items:center;column-gap:12%;row-gap:0}.about-copy{display:contents}.about-strip .eyebrow{grid-column:1;grid-row:1;color:var(--coffee);margin:0 0 18px}.about-strip h2{grid-column:1;grid-row:2;font-size:clamp(38px,4.4vw,58px);font-weight:500;line-height:1.05;letter-spacing:-.055em;margin:0}.about-strip h2 span{font-weight:400;color:var(--clay)}.about-description{grid-column:2;grid-row:1/3;max-width:440px;font-size:14px;line-height:1.85;color:#62584f;margin:0 0 25px}.about-link{grid-column:2;grid-row:3;justify-self:start;display:inline-flex;align-items:center;gap:18px;padding:13px 19px;border-radius:30px;background:var(--coffee);color:#fff;font-size:10px}.about-link span{font-size:13px}.contact{background:var(--mist);color:var(--ink);text-align:center;padding:78px 20px 66px}.contact .eyebrow{color:var(--coffee)}.contact h2{font-size:clamp(38px,5vw,58px);font-weight:500;line-height:1.05;letter-spacing:-.055em;margin:18px 0}.contact h2 span{color:var(--clay)}.contact>p:not(.eyebrow){font-size:12px;color:#62584f}.contact-actions{display:flex;justify-content:center;align-items:center;gap:24px;flex-wrap:wrap;margin:24px auto 0;font-size:10px;color:#eee5df}.contact-pill{padding:12px 18px;background:var(--tan);color:#fff}.handle{display:block;margin-top:17px;font-size:9px;color:#62584f}footer{min-height:75px;padding:16px 7%;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff}footer .mini-wordmark{font-size:11px}footer .mini-wordmark small{font-size:6px}footer span,footer>a:not(.mini-wordmark){font-size:8px;color:#62584f}
@media(max-width:900px){.composition{padding:0 5%;min-height:0}.page-window{width:100%;padding-left:0;padding-right:0}.mini-nav{grid-template-columns:1fr auto}.mini-nav nav{grid-column:1/-1;grid-row:2;justify-content:center;gap:23px}.mini-nav{height:70px}.mini-book{grid-column:2;grid-row:1}.front-hero{min-height:320px;grid-template-columns:.9fr 1.1fr}.front-copy h1{font-size:clamp(30px,5vw,45px)}.services{grid-template-columns:repeat(3,1fr)}.services-title{grid-column:1/-1}.services-title h2 br{display:none}}
@media(max-width:600px){.composition{margin:0;padding:0 5%;min-height:0;background:#fff}.page-window{width:100%;margin:0 auto;min-height:0;padding:0 0 30px}.mini-nav{height:65px;grid-template-columns:1fr auto;gap:8px}.mini-wordmark{font-size:12px}.mini-nav nav{gap:18px;font-size:8px}.mini-book{padding:8px 12px}.front-hero{grid-template-columns:.92fr 1.08fr;min-height:330px;gap:4%;padding:20px 0}.front-copy h1{font-size:clamp(29px,8.5vw,43px);margin:14px 0 10px}.front-copy>p:not(.eyebrow){font-size:9px}.pill{padding:9px 11px;font-size:7px;gap:8px}.availability{font-size:6px}.front-photo{min-height:280px}.location-line{font-size:5px;gap:5px}.services{padding:32px 0;gap:11px;grid-template-columns:repeat(3,1fr)}.services-title{grid-column:1/-1}.services-title h2{font-size:30px}.service-image{height:95px}.services article h3{font-size:8px}.services article p{font-size:6px}.about-strip{margin:0 -5.5%;padding:48px 7%;grid-template-columns:1fr;row-gap:0}.about-strip .eyebrow{grid-column:1;grid-row:1;margin:0 0 14px}.about-strip h2{grid-column:1;grid-row:2;font-size:clamp(34px,9vw,44px);line-height:1.08;margin:0 0 22px}.about-description{grid-column:1;grid-row:3;font-size:13px;line-height:1.75;margin:0 0 23px}.about-link{grid-column:1;grid-row:4;padding:12px 17px;font-size:9px}.contact{padding:65px 7% 55px}.contact-actions{flex-direction:column;gap:13px}footer{padding:17px 6%;display:grid;grid-template-columns:1fr 1fr;gap:12px}footer>*{font-size:8px}footer span,footer>a:not(.mini-wordmark){text-align:right}footer>a:last-child{grid-column:1/-1;text-align:left}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Responsive layout: keep type and controls readable on phones. */
@media(max-width:900px){
  .composition{padding:0 5%;min-height:0}
  .page-window{width:100%;padding-left:0;padding-right:0}
  .mini-nav{height:72px;grid-template-columns:1fr auto;grid-template-rows:40px 24px;gap:2px 8px}
  .mini-wordmark{grid-column:1;grid-row:1}
  .mini-book{grid-column:2;grid-row:1}
  .mini-nav nav{grid-column:1/-1;grid-row:2;justify-content:center;gap:clamp(18px,5vw,32px);font-size:11px}
  .front-hero{min-height:390px;grid-template-columns:.9fr 1.1fr;gap:5%;padding:28px 0 18px}
  .front-copy h1{font-size:clamp(38px,6vw,54px)}
  .front-copy>p:not(.eyebrow){font-size:13px;max-width:300px}
  .eyebrow{font-size:10px}
  .pill{font-size:10px;padding:12px 16px}
  .availability{font-size:10px}
  .front-photo{min-height:340px}
  .location-line{font-size:9px;min-height:42px;gap:10px;flex-wrap:wrap}
  .services{padding:44px 0;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
  .services-title{grid-column:1/-1}
  .services-title h2{font-size:36px}
  .service-image{height:clamp(150px,27vw,230px)}
  .services article h3{font-size:14px;margin-top:10px}
  .services article p{font-size:12px}
  .portfolio-gallery{padding:42px 0 48px}
  .gallery-grid{gap:12px}
}
@media(max-width:600px){
  html,body{width:100%;overflow-x:hidden}
  .composition{margin:0;padding:0 5%;background:#fff}
  .page-window{width:100%;padding:0 0 26px}
  .mini-nav{height:76px;grid-template-rows:42px 28px;gap:0 8px}
  .mini-wordmark{font-size:12px}
  .mini-wordmark small{font-size:6px}
  .mini-book{padding:9px 13px;font-size:10px}
  .mini-nav nav{gap:clamp(19px,7vw,30px);font-size:11px}
  .front-hero{display:flex;flex-direction:column;align-items:stretch;gap:22px;min-height:0;padding:36px 0 16px}
  .front-copy h1{font-size:clamp(42px,12vw,58px);margin:16px 0 14px}
  .front-copy>p:not(.eyebrow){max-width:34em;font-size:14px;line-height:1.65;margin-bottom:19px}
  .eyebrow{font-size:10px}
  .pill{padding:12px 17px;font-size:10px;gap:16px}
  .availability{font-size:10px;margin-top:13px}
  .front-photo{width:100%;height:clamp(300px,105vw,470px);min-height:0}
  .front-photo figcaption{font-size:10px;padding:9px 12px}
  .location-line{justify-content:flex-start;gap:7px 14px;padding:10px 0;font-size:8px;line-height:1.4}
  .location-line span{display:none}
  .services{padding:42px 0 38px;grid-template-columns:1fr;gap:22px}
  .services-title{grid-column:1}
  .services-title h2{font-size:clamp(34px,10vw,43px);margin:10px 0 13px}
  .outline-link{font-size:10px;padding:8px 13px}
  .services article{display:grid;grid-template-columns:minmax(100px,34%) 1fr;grid-template-rows:auto 1fr;align-items:center;column-gap:15px;min-height:120px}
  .service-image{grid-column:1;grid-row:1/3;height:120px}
  .services article h3{font-size:14px;align-self:end;margin:0 0 4px}
  .services article p{font-size:12px;line-height:1.55;align-self:start}
  .portfolio-gallery{padding:38px 0 44px}
  .gallery-heading{margin-bottom:18px}
  .gallery-heading h2{font-size:clamp(30px,9vw,40px)}
  .gallery-heading>p:last-child{font-size:12px;line-height:1.6}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .gallery-item img{aspect-ratio:3/4}
  .about-strip{margin:0 -5.5%;padding:46px 7%;grid-template-columns:1fr;row-gap:0}
  .about-strip .eyebrow{grid-column:1;grid-row:1;margin:0 0 13px}
  .about-strip h2{grid-column:1;grid-row:2;font-size:clamp(38px,11vw,48px);line-height:1.07;margin:0 0 18px}
  .about-description{grid-column:1;grid-row:3;font-size:14px;line-height:1.7;margin:0 0 20px}
  .about-link{grid-column:1;grid-row:4;padding:12px 17px;font-size:10px}
  .contact{padding:58px 7% 48px}
  .contact h2{font-size:clamp(38px,11vw,50px)}
  .contact>p:not(.eyebrow){font-size:14px;line-height:1.6}
  .contact-actions{flex-direction:column;gap:15px;font-size:12px}
  .contact-pill{padding:13px 18px}
  .handle{font-size:11px}
  footer{padding:18px 6%;display:grid;grid-template-columns:1fr 1fr;gap:12px}
  footer>*{font-size:10px!important}
  footer span,footer>a:not(.mini-wordmark){text-align:right}
  footer>a:last-child{grid-column:1/-1;text-align:left}
}
.services article{display:block;min-height:0;padding-top:12px;border-top:1px solid var(--mist)}
.services article h3{font-size:14px;margin:0 0 7px}
.services article p{font-size:12px;line-height:1.65}
@media(max-width:600px){.services article{padding-top:11px}.services article h3{font-size:14px;margin-bottom:5px}.services article p{font-size:12px}}
/* Hero portrait becomes a full-bleed background behind the copy. */
.front-hero{position:relative;isolation:isolate;display:block;min-height:460px;padding:0;overflow:hidden}
.front-photo{position:absolute;inset:0;z-index:0;width:100%;height:100%;min-height:0;margin:0}
.front-photo::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.52)}
.front-photo img{object-position:center 27%}
.front-photo figcaption{z-index:1;background:transparent;color:#fff;font-size:10px}
.front-copy{position:relative;z-index:1;width:min(58%,620px);min-height:460px;padding:58px 0 46px;display:flex;flex-direction:column;justify-content:center}
.front-hero:has(.front-photo:not([hidden])) .front-copy{color:#fff}
.front-hero:has(.front-photo:not([hidden])) .front-copy .eyebrow,
.front-hero:has(.front-photo:not([hidden])) .front-copy>p:not(.eyebrow),
.front-hero:has(.front-photo:not([hidden])) .availability{color:rgba(255,255,255,.9)}
.front-hero:has(.front-photo:not([hidden])) .front-copy h1 span{color:#e0b7a1}
.front-copy h1{font-size:clamp(48px,6.2vw,78px)}
.front-copy>p:not(.eyebrow){max-width:390px;font-size:14px}
.pill{align-self:flex-start}
@media(max-width:900px){.front-hero{min-height:410px}.front-copy{width:min(66%,620px);min-height:410px;padding:45px 0}.front-copy h1{font-size:clamp(42px,7vw,62px)}}
@media(max-width:600px){.front-hero{display:block;min-height:560px;padding:0}.front-copy{width:100%;min-height:560px;padding:48px 0 42px;justify-content:center}.front-copy h1{font-size:clamp(44px,12vw,60px)}.front-copy>p:not(.eyebrow){font-size:14px;max-width:34em}.front-photo{height:100%;min-height:0}.front-photo img{object-position:center 25%}}
.services{margin:0 -6%;padding:66px 6% 70px;background:#f3efec;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.services-title{grid-column:1/-1;margin-bottom:6px}
.services-title h2{font-size:clamp(38px,5vw,60px);margin:12px 0 13px}
.services-intro{max-width:490px;margin:0;color:#62584f;font-size:14px;line-height:1.7}
.services article{padding:22px 20px 24px;background:#fff;border:0;min-height:135px}
.services article h3{font-size:16px;margin:0 0 9px}
.services article p{font-size:13px;line-height:1.7}
@media(max-width:900px){.services{margin:0 -5.25%;padding:52px 5.25%;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.services-title{grid-column:1/-1}.services article{min-height:120px;padding:19px 17px}}
@media(max-width:600px){.services{margin:0 -5.5%;padding:44px 7% 48px;grid-template-columns:1fr;gap:12px}.services-title{grid-column:1;margin-bottom:8px}.services-title h2{font-size:clamp(38px,11vw,48px)}.services-intro{font-size:13px}.services article{min-height:0;padding:17px 16px}.services article h3{font-size:15px}.services article p{font-size:12px}}
.services-title h2 br{display:block!important}
.services-title h2{line-height:1.08;word-spacing:normal}
.services-intro{margin-top:14px}
@media(max-width:600px){.services{gap:15px;padding-top:50px;padding-bottom:54px}.services-title{margin-bottom:10px}.services-title h2{margin-bottom:0}.services-intro{margin-top:15px}.services article{padding:20px 17px}}
/* Hero redesign: protected copy area, stronger contrast, calmer type scale. */
.front-hero{min-height:520px}
.front-photo::after{background:rgba(0,0,0,.61)}
.front-copy{width:min(68%,680px);min-height:520px;padding:58px clamp(28px,5vw,66px) 50px}
.front-copy h1{max-width:12ch;font-size:clamp(46px,5.6vw,70px);line-height:1.04;letter-spacing:-.055em;margin:22px 0 20px}
.front-copy>p:not(.eyebrow){max-width:31em;font-size:15px;line-height:1.7;margin-bottom:23px}
.availability{margin-top:19px;font-size:10px;letter-spacing:.02em}
.front-photo figcaption{padding:14px 18px;font-size:11px}
@media(max-width:900px){.front-hero{min-height:500px}.front-copy{width:min(76%,680px);min-height:500px;padding:44px 30px}.front-copy h1{font-size:clamp(44px,7vw,60px)}}
@media(max-width:600px){
  .front-hero{min-height:600px}
  .front-copy{width:100%;min-height:600px;padding:42px 24px 44px;justify-content:center}
  .front-copy h1{max-width:11ch;font-size:clamp(42px,10.5vw,48px);line-height:1.08;margin:20px 0 18px}
  .front-copy>p:not(.eyebrow){max-width:29em;font-size:14px;line-height:1.7;margin-bottom:23px}
  .front-copy .eyebrow{font-size:9px;letter-spacing:.14em}
  .pill{padding:13px 17px;font-size:10px}
  .availability{font-size:10px;margin-top:17px}
  .front-photo{height:100%}
  .front-photo img{object-position:center 26%}
  .front-photo figcaption{padding:12px 15px;font-size:10px}
}
body{overflow-x:clip}
.composition{overflow:visible}
.front-hero{width:100vw;margin-left:calc((100% - 100vw)/2)}
.front-photo::after{background:rgba(0,0,0,.42)}
