:root {
  --ink:#452639; --paper:#fcf9f4; --pink:#e6bccc; --line:#d8ccd0;
  --muted:#735e67; --accent:#86556e; --surface:#efe5e8;
  --hover:#65374e; --on-dark:#f7edf2; --dark-line:#967989;
  --scroll-thumb:#86556e; --scroll-track:#efe5e8; --scroll-hover:#65374e; --scroll-active:#452639;
  --display:Georgia,'Times New Roman',serif; --body:Arial,Helvetica,sans-serif;
  --radius:6px; --space:clamp(24px,5vw,76px); --max:1360px;
}
* {box-sizing:border-box;scrollbar-width:auto;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}
*::-webkit-scrollbar{width:12px;height:12px}
*::-webkit-scrollbar-track{background:var(--scroll-track)}
*::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:3px solid var(--scroll-track);border-radius:8px}
*::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover)}
*::-webkit-scrollbar-thumb:active{background:var(--scroll-active)}
html{scroll-behavior:smooth;scrollbar-gutter:stable;scroll-padding-top:24px}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.75 var(--body)}
a{color:inherit;cursor:pointer;text-underline-offset:5px}
a:focus-visible{outline:3px solid var(--accent);outline-offset:6px;border-radius:2px}
a:active{opacity:.8}
h1,h2,h3,p,figure,dl,dd{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.12;text-wrap:balance}
em{font-weight:400}img{display:block;width:100%;height:auto}
section{scroll-margin-top:24px}main,header,footer{max-width:var(--max);margin-inline:auto}
.demo{text-align:center;font-size:.75rem;letter-spacing:.07em;padding:8px 20px;background:var(--ink);color:var(--paper)}
.demo span{margin:0 8px}
header{padding:28px var(--space);display:flex;justify-content:space-between;align-items:center;gap:24px}
.brand{font:2.2rem/1.1 var(--display);text-decoration:none;white-space:nowrap;letter-spacing:-.035em}
.brand span{display:block;font:.75rem/1.8 var(--body);letter-spacing:.16em;margin-top:6px}
.brand:hover{color:var(--accent)}
nav{display:flex;align-items:center;gap:30px;flex-wrap:wrap}
nav a{font-size:.875rem;text-decoration:none;padding:10px 0}
nav a:not(.nav-contact):hover{text-decoration:underline}
.button,.nav-contact{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:13px 24px;border:1px solid var(--ink);border-radius:var(--radius);font-size:.875rem;line-height:1.5;text-decoration:none;text-align:center;transition:background-color .18s,color .18s,border-color .18s}
.button{background:var(--ink);color:var(--paper);margin-top:30px;max-width:100%}
.button:hover{background:var(--hover);border-color:var(--hover)}
.nav-contact:hover{background:var(--ink);color:var(--paper)}
.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;padding:20px var(--space) 0}
.hero-copy{display:flex;flex-direction:column;align-items:flex-start;padding:48px 0 12px;min-width:0}
.eyebrow{font-size:.75rem;letter-spacing:.13em;font-weight:500;line-height:1.6}
h1{font-size:clamp(3rem,5.2vw,4.6rem);letter-spacing:-.045em;margin:28px 0;line-height:1.08}
h1 em,h2 em{color:var(--accent)}
.intro{max-width:390px;color:var(--muted);font-size:1.0625rem;line-height:1.8}
.text-link,.contact-details a{display:inline-flex;align-items:center;gap:16px;min-height:44px;max-width:100%;font-size:.875rem;line-height:1.5;text-decoration:none}
.text-link{margin-top:16px}
.text-link>span:first-child,.contact-details a>span:first-child{border-bottom:1px solid currentColor;padding-bottom:3px}
.text-link>span[aria-hidden],.contact-details a>span[aria-hidden]{flex-shrink:0}
.text-link:hover{color:var(--accent)}
.hero-foot{margin-top:auto;padding-top:36px;width:100%;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;font-size:.75rem;color:var(--muted)}
.hero-image{position:relative;min-height:610px;isolation:isolate;border-radius:150px 6px 6px 6px;overflow:hidden}
.hero-image img{position:absolute;height:100%;object-fit:cover;object-position:center 42%}
.hero-image:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,var(--ink));opacity:.85;z-index:0}
.hero-image figcaption{position:absolute;bottom:28px;left:30px;right:24px;z-index:1;color:var(--paper);font:italic 1.75rem/1.35 var(--display)}
.hero-image figcaption span{display:block;font:normal .75rem/1.6 var(--body);letter-spacing:.1em;margin-bottom:7px}
.section{padding:96px var(--space)}
.section-head{display:grid;grid-template-columns:1.6fr 1fr;gap:20px 60px;align-items:center}
.section-head .eyebrow{grid-column:1/-1;color:var(--muted)}
h2{font-size:clamp(2.25rem,3.7vw,3.4rem);letter-spacing:-.035em}
.section-head>p:last-child{color:var(--muted);max-width:330px}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;margin-top:44px}
.service-grid article{border-top:1px dashed var(--accent);padding-top:24px}
h3{font-size:1.65rem;margin-bottom:18px;letter-spacing:-.02em}
.service-grid p{color:var(--muted);max-width:340px}
.about{background:var(--surface);display:grid;grid-template-columns:.9fr 1.1fr;gap:9%;align-items:center}
.portrait{min-width:0}.portrait img{aspect-ratio:1;object-fit:cover;border-radius:var(--radius)}
.photo-label{display:block;padding-top:14px;font-size:.8125rem;color:var(--muted)}
.about-copy{min-width:0}.about-copy h2{margin:24px 0}
.about-copy>p:not(.eyebrow):not(.signature){color:var(--muted);margin-top:18px}
.about-copy .text-link{margin-top:24px}
.signature{display:block;width:fit-content;font:italic 2.75rem/1.3 var(--display);margin-top:30px;color:var(--accent)}
.gallery-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:9%;margin-top:40px;align-items:center}
.gallery-grid figure{min-width:0}.gallery-grid figure img{aspect-ratio:1;object-fit:contain}
.gallery-grid figure a{display:block;border-radius:var(--radius);overflow:hidden;transition:box-shadow .18s}
.gallery-grid figure a:hover{box-shadow:0 0 0 3px var(--accent)}
.gallery-grid figcaption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 18px;font-size:.8125rem;margin-top:14px;color:var(--muted)}
.gallery-grid figcaption span{white-space:nowrap}
.gallery-note{padding:36px 0;border-top:1px dashed var(--accent);border-bottom:1px dashed var(--accent)}
.gallery-note p{font:clamp(2rem,3.2vw,2.9rem)/1.4 var(--display);letter-spacing:-.03em}
.gallery-note em{color:var(--accent)}
.gallery-note>span{font-size:.75rem;letter-spacing:.08em;display:block;margin-top:26px;color:var(--muted)}
.contact{background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1.1fr 1fr;gap:12%}
.contact h2{font-size:clamp(2.5rem,4.5vw,4rem);margin:24px 0}
.contact h2 em{color:var(--pink)}
.contact>div>p:not(.eyebrow){color:var(--on-dark)}
.phone{display:inline-block;font:clamp(1.8rem,3vw,2.65rem)/1.4 var(--display);text-decoration:none;margin-top:24px;padding:8px 0;border-bottom:1px solid var(--dark-line)}
.phone:hover{color:var(--pink);border-color:var(--pink)}
.contact-details{display:flex;flex-direction:column;justify-content:center;gap:30px;min-width:0}
.contact-details>div{padding-top:24px;border-top:1px solid var(--dark-line)}
.contact-details h3{font:.875rem/1.5 var(--body);margin:0 0 14px}
.contact-details p{line-height:1.8}
.contact-details a{margin-top:12px}
.contact-details a:hover{color:var(--pink)}
.contact a:focus-visible{outline-color:var(--pink)}
.hours{font-size:1rem}.hours>div{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 20px;margin-top:8px}.hours dd{font-variant-numeric:tabular-nums}
footer{padding:40px var(--space);display:flex;justify-content:space-between;gap:25px;align-items:center;flex-wrap:wrap}
footer .brand{font-size:1.8rem}footer p{font:italic 1.0625rem var(--display)}footer>span{font-size:.75rem;color:var(--muted)}
.skip{position:fixed;top:-100px;left:16px;background:var(--paper);padding:12px 18px;z-index:10}.skip:focus{top:12px}
@media(max-width:1000px){
 nav{gap:18px}.hero{gap:24px}.hero-image{min-height:580px;border-top-left-radius:110px}
 .hero-copy{padding-top:32px}.hero-foot{flex-direction:column}.section-head{gap:18px 30px}
 .about{gap:6%}.contact{gap:7%}.service-grid{gap:24px}footer p{display:none}
}
@media(max-width:760px){
 header{flex-wrap:wrap;gap:16px;padding-block:24px}nav{width:100%;justify-content:space-between;gap:10px}
 .hero{grid-template-columns:1fr;gap:28px;padding-top:0}.hero-copy{padding-top:16px}
 h1{font-size:clamp(2.65rem,8vw,4.5rem)}.intro{max-width:520px}
 .hero-foot{flex-direction:row;padding-top:24px}.hero-image{min-height:0;height:clamp(380px,85vw,570px);border-top-left-radius:100px}
 .hero-image img{object-position:center 38%}.hero-image figcaption{font-size:1.5rem;left:24px;bottom:24px}
 .section{padding-block:64px}.section-head{grid-template-columns:1fr;gap:18px}.section-head>p:last-child{max-width:480px}
 .service-grid{grid-template-columns:1fr;gap:28px;margin-top:32px}.service-grid article{padding-top:22px}.service-grid p{max-width:520px}
 .about{grid-template-columns:1fr;gap:34px}.portrait{max-width:450px}.about-copy h2{margin-top:20px}
 .gallery-grid{grid-template-columns:1fr;gap:28px;margin-top:32px}.gallery-note{padding:28px 0}
 .contact{grid-template-columns:1fr;gap:40px}.contact-details{gap:28px}.phone{font-size:2rem}
 footer{padding-block:32px}footer>span{width:100%}
}
@media(max-width:390px){nav{gap:4px}nav a{font-size:.8125rem}.nav-contact{padding:12px}.brand{font-size:2rem}.eyebrow{letter-spacing:.07em}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media(forced-colors:active){*{scrollbar-color:auto}a:focus-visible{outline-color:Highlight}.button,.nav-contact{border:1px solid ButtonText}.hero-image:after{display:none}.hero-image figcaption{background:Canvas;color:CanvasText;padding:8px}}
