:root{--ink:#203d50;--body:#465965;--muted:#60717a;--paper:#fbfaf7;--line:#d9dfe1;--blue:#e9f0f3;--accent:#a45938;font-size:16px;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--body);font-family:Arial,Helvetica,sans-serif;line-height:1.7}a{color:inherit;text-decoration:none}button{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #b76a3d;outline-offset:6px}p{margin:0 0 1.25rem}h1,h2,h3{color:var(--ink);font-weight:400;line-height:1.13;margin:0}h1,h2,.brand-name{font-family:Georgia,'Times New Roman',serif}h1{font-size:clamp(2.75rem,4.8vw,4.6rem);letter-spacing:-.055em}h1 em{font-weight:400;color:#617b89}h2{font-size:clamp(2.15rem,3.25vw,3.25rem);letter-spacing:-.035em}h3{font-size:1.3rem;line-height:1.4}strong{font-weight:600;color:var(--ink)}.wrap{width:min(1200px,calc(100% - 96px));margin-inline:auto}.section{padding-block:105px}.eyebrow{font-size:.78rem;font-weight:600;letter-spacing:.17em;color:var(--ink);margin-bottom:1.6rem}.header{width:min(1344px,calc(100% - 80px));margin:auto;min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;flex-direction:column;line-height:1.2;flex-shrink:0}.brand-name{font-size:2rem;letter-spacing:-.04em;color:var(--ink)}.brand-dot{color:var(--accent)}.brand-sub{font-size:.64rem;letter-spacing:.14em;margin-top:8px;color:var(--muted)}nav{display:flex;align-items:center;gap:29px;font-size:.9rem}nav>a:not(.button):hover,.text-link:hover,.footer a:hover{text-decoration:underline;text-underline-offset:6px}.button{display:inline-flex;align-items:center;justify-content:center;gap:42px;padding:15px 24px;background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:5px;font-size:.95rem;font-weight:600;line-height:1.5;transition:background .2s,transform .2s}.button:hover{background:#31556a;transform:translateY(-2px)}.button span{font-size:1.3rem;line-height:1}.button.small{padding:12px 18px;gap:24px;font-size:.875rem}.hero{display:grid;grid-template-columns:1.4fr .85fr;gap:70px;align-items:center;padding-block:64px 72px}.hero-copy{padding-block:24px}.hero .eyebrow{display:flex;align-items:center;gap:10px;font-size:.75rem}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#648278}.hero-intro{font-size:1.08rem;line-height:1.8;max-width:510px;margin:28px 0}.booking-note{font-size:.8rem;color:var(--muted);margin:13px 0 0}.hero-foot{display:flex;flex-wrap:wrap;gap:24px;margin-top:43px;font-size:.8rem;border-top:1px solid var(--line);padding-top:20px}.hero-foot span:before{content:'✓';margin-right:8px;color:#547665}.portrait{position:relative;margin:0;align-self:stretch;min-height:530px;max-height:650px;overflow:hidden;border-radius:160px 160px 8px 8px;background:#dee3dd}.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 28%;display:block}.portrait figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(18,35,46,.9));padding:65px 28px 23px;color:white;display:flex;flex-direction:column}.portrait figcaption span:first-child{font-family:Georgia,serif;font-size:1.6rem}.portrait figcaption span:last-child{font-size:.78rem;margin-top:2px}.about{display:grid;grid-template-columns:1fr 1.4fr;gap:100px;border-top:1px solid var(--line)}.aside-note{max-width:280px;margin-top:30px;color:var(--muted)}.lead{font-size:1.25rem;line-height:1.65;color:var(--ink)}.about-content>p:not(.lead){font-size:1rem}details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:28px}summary{cursor:pointer;padding:20px 0;font-size:.95rem;color:var(--ink);display:flex;justify-content:space-between;gap:15px;list-style:none}summary::-webkit-details-marker{display:none}summary span{font-size:1.35rem;line-height:1}details[open] summary span{transform:rotate(45deg)}.details-body{padding-bottom:8px}.approach{background:var(--blue)}.section-top{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:end}.section-top>p{margin:0;max-width:490px}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;margin-top:64px}.principles article{border-top:1px solid #bdcbd1;padding-top:23px}.number{font-size:.8rem;color:#607984}.principles h3{margin:22px 0 15px;font-family:Georgia,serif;font-size:1.6rem}.principles p{margin:0;font-size:1rem}.meetings{display:grid;grid-template-columns:1fr 1.4fr;gap:100px}.meetings>div>p:not(.eyebrow){margin-top:25px;max-width:330px}.text-link{display:inline-block;font-size:.92rem;color:var(--ink);border-bottom:1px solid #9daeb6;padding-bottom:5px}.text-link span{margin-left:15px}.services article{display:flex;gap:25px;padding:25px 0;border-top:1px solid var(--line)}.services article:first-child{padding-top:0;border:0}.service-index{font-size:.8rem;color:var(--muted);padding-top:4px}.services h3{margin-bottom:10px}.services p{margin:0}.contact{background:var(--ink);color:#e1e8ed;border-radius:8px;padding:64px;display:grid;grid-template-columns:1.3fr 1fr;gap:80px}.contact .eyebrow{color:#b6c7d1}.contact h2,.contact h3{color:#fff}.contact-copy>p:not(.eyebrow){margin:25px 0}.button.light{background:var(--paper);color:var(--ink);border-color:var(--paper)}.button.light:hover{background:#e1e8ed}.address{border-left:1px solid #506776;padding-left:50px;align-self:center}.address-label{font-size:.75rem;letter-spacing:.12em;color:#b6c7d1}.address h3{font-family:Georgia,serif;font-size:1.65rem;margin:19px 0 8px}.address p{font-size:.9rem}.address address{font-style:normal;margin-bottom:25px}.address .text-link{color:#fff;font-size:.85rem}.footer{padding-block:38px;display:flex;align-items:center;justify-content:space-between;gap:24px}.footer .brand-name{font-size:1.5rem}.footer p{font-size:.78rem;margin:0}.footer>a:last-child{font-size:.8rem}.skip{position:absolute;left:16px;top:-100px;z-index:100;background:white;padding:15px}.skip:focus{top:10px}.menu-toggle{background:none;border:1px solid var(--line);border-radius:4px;padding:8px 12px;color:var(--ink)}.mobile-booking{display:none}
.menu-toggle{display:none}
@media(min-width:1400px){.hero{gap:100px}.portrait{max-width:430px}}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.header{width:calc(100% - 64px)}nav{gap:18px}.brand-name{font-size:1.7rem}.brand-sub{font-size:.58rem}.hero{gap:40px;grid-template-columns:1.3fr .9fr}.portrait{min-height:500px}.about,.meetings{gap:55px}.contact{padding:45px;gap:40px}.address{padding-left:30px}.section-top{gap:40px}}
@media(max-width:800px){html{scroll-padding-top:25px}.header{flex-wrap:wrap;padding-block:20px;min-height:90px;gap:15px}.menu-toggle:not([hidden]){display:block}.header nav{width:100%;flex-wrap:wrap;gap:20px;padding-top:12px}.header.js-menu nav:not(.is-open){display:none}.header .brand-name{font-size:1.7rem}.brand-sub{font-size:.6rem}.hero{grid-template-columns:1.2fr .85fr;gap:25px;padding-block:35px 55px}.hero h1{font-size:2.85rem}.hero .eyebrow{font-size:.65rem;letter-spacing:.08em}.hero-intro{font-size:1rem}.portrait{min-height:460px;border-radius:110px 110px 7px 7px}.hero-foot{gap:10px;margin-top:25px}.hero-foot span{display:block}.section{padding-block:70px}.about,.meetings{grid-template-columns:1fr;gap:30px}.aside-note{max-width:100%}.section-top{grid-template-columns:1fr;gap:25px}.principles{gap:25px;margin-top:40px}.principles h3{font-size:1.35rem}.contact{padding:35px;gap:30px;grid-template-columns:1fr 1fr}.contact h2{font-size:2.2rem}.footer{flex-wrap:wrap;justify-content:flex-start}.footer p{flex:1}.meetings>div>p:not(.eyebrow){max-width:540px}}
@media(max-width:560px){.wrap,.header{width:calc(100% - 40px)}.hero{grid-template-columns:1fr;gap:22px;padding-top:15px}.hero-copy{padding-bottom:5px}.hero h1{font-size:clamp(2.7rem,10.5vw,3.5rem)}.hero-intro{margin-block:24px}.hero .eyebrow{font-size:.68rem}.hero-foot{gap:22px;margin-top:28px}.portrait{height:425px;min-height:0;width:100%;border-radius:130px 130px 6px 6px}.portrait img{object-position:50% 27%}.portrait figcaption{padding:70px 24px 18px}.section{padding-block:56px}.eyebrow{margin-bottom:18px}.about{gap:22px}.aside-note{margin-top:23px}.lead{font-size:1.15rem}.principles{grid-template-columns:1fr;gap:30px}.principles article{display:grid;grid-template-columns:30px 1fr;column-gap:15px}.principles h3{margin:0 0 12px;font-size:1.5rem}.principles p{grid-column:2}.number{padding-top:5px}.services article{gap:16px}.contact{grid-template-columns:1fr;padding:30px 24px;gap:35px}.contact h2{font-size:2.45rem}.address{border-left:0;border-top:1px solid #506776;padding:28px 0 0}.footer{padding-block:30px 105px;gap:12px}.footer p{flex-basis:100%}.mobile-booking{display:block;position:fixed;bottom:0;left:0;right:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(251,250,247,.97);border-top:1px solid var(--line);z-index:10}.mobile-booking .button{width:100%;font-size:.875rem;padding:12px 16px;gap:15px}.booking-note{font-size:.78rem}.header nav{align-items:flex-start;gap:10px}.header nav>a{padding:8px 12px}.header nav>.button{width:100%}}
/* Quiet, organic linework frames the portrait without crossing the image. */
.portrait-scene{position:relative;isolation:isolate;align-self:stretch;min-width:0;--drift-x:0px;--drift-y:0px}
.portrait-scene .portrait{height:100%;width:100%;z-index:1;box-shadow:0 18px 44px -30px #203d5055}
.portrait-art{position:absolute;inset:-38px -37px -34px;z-index:-1;pointer-events:none;transform:translate(var(--drift-x),var(--drift-y));transition:transform 1.8s cubic-bezier(.2,.65,.3,1)}
.portrait-art:before{content:'';position:absolute;inset:13% -1% 9%;border-radius:50%;background:radial-gradient(ellipse,#dce7df77,transparent 69%)}
.portrait-art svg{height:100%;width:100%;overflow:visible}
.quiet-orbits{transform-origin:260px 340px;animation:quiet-orbit 28s ease-in-out infinite alternate}
.quiet-orbits-secondary{animation-duration:34s;animation-direction:alternate-reverse}
@keyframes quiet-orbit{from{transform:rotate(-4deg) scale(.98,1)}to{transform:rotate(5deg) scale(1.035,.975)}}
.motion-control{position:absolute;right:0;bottom:-33px;border:0;background:transparent;color:var(--muted);font-size:.68rem;letter-spacing:.02em;cursor:pointer;padding:5px 0;display:flex;gap:7px;align-items:center}
.motion-control[hidden]{display:none}.motion-control:hover{color:var(--ink)}
.motion-paused .quiet-orbits{animation-play-state:paused}.motion-paused .portrait-art{transform:none}
.reveal-pending{opacity:0;transform:translateY(16px)}
.reveal-pending.is-revealed{opacity:1;transform:none;transition:opacity .85s ease,transform .85s cubic-bezier(.2,.65,.3,1)}
@media(max-width:800px){.portrait-art{inset:-25px -20px -22px}}
@media(max-width:560px){.portrait-scene{margin:14px 12px 10px}.portrait-scene .portrait{height:425px}.portrait-art{inset:-25px -20px -22px}.motion-control{bottom:-30px}.quiet-orbits{animation-duration:34s}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}.quiet-orbits{animation:none}.portrait-art{transform:none}.reveal-pending{opacity:1;transform:none}.motion-control{display:none}}
.portrait-scene{height:clamp(530px,43vw,620px)}
.portrait-scene .portrait{min-height:0;max-height:none;max-width:none}
.portrait-art svg{overflow:hidden}
@media(max-width:1050px){.portrait-art{inset:-30px -22px}.portrait-scene{height:530px}}
@media(max-width:800px){.portrait-scene{height:480px}.portrait-art{inset:-25px -18px}}
@media(max-width:560px){.portrait-scene{height:425px}.portrait-art{inset:-25px -20px}}
/* A more legible frame, with the same slow rhythm. */
.portrait-art{inset:-44px -30px -40px}
.portrait-art svg{overflow:visible}
.quiet-orbits{stroke-width:1.65}
.quiet-orbits-secondary{stroke-width:1.1;opacity:.72}
.portrait-art:before{inset:4% -2%;background:radial-gradient(ellipse,#cbdcd377,transparent 72%)}
@keyframes quiet-orbit{from{transform:rotate(-6deg) scale(.995,1)}to{transform:rotate(7deg) scale(1.065,.99)}}
@media(max-width:1050px){.portrait-art{inset:-38px -18px -34px}}
@media(max-width:800px){.portrait-art{inset:-32px -14px}}
@media(max-width:560px){.portrait-art{inset:-32px -20px}.quiet-orbits{stroke-width:1.5}}
/* Open asymmetric contours sit beside the portrait, not behind it. */
.portrait-art{inset:-44px -20px -40px -95px}
.portrait-scene .portrait{width:calc(100% - 28px);margin-left:28px}
.quiet-orbits{stroke-width:2;opacity:.95}
.quiet-orbits-secondary{stroke-width:1.35;opacity:.8}
.portrait-art:before{inset:8% 8% 9% 0;background:radial-gradient(ellipse at 24% 55%,#bdcfc36b,transparent 67%)}
@media(max-width:1050px){.portrait-art{inset:-34px -10px -34px -65px}.portrait-scene .portrait{width:calc(100% - 35px);margin-left:35px}}
@media(max-width:800px){.portrait-art{inset:-30px -8px -30px -38px}.portrait-scene .portrait{width:calc(100% - 26px);margin-left:26px}}
@media(max-width:560px){.portrait-art{inset:-28px -6px -28px -12px}.portrait-scene .portrait{width:calc(100% - 44px);margin-left:44px}}
/* Balanced frame: visible breathing room without a broad decorative band. */
.portrait-art{inset:-36px -16px -32px -58px}
.portrait-scene .portrait{width:calc(100% - 14px);margin-left:14px}
.quiet-orbits{stroke-width:1.55;opacity:.85}
.quiet-orbits-secondary{stroke-width:1;opacity:.65}
.portrait-art:before{background:radial-gradient(ellipse at 24% 55%,#bdcfc32e,transparent 67%)}
@media(max-width:1050px){.portrait-art{inset:-30px -10px -28px -40px}.portrait-scene .portrait{width:calc(100% - 18px);margin-left:18px}}
@media(max-width:800px){.portrait-art{inset:-26px -8px -26px -25px}.portrait-scene .portrait{width:calc(100% - 15px);margin-left:15px}}
@media(max-width:560px){.portrait-art{inset:-25px -6px -25px -10px}.portrait-scene .portrait{width:calc(100% - 26px);margin-left:26px}}
.booking-widget{grid-column:1/-1;border-top:1px solid #506776;padding-top:40px;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.booking-widget-copy h3{font-family:Georgia,serif;font-size:2rem;margin-bottom:22px}.booking-widget-copy>p{max-width:360px}.booking-widget-copy .widget-notice{font-size:.8rem;color:#bdcbd3}
.booking-widget-panel{min-width:0;padding:22px;background:#fff;border-radius:10px;color:var(--body);box-shadow:0 10px 25px #10263222}
#booking-placeholder{text-align:center;padding:20px 0}#booking-placeholder>p{font-family:Georgia,serif;color:var(--ink);font-size:1.5rem;line-height:1.35;margin:18px 0 24px}.calendar-symbol{display:inline-grid;place-items:center;width:44px;height:44px;background:var(--blue);color:var(--ink);border-radius:50%;font-size:1.5rem}
#booking-embed{min-height:300px}#booking-embed[hidden],#booking-placeholder[hidden],#booking-status[hidden]{display:none}.booking-widget-panel iframe{max-width:100%!important;width:100%!important;border:0}.widget-direct{display:block;text-align:center;font-size:.78rem;text-decoration:underline;text-underline-offset:3px;margin-top:18px;color:var(--ink)}#booking-status{font-size:.8rem;margin:12px 0}
@media(max-width:800px){.booking-widget{gap:25px;grid-template-columns:1fr}.booking-widget-copy>p{max-width:none}.booking-widget-panel{width:100%;max-width:500px;justify-self:center}}
@media(max-width:560px){.booking-widget{padding-top:30px}.booking-widget-panel{padding:12px}.booking-widget .button{font-size:.85rem;padding:12px}}
