html { scroll-padding-top: 22px; }
body { padding-bottom: calc(94px + env(safe-area-inset-bottom, 0px)) !important; }
.motion,.gallery-motion,.care-motion,.n-pause,.floating-link { display:none !important; }
.welcome-top,.care-top { min-height: 36px; }
.gallery-foot { min-height: 8px; }
.bubble { transform-origin: center top; animation: bubble-swing 7s ease-in-out infinite; }
.bubble:nth-child(2) { animation-duration: 8.3s; animation-delay: -1.7s; }
.bubble:nth-child(3) { animation-duration: 7.7s; animation-delay: -3.9s; }
.bubble:nth-child(4) { animation-duration: 9s; animation-delay: -2.8s; }
@keyframes bubble-swing { 0%,100% { transform:translateX(-3px) rotate(-1deg) } 50% { transform:translateX(3px) rotate(1deg) } }
.care-waves path { animation: care-flow 8s ease-in-out infinite; transform-origin:center; }
.care-waves path:nth-child(2) { animation-duration:11s; animation-delay:-2s; }
.care-waves path:nth-child(3) { animation-duration:9s; animation-delay:-5s; }
.care-waves path:nth-child(4) { animation-duration:12s; animation-delay:-7s; }
.care-waves path:nth-child(5) { animation-duration:10s; animation-delay:-1s; }
@keyframes care-flow { 0%,100% { opacity:.1; transform:translateX(-3px) } 45% { opacity:.65; transform:translateX(3px) } 70% { opacity:.25; } }
.care-cta,.team-cta { margin:25px 26px 0; }
.inline-appointment { display:flex; align-items:center; justify-content:space-between; gap:20px; width:100%; min-height:52px; padding:13px 19px; background:#1c2632; color:#fff; border-radius:30px; font-size:12px; box-shadow:0 8px 20px #1c26321a; }
.inline-appointment span { font-size:22px; }
.appointment-v2 { padding:65px 0 70px; }
.appointment-v2 .n-title { margin-top:22px; }
.appointment-v2 .n-button { background:#8abab7; color:#1c2632; }
.reveal-on-scroll { opacity:0; transform:translateY(16px); transition:opacity .7s ease,transform .7s ease; }
.reveal-on-scroll.revealed { opacity:1; transform:translateY(0); }
.n-title em,.copy h2 em,.care-heading em { text-shadow:0 5px 25px #8abab72b; }
.n-footer { padding-bottom:65px; }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .bubble,.care-waves path,.care-icon:before { animation:none !important; } .reveal-on-scroll { opacity:1; transform:none; transition:none; } }

.reviews-v2 .review-cta { width:calc(100% - 52px); }
@media(max-width:360px) { .reviews-v2 .review-cta { width:calc(100% - 44px); margin-left:22px; margin-right:22px; } }

/* The original mobile composition is the starting point, with room to grow. */
html { scroll-padding-bottom:110px; }
body { background:#f1f5f2; }
.skip-link { position:fixed;left:16px;top:-80px;z-index:300;padding:14px 20px;border-radius:30px;background:#1c2632;color:#fff;font-size:14px; }
.skip-link:focus { top:16px; }
.gallery,.people-rail { scroll-behavior:auto;overflow-anchor:none;cursor:grab; }
.gallery.dragging,.people-rail.dragging { cursor:grabbing; }
.gallery > *,.people-rail > * { transform:translateX(var(--loop-drift,0px));user-select:none; }
.gallery img,.people-rail img { -webkit-user-drag:none; }
.spaces-cta { margin:28px 26px 4px; }
.inline-appointment,.n-button,.cta { transition:background-color .25s ease,box-shadow .25s ease; }
.inline-appointment:hover,.inline-appointment:focus-visible { background:#31555a;box-shadow:0 9px 26px #325b5b28; }
.inline-appointment span,.n-button span,.cta span { transition:transform .25s ease; }
.inline-appointment:hover span,.n-button:hover span,.cta:hover span { transform:translate(2px,-2px); }
.individual span { text-decoration:underline;text-decoration-color:#8abab76b;text-decoration-thickness:3px;text-underline-offset:7px; }
.copy h2 em,.care-heading h2 em { text-decoration:underline;text-decoration-color:#8abab74d;text-decoration-thickness:2px;text-underline-offset:5px; }
.care-icon svg { animation:care-ripple 7s ease-in-out infinite; }
.care-steps li:nth-child(2) .care-icon svg { animation-delay:-2.4s; }
.care-steps li:nth-child(3) .care-icon svg { animation-delay:-4.3s; }
.care-steps li:nth-child(4) .care-icon svg { animation-delay:-1.1s; }
.care-steps li:nth-child(5) .care-icon svg { animation-delay:-5.7s; }
.care-waves path { stroke-dasharray:140 38 78 16;animation:care-flow 8s ease-in-out infinite,care-trace 23s linear infinite; }
.care-waves path:nth-child(2) { stroke-dasharray:60 24 180 56;animation-duration:11s,31s;animation-delay:-2s,-11s; }
.care-waves path:nth-child(3) { stroke-dasharray:180 80 36 15;animation-duration:9s,27s;animation-delay:-5s,-18s; }
.care-waves path:nth-child(4) { stroke-dasharray:100 36 50 25;animation-duration:12s,34s;animation-delay:-7s,-6s; }
.care-waves path:nth-child(5) { stroke-dasharray:160 32 70 60;animation-duration:10s,29s;animation-delay:-1s,-14s; }
@keyframes care-ripple { 0%,100% { transform:translateY(-1px) rotate(-2deg); } 50% { transform:translateY(2px) rotate(2deg); } }
@keyframes care-trace { to { stroke-dashoffset:-1000; } }
@media(max-width:360px) { .spaces-cta { margin-inline:22px; } }
@media(min-width:600px) {
  body { padding-top:0; }
  .hero,.welcome,.care-study,.new-section,.n-footer { max-width:720px;box-shadow:none;border-radius:0; }
  .n-pad,.copy,.care-heading { padding-inline:48px; }
  .welcome-top,.spaces-head { padding-inline:48px; }
  .care-top { margin-inline:48px; }
  .gallery,.people-rail { padding-inline:48px; }
  .gallery figure { flex-basis:185px; }
  .gallery img { height:205px; }
  .tv2-rows { gap:14px; }
  .tv2-card { flex-basis:190px;min-height:170px; }
  .tv2-urgent { margin-inline:48px; }
  .care-cta,.team-cta,.spaces-cta,.team-signoff { margin-inline:48px; }
  .inline-appointment { max-width:430px; }
  .hero { min-height:950px; }
  .portrait { top:-200px; }
  .veil { background:linear-gradient(#ffffffea 0,#ffffff00 200px,#ffffff00 390px,#ffffffe6 580px,#fff 720px); }
  .message { margin-top:440px;padding-inline:48px; }
  h1 { font-size:48px;max-width:520px; }
  .intro { font-size:15px; }
  .hero .cta { max-width:430px; }
  .copy h2,.care-heading h2,.n-title { font-size:44px; }
  .lede,.care-heading p,.n-intro { font-size:15px; }
  .welcome { padding-top:52px; }
  .constellation { margin-block:42px; }
  .bubble { width:290px;font-size:14px; }
  .care-steps li { padding-left:48px;gap:34px; }
  .care-waves { width:440px; }
  .care-priorities { margin-inline:48px; }
  .reviews-v2 .review-card-v2 { flex-basis:430px; }
  .reviews-v2 .review-rail-v2 { padding-inline:48px; }
  .reviews-v2 .review-caption { margin-inline:48px; }
  .reviews-v2 .review-cta { margin-left:48px; }
  .location-v2 .location-grid { margin-inline:48px;grid-template-columns:2fr 1fr 1fr; }
  .location-v2 .place-photo { grid-column:auto; }
  .location-v2 .place-card { padding:22px 17px; }
  .location-v2 .place-photo,.location-v2 .place-photo img { min-height:248px;height:100%; }
  .location-v2 .location-link { margin-inline:48px;width:calc(100% - 96px);max-width:430px; }
  .location-v2 .place-address { margin-inline:48px; }
  .n-footer { padding-inline:48px; }
}
@media(min-width:1000px) {
  .hero,.welcome,.care-study,.new-section,.n-footer { max-width:1180px; }
  .hero { min-height:760px; }
  .hero header { padding-inline:64px; }
  .hero .logo { width:146px; }
  .portrait { width:56%;left:auto;right:0;top:-130px; }
  .veil { background:linear-gradient(90deg,#fff 0,#fff 43%,#ffffff00 72%),linear-gradient(0deg,#fff 0,#ffffff00 40%); }
  .message { margin-top:110px;padding-inline:64px;max-width:650px;padding-bottom:55px; }
  h1 { font-size:55px; }
  .bottom { max-width:430px; }
  .location { font-size:10px; }
  .shore { width:60%; }
  .welcome { display:grid;grid-template-columns:1fr 1fr;padding:60px 16px; }
  .welcome-top { grid-column:1/-1; }
  .copy { grid-column:1;align-self:center; }
  .constellation { grid-column:2;grid-row:2;margin:25px 0; }
  .individual { grid-column:2; }
  .spaces { grid-column:1/-1;margin-top:70px; }
  .spaces h3 { margin-left:48px;font-size:32px; }
  .spaces-cta { grid-column:1/-1; }
  .gallery figure { flex-basis:240px; }
  .gallery img { height:240px; }
  .care-study { display:grid;grid-template-columns:1fr 1fr;padding:65px 16px; }
  .care-top { grid-column:1/-1; }
  .care-heading { grid-column:1;align-self:center; }
  .care-route { grid-column:2;grid-row:2/5;margin-top:30px; }
  .care-priorities { grid-column:1;margin-top:35px; }
  .care-cta { grid-column:1;margin-top:22px; }
  .new-section { padding:75px 16px; }
  .n-pad { max-width:680px; }
  .tv2-card { flex-basis:215px;min-height:180px; }
  .tv2-urgent { max-width:720px;margin-top:40px;padding:28px 32px; }
  .person-card { flex-basis:380px;gap:22px; }
  .person-card>img { width:190px;height:300px; }
  .person-copy { width:160px; }
  .person-copy p { font-size:13px; }
  .person-copy h3 { font-size:27px; }
  .person-copy .pending { font-size:11px; }
  .person-copy small { font-size:9px; }
  .reviews-v2 .review-card-v2 { flex-basis:500px; }
  .reviews-v2 .review-cta { max-width:430px; }
  .appointment-v2 { padding:80px 16px; }
  .location-v2 .location-grid { grid-template-columns:2fr 1fr 1fr; }
  .location-v2 .place-card { padding:30px; }
  .location-v2 .place-card h3 { font-size:28px; }
  .location-v2 .place-card p { font-size:14px; }
  .n-footer { padding:35px 64px 70px; }
}
@media(prefers-reduced-motion:reduce) {
  .care-icon svg,.care-waves path { animation:none!important; }
  .inline-appointment,.n-button,.cta,.inline-appointment span,.n-button span,.cta span { transition:none; }
}
