:root {
  --paper:#f6f2eb;
  --ink:#342526;
  --wine:#571c2c;
  --wine-deep:#431522;
  --rose:#e4d6cd;
  --line:#d9cfc7;
  --muted:#756762;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Manrope',Arial,sans-serif
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:108px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:14px;
  line-height:1.8;
  -webkit-font-smoothing:antialiased
}
body.modal-open {
  overflow:hidden
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit;
  color:inherit;
  cursor:pointer
}
img {
  display:block;
  max-width:100%;
  height:auto
}
button,a,summary {
  -webkit-tap-highlight-color:transparent
}
a,button,summary {
  touch-action:manipulation
}
button:focus-visible,a:focus-visible,summary:focus-visible {
  outline:2px solid #b67c42;
  outline-offset:6px
}
::selection {
  background:var(--wine);
  color:var(--paper)
}
h1,h2,h3,p {
  margin:0
}
h1,h2 {
  font-weight:500;
  letter-spacing:-.055em;
  line-height:1.05
}
h2 {
  font-size:clamp(42px,4.2vw,65px)
}
h1 em,h2 em {
  font-family:var(--serif);
  font-weight:400;
  letter-spacing:-.045em
}
p+p {
  margin-top:18px
}
address {
  font-style:normal
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0)
}
.skip-link {
  position:fixed;
  top:10px;
  left:16px;
  background:var(--wine);
  color:#fff;
  padding:12px 24px;
  z-index:100;
  transform:translateY(-200%)
}
.skip-link:focus {
  transform:translateY(0)
}
[hidden] {
  display:none!important
}
.section-wrap {
  max-width:1440px;
  padding:100px 76px;
  margin:auto
}
.section-intro {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  margin-bottom:62px
}
.section-intro>p:last-child {
  font-size:12px;
  color:var(--muted)
}
.eyebrow {
  font-size:10px;
  font-weight:600;
  letter-spacing:.17em;
  line-height:1.6
}
.site-header {
  height:104px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:0 4.2%;
  background:rgba(246,242,235,.97);
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:30
}
.brand {
  font-family:var(--serif);
  font-size:52px;
  font-weight:500;
  line-height:.9;
  letter-spacing:-.07em;
  display:inline-flex;
  flex-direction:column;
  color:var(--wine)
}
.brand span {
  font:8px var(--sans);
  letter-spacing:.24em;
  margin-top:11px;
  padding-left:4px
}
.desktop-nav {
  display:flex;
  gap:35px;
  margin-left:55px;
  font-size:12px
}
.desktop-nav a {
  position:relative
}
.desktop-nav a:after {
  content:'';
  position:absolute;
  bottom:-6px;
  left:0;
  width:100%;
  height:1px;
  background:var(--wine);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s
}
.desktop-nav a:hover:after {
  transform:scaleX(1)
}
.header-cta {
  border:1px solid var(--wine);
  border-radius:2px;
  padding:10px 21px;
  font-size:12px;
  display:flex;
  gap:35px;
  align-items:center;
  transition:background .2s,color .2s
}
.header-cta span {
  font-size:21px;
  line-height:1
}
.header-cta:hover {
  background:var(--wine);
  color:var(--paper)
}
.menu-toggle {
  display:none
}
.mobile-nav {
  display:none
}
.hero {
  position:relative;
  display:grid;
  grid-template-columns:53% 47%;
  max-width:1600px;
  margin:auto;
  min-height:700px
}
.hero-copy {
  padding:68px 30px 35px 8%
}
.hero-copy>.eyebrow {
  display:flex;
  gap:11px;
  align-items:center
}
.tiny-star {
  font-size:22px;
  line-height:1;
  color:var(--wine)
}
h1 {
  font-size:clamp(63px,6.8vw,106px);
  margin-top:38px;
  position:relative;
  white-space:nowrap
}
h1 em {
  font-size:1.25em;
  line-height:1.07;
  color:var(--wine)
}
.heading-star {
  font-size:39px;
  font-weight:400;
  position:absolute;
  bottom:14px;
  right:13%;
  color:var(--wine)
}
.hero-description {
  margin-top:25px;
  color:var(--muted);
  font-size:14px;
  line-height:1.95
}
.button {
  display:inline-flex;
  align-items:center;
  gap:35px;
  justify-content:space-between;
  padding:17px 25px;
  font-size:12px;
  transition:background .25s,transform .25s
}
.button:hover {
  transform:translateY(-3px)
}
.button span {
  font-size:24px;
  line-height:1
}
.button-wine {
  background:var(--wine);
  color:var(--paper)
}
.button-wine:hover {
  background:var(--wine-deep)
}
.hero .button {
  margin-top:31px
}
.text-link {
  font-size:12px;
  display:inline-flex;
  gap:20px;
  align-items:center;
  padding-bottom:5px;
  border-bottom:1px solid currentColor;
  line-height:1.6
}
.text-link:hover {
  opacity:.7
}
.text-link span[aria-hidden] {
  font-size:19px;
  line-height:1
}
.hero-link {
  display:table;
  border-bottom:0;
  margin-top:19px;
  font-size:11px
}
.hero-link span {
  margin-left:24px
}
.hero-foot {
  display:flex;
  gap:23px;
  align-items:center;
  max-width:420px;
  border-top:1px solid var(--line);
  margin-top:46px;
  padding-top:24px
}
.year {
  font-family:var(--serif);
  font-size:39px;
  line-height:1;
  display:flex;
  flex-direction:column;
  position:relative
}
.year span {
  font:8px var(--sans);
  letter-spacing:.16em;
  order:-1;
  margin-bottom:5px
}
.hero-foot p {
  font-size:10px;
  line-height:1.8;
  color:var(--muted)
}
.scroll-link {
  margin-left:auto;
  width:39px;
  height:39px;
  border:1px solid var(--line);
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:19px
}
.hero-visual {
  position:relative;
  overflow:hidden;
  background:var(--wine);
  color:var(--paper)
}
.hero-visual picture,.hero-visual img {
  width:100%;
  height:100%;
  position:absolute;
  inset:0;
  object-fit:cover
}
.hero-visual img {
  object-position:center 50%
}
.hero-visual:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(35,6,13,.13),transparent 28%,transparent 65%,rgba(35,6,13,.6));
  pointer-events:none
}
.image-topline {
  position:absolute;
  z-index:1;
  top:33px;
  left:35px;
  font-size:9px;
  letter-spacing:.2em
}
.image-caption {
  position:absolute;
  z-index:1;
  left:35px;
  right:35px;
  bottom:86px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px
}
.image-caption>div {
  display:flex;
  flex-direction:column;
  gap:8px
}
.small-label {
  font-size:8px;
  letter-spacing:.19em
}
.image-caption #mood-title {
  font-family:var(--serif);
  font-style:italic;
  font-size:27px
}
.image-count {
  font-size:10px;
  letter-spacing:.12em;
  padding-bottom:6px
}
.mood-controls {
  position:absolute;
  z-index:2;
  left:35px;
  bottom:32px;
  display:flex;
  align-items:center;
  gap:9px
}
.mood-controls>span {
  font-size:8px;
  letter-spacing:.15em;
  margin-left:8px
}
.mood-swatch {
  height:30px;
  width:30px;
  border:1px solid transparent;
  position:relative;
  padding:0;
  border-radius:50%;
  background:transparent
}
.mood-swatch:after {
  content:'';
  position:absolute;
  inset:5px;
  background:#771c35;
  border-radius:50%;
  box-shadow:0 0 0 1px #fff5
}
.nude-swatch:after {
  background:#dbc4ae
}
.mood-swatch[aria-pressed=true] {
  border-color:currentColor
}
.editorial-label {
  position:absolute;
  right:24px;
  bottom:20px;
  z-index:2;
  font-size:8px;
  opacity:.85
}
.is-french .image-topline {
  color:var(--ink)
}
.hero-seal {
  position:absolute;
  z-index:3;
  top:46%;
  left:calc(53% - 48px);
  width:96px;
  height:96px;
  border-radius:50%;
  background:var(--paper);
  color:var(--wine);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  outline:1px solid var(--paper);
  outline-offset:6px;
  transform:rotate(-14deg);
  box-shadow:0 3px 25px #2d131211
}
.hero-seal span {
  font-size:7px;
  letter-spacing:.15em
}
.hero-seal b {
  font:italic 43px var(--serif);
  line-height:1.1
}
.promise-strip {
  background:#eae2d9;
  display:flex;
  justify-content:space-around;
  align-items:center;
  gap:20px;
  padding:21px 4%;
  border-bottom:1px solid var(--line);
  font-size:9px;
  font-weight:500;
  letter-spacing:.17em
}
.promise-strip i {
  font-style:normal;
  color:var(--wine);
  font-size:22px;
  line-height:1
}
.philosophy-grid {
  display:grid;
  grid-template-columns:43% 1fr;
  gap:10%
}
.philosophy-photo {
  position:relative;
  align-self:start
}
.philosophy-photo img {
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover
}
.photo-note {
  position:absolute;
  bottom:26px;
  left:24px;
  font-size:9px;
  letter-spacing:.13em;
  color:#3f3026
}
.photo-credit {
  position:absolute;
  right:13px;
  top:13px;
  font-size:8px;
  color:#3f3026
}
.philosophy-copy {
  padding-top:17px
}
.philosophy-copy h2 {
  font-size:clamp(40px,4vw,61px);
  margin-bottom:30px
}
.philosophy-copy>p {
  color:var(--muted);
  max-width:440px;
  font-size:13px;
  line-height:1.9
}
.philosophy-copy>p:first-of-type {
  color:var(--ink)
}
.founder-sign {
  display:flex;
  gap:25px;
  align-items:center;
  margin:25px 0 28px
}
.founder-sign>span {
  font:italic 42px var(--serif);
  color:var(--wine);
  transform:rotate(-8deg)
}
.founder-sign>div {
  font-size:8px;
  line-height:2;
  letter-spacing:.09em
}
.studio-values {
  border-top:1px solid var(--line);
  display:flex;
  flex-direction:column;
  padding-top:15px;
  gap:7px;
  font-size:9px;
  color:#9c8780
}
.studio-values b {
  font-size:11px;
  font-weight:400;
  color:var(--ink);
  margin-left:20px
}
.services {
  background:var(--wine);
  color:var(--paper)
}
.services .section-intro>p:last-child {
  color:#d3b9be
}
.services-heading {
  display:flex;
  justify-content:space-between;
  gap:40px;
  align-items:flex-end;
  margin-bottom:54px
}
.services-heading h2 {
  font-size:clamp(42px,4.9vw,73px)
}
.services-heading>p {
  font-size:12px;
  line-height:1.9;
  color:#ddc7c9;
  padding-bottom:8px;
  max-width:300px
}
.service {
  border-top:1px solid #ffffff36
}
.service:last-child {
  border-bottom:1px solid #ffffff36
}
summary {
  cursor:pointer;
  list-style:none
}
summary::-webkit-details-marker {
  display:none
}
.service summary {
  display:grid;
  grid-template-columns:60px 1fr auto 32px;
  align-items:center;
  gap:20px;
  padding:26px 0
}
.service-number {
  font-size:11px;
  color:#c7a9af
}
.service-name {
  font-family:var(--serif);
  font-size:35px;
  line-height:1.1;
  letter-spacing:-.02em
}
.service-name small {
  display:block;
  font:8px var(--sans);
  letter-spacing:.17em;
  margin-top:10px;
  color:#c7a9af
}
.price {
  font-family:var(--serif);
  font-size:38px;
  line-height:1.1
}
.price small {
  font:14px var(--sans)
}
.art-price {
  font-size:30px
}
.art-price small {
  font-size:10px
}
.plus {
  width:18px;
  height:18px;
  position:relative;
  display:block;
  justify-self:end;
  flex-shrink:0
}
.plus:before,.plus:after {
  content:'';
  position:absolute;
  background:currentColor;
  top:8px;
  left:1px;
  width:16px;
  height:1px;
  transition:transform .25s
}
.plus:after {
  transform:rotate(90deg)
}
details[open]>summary .plus:after {
  transform:rotate(0)
}
.service-body {
  padding:0 72px 28px 80px;
  max-width:750px;
  display:grid;
  gap:15px;
  color:#ddc7c9;
  font-size:12px
}
.service-body .text-link {
  justify-self:start;
  color:var(--paper);
  font-size:11px
}
.price-footnote {
  display:flex;
  justify-content:space-between;
  gap:30px;
  margin-top:28px;
  align-items:flex-start
}
.price-footnote>span {
  font:italic 23px var(--serif);
  color:#e8ccd0
}
.price-footnote>p {
  font-size:9px;
  line-height:1.8;
  color:#d3b9be;
  text-align:right;
  max-width:360px
}
.gallery-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:44px;
  gap:35px
}
.gallery-heading>p {
  font-size:12px;
  line-height:1.9
}
.muted {
  color:var(--muted);
  font-size:10px
}
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px
}
.gallery-item:nth-child(even) {
  padding-top:43px
}
.gallery-image {
  position:relative;
  aspect-ratio:1/1.17;
  background:#e7ded5;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center
}
.gallery-image img {
  width:100%;
  height:100%;
  object-fit:contain;
  transition:transform .5s;
  padding:10px
}
.gallery-item:hover img {
  transform:scale(1.035)
}
.gallery-image>span {
  position:absolute;
  right:12px;
  bottom:12px;
  background:var(--paper);
  color:var(--wine);
  border-radius:50%;
  height:32px;
  width:32px;
  display:grid;
  place-items:center;
  font-size:18px
}
.gallery-caption {
  display:flex;
  flex-direction:column;
  margin-top:16px;
  gap:3px
}
.gallery-caption>span {
  font:23px var(--serif)
}
.gallery-caption small {
  font-size:8px;
  letter-spacing:.12em;
  color:var(--muted)
}
.gallery-invite {
  margin-top:45px;
  border-top:1px solid var(--line);
  padding-top:22px;
  text-align:center;
  font-size:12px
}
.gallery-invite a {
  margin-left:15px
}
.faq {
  padding-top:30px;
  padding-bottom:110px;
  display:grid;
  grid-template-columns:42% 1fr;
  gap:8%
}
.faq h2 {
  font-size:44px;
  margin-top:22px
}
.faq-list {
  border-top:1px solid var(--line)
}
.faq-list details {
  border-bottom:1px solid var(--line)
}
.faq-list summary {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  font-size:12px;
  padding:22px 0
}
.faq-list details>div {
  padding:0 30px 23px 0;
  font-size:12px;
  color:var(--muted)
}
.faq-list p a {
  text-decoration:underline;
  text-underline-offset:4px
}
.contact {
  background:#e8ddd3
}
.contact .section-wrap {
  padding-top:64px;
  padding-bottom:74px
}
.contact .section-intro {
  margin-bottom:40px
}
.contact-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-bottom:45px;
  border-bottom:1px solid #cbbab0
}
.contact-heading h2 {
  font-size:clamp(48px,5.5vw,82px)
}
.contact-star {
  font-size:110px;
  line-height:1;
  color:var(--wine);
  margin-right:50px
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9%;
  margin-top:38px
}
.contact-action>p {
  font-size:12px;
  color:var(--muted);
  max-width:350px
}
.contact-phone {
  font-size:clamp(23px,2.7vw,39px);
  font-weight:500;
  letter-spacing:-.035em;
  display:flex;
  align-items:center;
  justify-content:space-between;
  max-width:430px;
  margin:17px 0 16px;
  color:var(--wine)
}
.contact-phone:hover {
  opacity:.7
}
.contact-phone span {
  font-size:32px
}
.contact-action>.text-link {
  font-size:11px
}
.appointment-note {
  display:block;
  margin-top:20px;
  font-size:10px;
  color:var(--muted)
}
.contact-details {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px
}
.contact-details h3 {
  font-size:8px;
  font-weight:600;
  letter-spacing:.12em;
  margin-bottom:16px
}
.contact-details address {
  font-size:11px;
  line-height:2
}
.contact-details .text-link {
  font-size:10px;
  margin-top:12px
}
.hours {
  margin:0;
  font-size:10px
}
.hours>div {
  margin-bottom:7px
}
.hours dd {
  margin:0;
  color:var(--muted)
}
.hours-note {
  font-size:9px;
  color:var(--muted);
  line-height:1.8;
  margin-top:12px
}
.site-footer {
  padding-top:46px;
  padding-bottom:30px
}
.footer-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  padding-bottom:35px
}
.footer-top>.brand {
  font-size:43px
}
.footer-top>p {
  font-size:10px;
  color:var(--muted)
}
.back-top {
  border:1px solid var(--line);
  border-radius:50%;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  font-size:20px
}
.footer-bottom {
  border-top:1px solid var(--line);
  padding-top:21px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  font-size:9px;
  color:var(--muted)
}
.footer-bottom nav {
  display:flex;
  gap:23px
}
.footer-bottom nav a:hover {
  text-decoration:underline
}
.footer-bottom>span:last-child {
  font-size:7px;
  letter-spacing:.1em
}
.legal {
  margin-top:35px
}
.legal>details {
  border-top:1px solid var(--line);
  scroll-margin-top:20px
}
.legal>details:last-child {
  border-bottom:1px solid var(--line)
}
.legal>details>summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:13px 0;
  font-size:10px;
  color:var(--muted)
}
.legal .plus {
  transform:scale(.65)
}
.legal-content {
  max-width:790px;
  padding:20px 0 35px;
  font-size:12px;
  color:var(--muted);
  line-height:1.9
}
.legal-content h3 {
  color:var(--ink);
  font-size:14px;
  margin:24px 0 10px
}
.legal-content h3:first-child {
  margin-top:0
}
.legal-content a {
  text-decoration:underline;
  text-underline-offset:3px
}
.legal-deployment-note {
  border-left:2px solid var(--wine);
  padding:8px 16px;
  background:#ebe2da
}
.lightbox {
  border:0;
  background:var(--paper);
  color:var(--ink);
  padding:55px 24px 20px;
  max-width:min(850px,92vw);
  max-height:92dvh;
  overflow:auto
}
.lightbox::backdrop {
  background:#201317d9;
  backdrop-filter:blur(5px)
}
.lightbox img {
  max-height:70dvh;
  width:auto;
  margin:auto;
  object-fit:contain
}
.lightbox-close {
  position:absolute;
  right:17px;
  top:10px;
  background:none;
  border:0;
  font-size:11px;
  display:flex;
  align-items:center;
  gap:20px;
  padding:5px 8px
}
.lightbox-close span {
  font-size:27px
}
.lightbox-caption {
  text-align:center;
  font-size:11px;
  margin-top:16px
}
.will-reveal {
  opacity:.01;
  transform:translateY(18px);
  transition:opacity .7s,transform .7s
}
.will-reveal.is-visible {
  opacity:1;
  transform:none
}
@media(min-width:1600px) {
  .hero-copy {
    padding-left:90px
  }
  .hero {
    min-height:790px
  }
  h1 {
    font-size:108px
  }
  .hero-description {
    font-size:16px
  }
  .hero-foot {
    margin-top:65px
  }
}
@media(max-width:1100px) {
  .site-header {
    padding:0 30px
  }
  .desktop-nav {
    margin-left:0;
    gap:22px
  }
  .section-wrap {
    padding:75px 40px
  }
  .hero {
    min-height:665px
  }
  .hero-copy {
    padding:55px 30px 28px 40px
  }
  .hero-copy>.eyebrow {
    font-size:8px
  }
  h1 {
    font-size:6.6vw
  }
  .hero-description {
    font-size:12px
  }
  .heading-star {
    right:8%;
    font-size:30px
  }
  .hero-foot {
    margin-top:38px
  }
  .hero-seal {
    width:78px;
    height:78px;
    left:calc(53% - 39px)
  }
  .hero-seal b {
    font-size:34px
  }
  .philosophy-grid {
    gap:7%;
    grid-template-columns:43% 1fr
  }
  .philosophy-copy {
    padding-top:0
  }
  .philosophy-copy>p {
    font-size:12px
  }
  .philosophy-copy h2 {
    margin-bottom:22px
  }
  .founder-sign {
    margin:18px 0
  }
  .services-heading {
    gap:24px
  }
  .services-heading>p {
    max-width:220px;
    font-size:10px
  }
  .contact-grid {
    gap:7%;
    grid-template-columns:47% 1fr
  }
  .contact-details {
    gap:23px;
    grid-template-columns:1fr
  }
  .contact-details>div {
    max-width:320px
  }
  .hours>div {
    display:flex;
    justify-content:space-between;
    gap:25px
  }
  .contact-star {
    margin-right:15px
  }
  .gallery-grid {
    gap:14px
  }
  .gallery-caption>span {
    font-size:20px
  }
  .gallery-caption small {
    font-size:7px
  }
  .faq {
    gap:6%;
    padding-top:15px
  }
  .faq h2 {
    font-size:37px
  }
  .section-intro {
    margin-bottom:45px
  }
}
@media(max-width:760px) {
  html {
    scroll-padding-top:90px
  }
  .site-header {
    height:82px;
    padding:0 22px;
    gap:16px
  }
  .brand {
    font-size:43px
  }
  .brand span {
    font-size:6px;
    margin-top:8px
  }
  .desktop-nav {
    display:none
  }
  .header-cta {
    margin-left:auto;
    padding:8px 12px;
    gap:18px;
    font-size:10px
  }
  .header-cta span {
    font-size:18px
  }
  .menu-toggle {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    width:36px;
    height:42px;
    background:none;
    border:0;
    padding:8px
  }
  .menu-toggle span {
    width:20px;
    height:1px;
    background:var(--ink);
    transition:transform .2s
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(3.5px) rotate(45deg)
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-3.5px) rotate(-45deg)
  }
  .mobile-nav {
    display:flex;
    position:absolute;
    top:82px;
    left:0;
    right:0;
    flex-direction:column;
    background:var(--paper);
    padding:15px 24px 30px;
    border-bottom:1px solid var(--line);
    box-shadow:0 15px 20px #34252615
  }
  .mobile-nav a {
    display:flex;
    justify-content:space-between;
    font:29px var(--serif);
    padding:15px 0;
    border-bottom:1px solid var(--line)
  }
  .mobile-nav a span {
    font:9px var(--sans);
    align-self:center;
    color:var(--muted)
  }
  .hero {
    display:flex;
    flex-direction:column;
    min-height:0
  }
  .hero-copy {
    padding:41px 26px 32px
  }
  .hero-copy>.eyebrow {
    font-size:8px;
    letter-spacing:.14em;
    gap:8px
  }
  .tiny-star {
    font-size:19px
  }
  h1 {
    font-size:clamp(55px,10.6vw,80px);
    margin-top:24px;
    max-width:560px
  }
  h1 em {
    font-size:1.22em
  }
  .heading-star {
    right:13%;
    bottom:8px;
    font-size:31px
  }
  .hero-description {
    font-size:12px;
    line-height:1.9;
    margin-top:20px
  }
  .hero .button {
    margin-top:23px;
    padding:15px 20px;
    font-size:11px
  }
  .hero-link {
    margin-top:16px;
    font-size:10px
  }
  .hero-foot {
    margin-top:26px;
    padding-top:18px;
    max-width:none
  }
  .year {
    font-size:33px
  }
  .hero-foot p {
    font-size:9px
  }
  .hero-visual {
    height:560px;
    min-height:0
  }
  .hero-visual img {
    object-position:50% 57%
  }
  .hero-seal {
    top:auto;
    bottom:521px;
    left:auto;
    right:26px;
    width:78px;
    height:78px
  }
  .image-topline {
    top:26px;
    left:26px;
    font-size:8px
  }
  .image-caption {
    left:26px;
    right:26px;
    bottom:78px
  }
  .mood-controls {
    left:26px;
    bottom:27px
  }
  .image-caption #mood-title {
    font-size:27px
  }
  .editorial-label {
    font-size:7px;
    right:20px;
    bottom:14px
  }
  .promise-strip {
    padding:16px 20px;
    gap:13px;
    flex-wrap:wrap;
    justify-content:center
  }
  .promise-strip span {
    font-size:7px;
    letter-spacing:.1em
  }
  .promise-strip i {
    font-size:16px
  }
  .promise-strip span:nth-of-type(4),.promise-strip i:last-child {
    display:none
  }
  .section-wrap {
    padding:60px 26px
  }
  .section-intro {
    margin-bottom:32px;
    gap:15px;
    align-items:flex-start
  }
  .section-intro>p:last-child {
    font-size:9px;
    max-width:155px;
    text-align:right
  }
  .eyebrow {
    font-size:8px;
    letter-spacing:.14em
  }
  .philosophy-grid {
    display:flex;
    flex-direction:column;
    gap:34px
  }
  .philosophy-photo {
    width:100%;
    max-width:480px;
    align-self:center
  }
  .philosophy-photo img {
    aspect-ratio:4/4.4;
    object-position:center 59%
  }
  .philosophy-copy h2 {
    font-size:47px
  }
  .philosophy-copy>p {
    font-size:12px;
    max-width:none
  }
  .founder-sign {
    margin:22px 0
  }
  .studio-values {
    padding-top:19px;
    gap:10px
  }
  .services-heading {
    display:block;
    margin-bottom:30px
  }
  .services-heading h2 {
    font-size:45px;
    max-width:530px
  }
  .services-heading>p {
    margin-top:23px;
    max-width:none;
    font-size:11px
  }
  .service summary {
    grid-template-columns:23px 1fr auto 15px;
    gap:9px;
    padding:25px 0
  }
  .service-number {
    font-size:9px
  }
  .service-name {
    font-size:28px
  }
  .service-name small {
    font-size:6px;
    letter-spacing:.09em;
    line-height:1.7;
    max-width:175px;
    margin-top:7px
  }
  .price {
    font-size:30px
  }
  .price small {
    font-size:11px
  }
  .art-price {
    font-size:23px
  }
  .art-price small {
    display:block;
    text-align:right;
    font-size:8px;
    margin-top:4px
  }
  .plus {
    width:15px;
    height:15px
  }
  .plus:before,.plus:after {
    width:13px
  }
  .service-body {
    padding:0 16px 24px 32px;
    font-size:11px
  }
  .service-body .text-link {
    font-size:10px
  }
  .price-footnote {
    display:block;
    margin-top:22px
  }
  .price-footnote>span {
    font-size:21px
  }
  .price-footnote>p {
    text-align:left;
    font-size:8px;
    margin-top:13px;
    max-width:none
  }
  .gallery-heading {
    display:block;
    margin-bottom:28px
  }
  .gallery-heading h2 {
    font-size:49px
  }
  .gallery-heading>p {
    font-size:11px;
    margin-top:23px
  }
  .gallery-grid {
    grid-template-columns:1fr 1fr;
    gap:24px 15px
  }
  .gallery-item:nth-child(even) {
    padding-top:25px
  }
  .gallery-image {
    aspect-ratio:1/1.15
  }
  .gallery-image img {
    padding:6px
  }
  .gallery-caption {
    margin-top:12px
  }
  .gallery-caption>span {
    font-size:22px;
    line-height:1.1
  }
  .gallery-caption small {
    font-size:7px;
    margin-top:5px
  }
  .gallery-invite {
    font-size:11px;
    margin-top:27px
  }
  .gallery-invite a {
    font-size:11px;
    margin:8px 0 0
  }
  .faq {
    display:block;
    padding-top:10px;
    padding-bottom:60px
  }
  .faq h2 {
    font-size:43px;
    margin:18px 0 30px
  }
  .faq-list summary {
    font-size:11px;
    padding:20px 0
  }
  .faq-list details>div {
    font-size:11px
  }
  .contact .section-wrap {
    padding:45px 26px
  }
  .contact .section-intro {
    margin-bottom:29px
  }
  .contact-heading {
    padding-bottom:30px;
    position:relative
  }
  .contact-heading h2 {
    font-size:clamp(40px,8vw,60px)
  }
  .contact-star {
    font-size:34px;
    position:absolute;
    right:0;
    top:-3px;
    margin:0
  }
  .contact-grid {
    display:block;
    margin-top:28px
  }
  .contact-action>p {
    font-size:11px
  }
  .contact-phone {
    font-size:32px;
    max-width:380px
  }
  .contact-action>.text-link {
    font-size:10px
  }
  .contact-details {
    grid-template-columns:1fr 1fr;
    gap:20px;
    margin-top:36px;
    border-top:1px solid #cbbab0;
    padding-top:28px
  }
  .contact-details h3 {
    font-size:7px;
    letter-spacing:.08em;
    margin-bottom:12px
  }
  .contact-details address {
    font-size:10px
  }
  .hours>div {
    display:block;
    font-size:9px
  }
  .hours-note {
    font-size:8px
  }
  .contact-details .text-link {
    font-size:9px
  }
  .site-footer {
    padding:36px 26px 24px
  }
  .footer-top {
    flex-wrap:wrap;
    gap:22px;
    padding-bottom:25px
  }
  .footer-top>.brand {
    font-size:42px
  }
  .footer-top>p {
    order:3;
    width:100%;
    font-size:9px
  }
  .back-top {
    margin-left:auto
  }
  .footer-bottom {
    flex-wrap:wrap;
    gap:16px;
    font-size:8px
  }
  .footer-bottom nav {
    gap:17px
  }
  .footer-bottom>span:last-child {
    display:none
  }
  .legal {
    margin-top:25px
  }
  .legal>details {
    scroll-margin-top:20px
  }
  .legal-content {
    font-size:11px
  }
  .legal-content h3 {
    font-size:13px
  }
  .lightbox {
    padding:50px 15px 20px
  }
  .lightbox-caption {
    font-size:10px
  }
  .lightbox img {
    max-height:65dvh
  }
}
@media(max-width:380px) {
  .site-header {
    padding:0 16px;
    gap:9px
  }
  .header-cta {
    gap:10px;
    padding:7px 10px
  }
  .hero-copy {
    padding-left:21px;
    padding-right:21px
  }
  h1 {
    font-size:52px
  }
  .hero-copy>.eyebrow {
    font-size:7px
  }
  .hero-visual {
    height:485px
  }
  .hero-seal {
    bottom:446px
  }
  .section-wrap {
    padding-left:21px;
    padding-right:21px
  }
  .service-name {
    font-size:23px
  }
  .service-name small {
    font-size:5.6px
  }
  .price {
    font-size:26px
  }
  .art-price {
    font-size:20px
  }
  .services-heading h2 {
    font-size:39px
  }
  .gallery-caption>span {
    font-size:20px
  }
  .contact .section-wrap {
    padding-left:21px;
    padding-right:21px
  }
  .contact-phone {
    font-size:28px
  }
  .contact-star {
    display:none
  }
  .promise-strip {
    gap:10px
  }
  .promise-strip span {
    font-size:6px
  }
  .philosophy-copy h2 {
    font-size:42px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important
  }
  .will-reveal {
    opacity:1;
    transform:none
  }
}
.request-price {
  font-family:var(--sans);
  font-size:12px;
  font-weight:400;
  color:#ddc7c9
}
.contact-studio-name {
  color:var(--wine)
}
.contact .hours>div {
  display:block
}
.contact .hours dd {
  font-family:var(--serif);
  font-size:27px;
  color:var(--wine);
  line-height:1.4;
  margin-top:8px;
  white-space:nowrap
}
.contact .hours dd span {
  font:10px var(--sans)
}
.appointment-note {
  border-left:1px solid #b69b91;
  padding-left:16px;
  margin:24px 0 20px;
  max-width:430px
}
.appointment-label {
  font-size:8px;
  letter-spacing:.13em;
  font-weight:600;
  color:var(--wine)
}
.appointment-note p {
  font-size:10px;
  line-height:1.9;
  margin-top:7px;
  color:var(--ink)
}
.general-email {
  color:var(--muted)
}
@media(max-width:760px) {
  .request-price {
    font-size:8px;
    max-width:66px;
    line-height:1.6;
    text-align:right
  }
  .contact .hours dd {
    font-size:23px
  }
  .appointment-note p {
    font-size:10px
  }
  .appointment-label {
    font-size:7px
  }
}
@media(max-width:340px) {
  h1 {
    font-size:45px
  }
  .heading-star {
    font-size:26px;
    right:8%
  }
  .service-name {
    font-size:21px
  }
  .contact-details {
    grid-template-columns:1fr
  }
  .hours>div {
    display:flex;
    justify-content:space-between
  }
}
@media print {
  .site-header {
    position:static
  }
  .menu-toggle,.header-cta,.promise-strip,.hero-seal,.mood-controls,.back-top {
    display:none
  }
  .hero {
    min-height:0
  }
  .hero-copy {
    padding:25px
  }
  .hero-visual {
    min-height:400px
  }
  h1 {
    font-size:50px
  }
  .section-wrap {
    padding:25px
  }
  .services {
    color:#222;
    background:white
  }
  .services * {
    color:#222!important
  }
  .will-reveal {
    opacity:1;
    transform:none
  }
  .contact {
    background:#eee
  }
  .lightbox {
    display:none
  }
  .legal-content {
    font-size:10px
  }
}
.contact-action>p {
  font-size:13px
}
.contact-details address {
  font-size:12px
}
.contact .hours dt {
  font-size:11px
}
.appointment-note p {
  font-size:12px
}
.contact-action>.general-email {
  font-size:11px
}
.gallery-image {
  aspect-ratio:4/5
}
.gallery-image img {
  padding:0;
  object-fit:cover
}
.gallery-image>span {
  background:rgba(246,242,235,.95)
}
@media(max-width:760px) {
  .contact-star {
    top:auto;
    bottom:34px;
    font-size:28px
  }
  .contact-action>p {
    font-size:12px
  }
  .contact-details address {
    font-size:11px
  }
  .appointment-note p {
    font-size:11px
  }
  .contact-action>.general-email {
    font-size:10px
  }
}
/* Botanical editorial direction: readable type, tactile imagery, scroll-led menu. */
.no-unfold-motion .service-unfold {
  transition:none!important
}
.hero-visual .image-topline {
  max-width:240px
}
@media(max-width:760px) {
  .hero-visual .image-topline {
    max-width:175px;
    line-height:1.8
  }
  .services-editorial .service-heading-orchid {
    top:110px;
    right:-130px;
    width:210px
  }
}
@media(min-width:761px) {
  .hero .hero-orchid {
    left:calc(53% - 260px);
    width:320px;
    bottom:-5px
  }
  .services-editorial .section-intro>p:last-child {
    margin-right:180px
  }
  .service-editorial-heading .service-heading-orchid {
    width:300px;
    right:-180px;
    top:-160px
  }
}
.journal {
  border-top:1px solid var(--line);
  background:#f0e8df;
  max-width:none
}
.journal>div {
  max-width:1288px;
  margin-left:auto;
  margin-right:auto
}
.journal-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:50px;
  margin-bottom:40px
}
.journal-heading h2 {
  font-size:70px
}
.journal-heading>p {
  font-size:16px;
  color:var(--muted);
  max-width:410px;
  line-height:1.8
}
.journal-highlights {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-bottom:48px
}
.journal-highlights>a {
  position:relative;
  min-height:230px;
  padding:28px;
  background:#e1c6ba;
  color:var(--wine);
  transition:transform .3s,background .3s
}
.journal-highlights>a:nth-child(2) {
  background:var(--wine);
  color:var(--paper)
}
.journal-highlights>a:nth-child(3) {
  background:#dedcca
}
.journal-highlights>a>span {
  font-size:10px;
  letter-spacing:.12em
}
.journal-highlights strong {
  display:block;
  font-size:25px;
  letter-spacing:-.04em;
  line-height:1.2;
  font-weight:400;
  margin-top:30px
}
.journal-highlights em {
  font:italic 34px/1 var(--serif)
}
.journal-highlights b {
  position:absolute;
  right:22px;
  bottom:17px;
  font-size:28px;
  font-weight:400
}
.journal-highlights>a:hover {
  transform:translateY(-6px);
  box-shadow:0 15px 25px #571c2c15
}
.journal-filters {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:30px
}
.journal-filters button {
  border:1px solid #c9b6ac;
  border-radius:30px;
  padding:12px 20px;
  background:transparent;
  font-size:14px;
  transition:background .2s,color .2s
}
.journal-filters button span {
  font-size:11px;
  opacity:.65;
  margin-left:9px
}
.journal-filters button[aria-pressed=true],.journal-filters button:hover {
  background:var(--wine);
  color:var(--paper);
  border-color:var(--wine)
}
.journal-entries {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 35px
}
.journal-entry {
  border-top:1px solid #cdbdb2;
  scroll-margin-top:20px
}
.journal-entry>summary {
  position:relative;
  display:flex;
  flex-direction:column;
  padding:26px 0;
  min-height:200px
}
.journal-meta {
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.09em;
  color:var(--muted);
  margin-bottom:14px
}
.journal-title {
  font:36px/1.1 var(--serif);
  color:var(--wine);
  margin-bottom:12px
}
.journal-excerpt {
  font-size:14px;
  color:var(--muted);
  line-height:1.8;
  max-width:90%
}
.journal-read {
  display:flex;
  gap:20px;
  align-items:center;
  font-size:12px;
  margin-top:18px;
  color:var(--wine)
}
.journal-read b {
  font-weight:400;
  font-size:21px;
  transition:transform .3s
}
.journal-entry>summary:hover .journal-read b {
  transform:translate(4px,-4px)
}
.journal-entry[open] {
  grid-column:1/-1;
  border-bottom:1px solid #cdbdb2;
  padding-bottom:20px
}
.journal-entry[open]>summary {
  min-height:0
}
.journal-entry[open] .journal-read b {
  transform:rotate(180deg)
}
.journal-body {
  max-width:900px;
  margin:0 auto 20px;
  padding:28px 35px 35px;
  background:#fbf7f0
}
.archive-notice {
  border-left:2px solid var(--wine);
  padding:5px 18px;
  font-size:12px;
  color:var(--muted);
  line-height:1.8;
  margin-bottom:35px
}
.archive-original {
  font-size:16px;
  line-height:1.9;
  overflow-wrap:anywhere
}
.archive-original p {
  margin:18px 0
}
.archive-original h4 {
  font-size:24px;
  font-weight:500;
  margin:25px 0 15px;
  line-height:1.35;
  letter-spacing:-.035em
}
.archive-original img {
  max-height:460px;
  width:auto;
  height:auto;
  max-width:100%;
  object-fit:contain;
  margin:20px auto
}
.archive-original a {
  text-decoration:underline;
  text-underline-offset:4px;
  color:var(--wine)
}
.archive-original ul,.archive-original ol {
  padding-left:25px
}
.historical-link {
  font-size:13px;
  font-style:italic;
  color:var(--muted)
}
.journal-body>.text-link {
  margin-top:30px;
  font-size:13px
}
@media(max-width:1100px) {
  .journal-heading h2 {
    font-size:56px
  }
  .journal-heading>p {
    max-width:340px;
    font-size:15px
  }
  .journal-highlights>a {
    padding:25px;
    min-height:240px
  }
  .journal-highlights strong {
    font-size:23px
  }
  .journal-highlights em {
    font-size:30px
  }
  .journal-title {
    font-size:31px
  }
  .desktop-nav a {
    padding-left:11px;
    padding-right:11px
  }
}
@media(max-width:760px) {
  .journal-heading {
    display:block;
    margin-bottom:30px
  }
  .journal-heading h2 {
    font-size:50px
  }
  .journal-heading>p {
    font-size:15px;
    margin-top:22px;
    max-width:none
  }
  .journal-highlights {
    grid-template-columns:1fr;
    gap:12px;
    margin-bottom:30px
  }
  .journal-highlights>a {
    min-height:175px;
    padding:22px 24px
  }
  .journal-highlights strong {
    margin-top:18px;
    font-size:25px
  }
  .journal-highlights em {
    font-size:32px
  }
  .journal-filters {
    gap:8px
  }
  .journal-filters button {
    font-size:13px;
    padding:10px 15px
  }
  .journal-entries {
    grid-template-columns:1fr
  }
  .journal-entry>summary {
    padding:23px 0;
    min-height:0
  }
  .journal-title {
    font-size:31px
  }
  .journal-excerpt {
    font-size:14px;
    max-width:100%
  }
  .journal-body {
    padding:22px 18px;
    margin-bottom:0
  }
  .archive-original {
    font-size:15px
  }
  .archive-notice {
    padding-left:12px;
    font-size:12px
  }
  .archive-original h4 {
    font-size:22px
  }
}
.hero-picture {
  opacity:0;
  transition:opacity 1.8s ease-in-out;
  z-index:0
}
.hero-picture.is-active {
  opacity:1
}
.hero-visual .image-topline {
  transition:color 1.5s
}
.hero-visual .mood-controls {
  gap:8px;
  right:25px;
  bottom:30px
}
.hero-visual .mood-swatch {
  border:1px solid #ffffff66;
  background:#38122166;
  border-radius:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:12px;
  width:auto;
  min-width:90px;
  padding:10px 14px;
  height:42px;
  line-height:1
}
.hero-visual .mood-swatch:after {
  display:none
}
.hero-visual .mood-swatch:before {
  content:'';
  height:10px;
  width:10px;
  border-radius:50%;
  background:#882441;
  box-shadow:0 0 0 1px #ffffff88
}
.hero-visual .nude-swatch:before {
  background:#e7c9b1
}
.hero-visual .mood-swatch[aria-pressed=true] {
  background:var(--paper);
  color:var(--wine);
  border-color:var(--paper)
}
.hero-visual .mood-swatch:hover {
  border-color:white;
  transform:translateY(-2px)
}
.mood-pause {
  margin-left:auto;
  border:0;
  background:#38122166;
  color:var(--paper);
  border-radius:30px;
  padding:10px 14px;
  min-height:42px;
  font-size:11px;
  white-space:nowrap
}
.mood-pause span {
  font-size:14px;
  margin-right:4px
}
body {
  font-size:16px
}
.eyebrow {
  font-size:12px
}
.section-intro>p:last-child {
  font-size:14px
}
.section-wrap {
  padding-top:100px;
  padding-bottom:100px
}
.site-header {
  box-shadow:0 3px 24px #34252605
}
.brand span {
  font-size:9px
}
.desktop-nav {
  gap:5px;
  margin-left:0;
  font-size:15px;
  font-weight:500
}
.desktop-nav a {
  padding:11px 17px;
  border-radius:40px;
  transition:background .25s,color .25s,transform .25s
}
.desktop-nav a:hover,.desktop-nav a:focus-visible,.desktop-nav a.is-active {
  background:#e8d9d0;
  color:var(--wine);
  transform:translateY(-2px)
}
.desktop-nav a:after {
  display:none
}
.header-cta {
  font-size:14px;
  padding:13px 22px;
  border-radius:40px;
  background:var(--wine);
  color:var(--paper);
  gap:22px
}
.header-cta:hover {
  background:#793047;
  box-shadow:0 5px 16px #571c2c25;
  transform:translateY(-2px)
}
.text-link {
  font-size:15px;
  transition:color .2s,transform .2s,opacity .2s
}
.text-link:hover {
  opacity:1;
  color:#9a405d;
  transform:translateX(4px)
}
.button {
  font-size:15px;
  min-height:54px;
  border:0
}
.hero {
  overflow:clip
}
.hero-copy {
  padding-top:60px;
  padding-bottom:44px;
  position:relative;
  z-index:2
}
.hero-description {
  font-size:17px;
  line-height:1.8;
  max-width:420px
}
.hero .button {
  font-size:15px;
  padding:20px 26px
}
.hero-link {
  font-size:14px
}
.hero-foot {
  max-width:390px
}
.hero-foot p {
  font-size:13px
}
.year span {
  font-size:10px
}
.hero-foot .scroll-link {
  height:44px;
  width:44px
}
.botanical {
  pointer-events:none;
  user-select:none;
  object-fit:contain;
  filter:drop-shadow(0 20px 18px #32162218)
}
.hero-orchid {
  position:absolute;
  z-index:4;
  left:calc(53% - 190px);
  bottom:20px;
  width:360px;
  height:auto;
  transform:rotate(-28deg);
  transform-origin:center
}
.hero-handwritten {
  font:italic 25px var(--serif);
  color:var(--wine);
  position:absolute;
  bottom:217px;
  left:calc(53% - 155px);
  z-index:5;
  transform:rotate(-13deg)
}
.image-topline,.small-label {
  font-size:10px
}
.image-count {
  font-size:13px
}
.mood-controls>span {
  font-size:10px
}
.mood-swatch {
  width:42px;
  height:42px
}
.mood-swatch:after {
  inset:8px
}
.editorial-label,.photo-credit {
  font-size:10px
}
.hero-visual .image-caption {
  bottom:100px
}
.promise-strip {
  display:block;
  overflow:hidden;
  padding:21px 0;
  background:#e5cec5;
  border:0
}
.promise-track {
  display:flex;
  align-items:center;
  gap:55px;
  width:max-content;
  animation:beauty-marquee 45s linear infinite
}
.promise-track>span {
  font-size:12px;
  letter-spacing:.18em;
  white-space:nowrap
}
.promise-track>i {
  font-size:25px;
  display:block!important
}
.promise-strip:hover .promise-track {
  animation-play-state:paused
}
@keyframes beauty-marquee {
  to {
    transform:translateX(-33.3333%)
  }
}
.philosophy {
  position:relative
}
.philosophy-copy>p {
  font-size:16px;
  line-height:1.9
}
.philosophy-copy h2 {
  margin-bottom:30px
}
.founder-sign {
  margin:30px 0
}
.founder-sign>span {
  font-size:54px
}
.founder-sign>div {
  font-size:11px
}
.studio-values {
  gap:10px;
  font-size:12px
}
.studio-values b {
  font-size:14px
}
.photo-note {
  font-size:12px
}
.bloom-interlude {
  position:relative;
  isolation:isolate;
  overflow:clip;
  min-height:410px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:70px 8%;
  background:#eadbd3;
  color:var(--wine)
}
.bloom-interlude>span:first-child {
  font-size:clamp(36px,6vw,86px);
  letter-spacing:-.07em;
  line-height:1.1;
  z-index:2;
  align-self:flex-start;
  margin-left:10%
}
.bloom-interlude>em {
  font:italic clamp(55px,8vw,116px)/1 var(--serif);
  letter-spacing:-.055em;
  z-index:2;
  align-self:flex-end;
  margin-right:7%
}
.bloom-orchid {
  position:absolute;
  width:520px;
  left:-20px;
  bottom:-115px;
  transform:rotate(-12deg);
  z-index:1
}
.bloom-note {
  font-size:10px;
  letter-spacing:.2em;
  position:absolute;
  bottom:30px;
  right:7%;
  z-index:2
}
.services-editorial {
  background:#481826;
  position:relative;
  overflow:clip
}
.services-editorial .section-wrap {
  padding-top:78px;
  padding-bottom:64px
}
.service-editorial-heading {
  position:relative;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:80px;
  isolation:isolate
}
.service-editorial-heading h2 {
  font-size:clamp(60px,6.9vw,102px);
  line-height:1;
  position:relative;
  z-index:2
}
.service-editorial-heading h2 em {
  color:#eacac2;
  font-size:1.12em
}
.service-editorial-heading>p {
  font-size:16px;
  color:#e1c4c6;
  margin:0 15px 15px 50px;
  position:relative;
  z-index:2
}
.service-heading-orchid {
  position:absolute;
  right:-180px;
  top:-130px;
  width:460px;
  opacity:.95;
  transform:rotate(52deg);
  z-index:0
}
.service-experience {
  display:grid;
  grid-template-columns:42% 1fr;
  gap:7%;
  align-items:start
}
.service-scene {
  position:sticky;
  top:135px;
  padding:70px 25px 0 14px;
  margin-top:-20px
}
.scene-counter {
  font:300 245px/.85 var(--serif);
  color:#e9d4cc25;
  position:absolute;
  top:0;
  left:-25px;
  letter-spacing:-.1em;
  z-index:0
}
.service-portrait {
  margin:0;
  background:#eee3d7;
  transform:rotate(-5deg);
  padding:12px 12px 17px;
  box-shadow:15px 23px 55px #230a1555;
  position:relative;
  z-index:1;
  transition:transform .6s;
  max-width:400px
}
.service-portrait:hover {
  transform:rotate(-2deg)
}
.scene-photos {
  position:relative;
  aspect-ratio:4/4.8;
  overflow:hidden;
  background:var(--wine)
}
.scene-photo {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transform:scale(1.07);
  transition:opacity .65s,transform 1.2s
}
.scene-photo.is-current {
  opacity:1;
  transform:scale(1)
}
.service-portrait figcaption {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  padding:15px 6px 0;
  color:var(--wine)
}
.service-portrait figcaption>span {
  font:italic 27px/1 var(--serif)
}
.service-portrait figcaption small {
  font-size:8px;
  max-width:65px;
  line-height:1.5;
  letter-spacing:.09em
}
.scene-stamp {
  position:absolute;
  z-index:2;
  right:-5px;
  bottom:50px;
  width:135px;
  height:135px;
  background:#e7c9ba;
  color:var(--wine);
  border-radius:50%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  outline:1px solid #e7c9ba;
  outline-offset:6px;
  transform:rotate(12deg)
}
.scene-stamp b {
  font:italic 37px/.8 var(--serif);
  text-align:center;
  margin:8px
}
.scene-stamp>span {
  font-size:7px;
  letter-spacing:.1em
}
.scene-nav {
  display:flex;
  gap:14px;
  margin-top:39px;
  justify-content:center
}
.scene-nav a {
  width:42px;
  height:42px;
  border:1px solid #e9d4cc55;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:13px;
  transition:background .3s,color .3s,transform .3s
}
.scene-nav a:hover,.scene-nav a.is-active {
  background:#e7c9ba;
  color:var(--wine);
  transform:translateY(-3px)
}
.service-menu {
  position:relative;
  padding-top:22px
}
.service-card {
  border-top:1px solid #ffffff40;
  border-bottom:1px solid #ffffff40;
  background:#ffffff03;
  transition:background .5s,color .5s,border-color .5s;
  scroll-margin-top:20px;
  margin-bottom:28px
}
.service-card h3 {
  font-weight:400
}
.service-trigger {
  width:100%;
  display:grid;
  grid-template-columns:28px 1fr auto 24px;
  align-items:center;
  gap:15px;
  padding:28px 20px;
  border:0;
  background:none;
  text-align:left
}
.service-trigger:hover {
  background:#ffffff09
}
.service-index {
  font-size:12px;
  align-self:start;
  padding-top:7px;
  opacity:.65
}
.service-card-title {
  font:38px/1.02 var(--serif);
  letter-spacing:-.02em
}
.service-card-title small {
  display:block;
  font:9px/1.7 var(--sans);
  letter-spacing:.1em;
  max-width:210px;
  margin-top:10px;
  opacity:.7
}
.service-card .price {
  font:64px/.9 var(--serif);
  align-self:center;
  white-space:nowrap
}
.service-card .price small {
  font:18px var(--sans)
}
.service-card .request-price {
  font:13px/1.5 var(--sans);
  white-space:normal;
  text-align:right;
  color:inherit
}
.service-arrow {
  font-size:27px;
  transition:transform .5s;
  justify-self:end
}
.service-unfold {
  display:grid;
  grid-template-rows:1fr;
  opacity:1;
  transition:grid-template-rows .7s cubic-bezier(.2,.65,.25,1),opacity .5s
}
.service-unfold>div {
  min-height:0;
  overflow:hidden
}
.service-card-content {
  padding:0 30px 35px 63px
}
.service-card-content>p:not(.service-highlight) {
  font-size:15px;
  line-height:1.9;
  margin-top:19px
}
.service-highlight {
  font-size:24px;
  line-height:1.3;
  letter-spacing:-.035em
}
.service-highlight em {
  font:italic 34px/1.1 var(--serif)
}
.service-tags {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:22px 0
}
.service-tags>span {
  font-size:10px;
  padding:6px 10px;
  border:1px solid #7b495135;
  border-radius:30px
}
.service-card-content>.service-fineprint {
  font-size:12px!important;
  line-height:1.8;
  margin-bottom:20px
}
.service-book {
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid #7b495130;
  padding-top:18px;
  font-size:14px;
  font-weight:500;
  transition:color .2s,gap .2s
}
.service-book span {
  font-size:23px
}
.service-book:hover {
  color:#aa365c
}
.service-card.is-expanded {
  background:#f1e8de;
  color:#481826;
  border-color:#f1e8de
}
.service-card.is-expanded .service-arrow {
  transform:rotate(-90deg)
}
.service-card:not(.is-expanded) .service-unfold {
  grid-template-rows:0fr;
  opacity:0
}
.service-mobile-photo {
  display:none
}
.services-editorial .price-footnote {
  border-top:1px solid #ffffff30;
  padding-top:28px;
  margin-top:60px
}
.price-footnote>span {
  font-size:30px
}
.price-footnote>p {
  font-size:12px;
  max-width:450px
}
.gallery-heading>p {
  font-size:16px;
  line-height:1.8
}
.muted {
  font-size:12px
}
.gallery-caption>span {
  font-size:28px
}
.gallery-caption small {
  font-size:10px
}
.gallery-image {
  transition:transform .5s,box-shadow .5s
}
.gallery-item:hover .gallery-image {
  transform:translateY(-7px);
  box-shadow:0 20px 30px #44222c20
}
.gallery-item:hover img {
  transform:scale(1.065)
}
.gallery-image>span {
  width:43px;
  height:43px;
  font-size:24px;
  transition:background .3s,color .3s
}
.gallery-item:hover .gallery-image>span {
  background:var(--wine);
  color:var(--paper)
}
.gallery-invite {
  font-size:15px
}
.gallery-invite a {
  font-size:15px
}
.faq {
  padding-top:20px
}
.faq h2 {
  font-size:49px
}
.faq-list summary {
  font-size:16px;
  padding:25px 0
}
.faq-list details>div {
  font-size:15px
}
.contact-action>p {
  font-size:16px;
  max-width:430px
}
.contact-details {
  grid-template-columns:1fr 1fr;
  gap:35px
}
.contact-details h3 {
  font-size:11px
}
.contact-details address {
  font-size:14px;
  line-height:1.9
}
.contact-details .text-link {
  font-size:14px
}
.contact .hours dt {
  font-size:14px
}
.contact .hours dd {
  font-size:32px
}
.hours-note {
  font-size:12px
}
.appointment-label {
  font-size:11px
}
.appointment-note p {
  font-size:14px
}
.contact-action>.general-email {
  font-size:14px
}
.contact-phone {
  font-size:40px;
  max-width:460px
}
.local-directions {
  display:grid;
  grid-template-columns:34% 1fr;
  align-items:center;
  gap:6%;
  border-top:1px solid #c9b9ae;
  padding-top:65px;
  margin-top:65px;
  scroll-margin-top:20px
}
.directions-copy h3 {
  font-size:40px;
  font-weight:500;
  line-height:1.15;
  letter-spacing:-.05em;
  margin:18px 0 25px
}
.directions-copy h3 em {
  font:italic 52px/1 var(--serif)
}
.directions-copy>p:not(.eyebrow) {
  font-size:15px;
  line-height:1.8
}
.directions-copy>.directions-description {
  font-size:13px!important;
  color:var(--muted);
  margin-top:18px
}
.directions-actions {
  display:flex;
  gap:18px;
  align-items:flex-start;
  flex-direction:column;
  margin-top:25px
}
.directions-actions .button {
  font-size:13px;
  padding:15px 20px
}
.directions-actions .text-link {
  font-size:13px
}
.copy-status {
  min-height:24px;
  font-size:12px!important;
  color:var(--wine);
  margin-top:10px
}
.directions-map {
  position:relative;
  display:block;
  border:10px solid var(--paper);
  box-shadow:0 18px 40px #34252612;
  transform:rotate(2deg);
  transition:transform .3s,box-shadow .3s
}
.directions-map:hover {
  transform:rotate(0);
  box-shadow:0 22px 45px #34252623
}
.directions-map img {
  width:100%;
  height:auto
}
.directions-map>span {
  position:absolute;
  right:14px;
  bottom:40px;
  background:var(--paper);
  padding:9px 14px;
  font-size:12px;
  display:flex;
  gap:18px;
  align-items:center
}
.directions-map b {
  font-size:21px;
  font-weight:400
}
.footer-top>p {
  font-size:13px
}
.footer-bottom {
  font-size:12px
}
.footer-bottom>span:last-child {
  font-size:9px
}
.legal>details>summary {
  font-size:14px;
  padding:18px 0
}
.legal-content {
  font-size:14px
}
.legal-content h3 {
  font-size:17px
}
.lightbox-caption {
  font-size:14px
}
.lightbox-close {
  font-size:14px
}
@media(min-width:1600px) {
  .hero-orchid {
    left:calc(53% - 220px);
    width:430px
  }
  .hero-handwritten {
    bottom:260px
  }
}
@media(max-width:1150px) {
  .desktop-nav {
    font-size:13px
  }
  .desktop-nav a {
    padding:10px 12px
  }
  .site-header {
    gap:18px
  }
  .header-cta {
    font-size:13px
  }
  .hero-description {
    font-size:15px
  }
  .hero-orchid {
    width:290px;
    left:calc(53% - 145px);
    bottom:0
  }
  .hero-handwritten {
    font-size:22px;
    bottom:185px;
    left:calc(53% - 118px)
  }
  .hero-foot {
    max-width:330px
  }
  .philosophy-copy>p {
    font-size:15px
  }
  .philosophy-grid {
    grid-template-columns:42% 1fr
  }
  .service-experience {
    grid-template-columns:38% 1fr;
    gap:5%
  }
  .service-trigger {
    grid-template-columns:20px 1fr auto 20px;
    padding:26px 16px;
    gap:10px
  }
  .service-card-title {
    font-size:32px
  }
  .service-card .price {
    font-size:52px
  }
  .service-card .request-price {
    font-size:12px
  }
  .service-card-content {
    padding:0 24px 30px 47px
  }
  .service-portrait figcaption>span {
    font-size:22px
  }
  .scene-stamp {
    width:112px;
    height:112px;
    right:-12px
  }
  .scene-stamp b {
    font-size:31px
  }
  .scene-stamp>span {
    font-size:6px
  }
  .service-heading-orchid {
    width:340px;
    right:-160px;
    top:-90px
  }
  .scene-counter {
    font-size:200px
  }
  .contact-grid {
    grid-template-columns:1fr 1fr;
    gap:6%
  }
  .contact-details {
    grid-template-columns:1fr
  }
  .contact .hours>div {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px
  }
  .contact .hours dd {
    margin:0
  }
  .contact-phone {
    font-size:34px
  }
  .bloom-interlude {
    min-height:340px
  }
  .bloom-orchid {
    width:430px;
    left:-40px
  }
  .local-directions {
    grid-template-columns:36% 1fr;
    gap:4%
  }
}
@media(max-width:900px) and (min-width:761px) {
  .brand {
    font-size:46px
  }
  .desktop-nav a {
    padding:9px;
    font-size:12px
  }
  .site-header {
    padding:0 20px;
    gap:9px
  }
  .header-cta {
    font-size:12px;
    padding:10px 15px;
    gap:12px
  }
  .hero .button {
    font-size:13px;
    padding:17px
  }
  .hero-description {
    font-size:14px
  }
  .hero-orchid {
    width:230px;
    left:calc(53% - 100px)
  }
  .hero-handwritten {
    display:none
  }
  .hero-foot {
    max-width:270px
  }
  .hero-foot p {
    font-size:11px
  }
  .service-experience {
    grid-template-columns:34% 1fr;
    gap:5%
  }
  .service-card-title {
    font-size:30px
  }
  .service-card-title small {
    font-size:8px
  }
  .service-card-content {
    padding-left:25px
  }
  .scene-stamp {
    display:none
  }
  .scene-counter {
    font-size:150px
  }
  .service-scene {
    padding-left:0;
    padding-right:0
  }
  .service-portrait {
    padding:8px
  }
  .scene-nav {
    gap:6px
  }
  .scene-nav a {
    width:37px;
    height:37px
  }
  .service-portrait figcaption small {
    display:none
  }
  .gallery-heading>p {
    font-size:14px
  }
  .gallery-caption>span {
    font-size:23px
  }
  .gallery-caption small {
    font-size:9px
  }
  .faq h2 {
    font-size:39px
  }
  .faq-list summary {
    font-size:14px
  }
  .contact-phone {
    font-size:29px
  }
  .directions-copy h3 {
    font-size:34px
  }
  .directions-copy h3 em {
    font-size:44px
  }
}
@media(max-width:760px) {
  body {
    font-size:16px
  }
  .section-wrap {
    padding:65px 24px
  }
  .section-intro>p:last-child {
    font-size:12px
  }
  .eyebrow {
    font-size:10px
  }
  .site-header {
    height:84px;
    padding:0 20px;
    gap:12px
  }
  .brand {
    font-size:43px
  }
  .brand span {
    font-size:7px
  }
  .header-cta {
    font-size:12px;
    padding:10px 15px;
    gap:15px
  }
  .mobile-nav {
    top:84px
  }
  .menu-toggle {
    width:44px;
    height:44px
  }
  .menu-toggle span {
    width:24px
  }
  .mobile-nav a:hover {
    color:var(--wine);
    padding-left:12px
  }
  .hero-copy {
    padding:38px 24px 40px
  }
  .hero-copy>.eyebrow {
    font-size:9px
  }
  .hero h1 {
    font-size:clamp(48px,10.5vw,78px);
    margin-top:25px
  }
  .hero-description {
    font-size:16px;
    line-height:1.85
  }
  .hero .button {
    font-size:15px;
    margin-top:25px;
    padding:18px 23px
  }
  .hero-link {
    font-size:13px;
    margin-top:20px
  }
  .hero-foot {
    max-width:calc(100% - 70px);
    margin-top:32px;
    gap:15px
  }
  .hero-foot p {
    font-size:11px
  }
  .hero-foot .scroll-link {
    display:none
  }
  .hero-orchid {
    width:230px;
    left:auto;
    right:-20px;
    bottom:500px;
    transform:rotate(-20deg)
  }
  .hero-handwritten {
    display:none
  }
  .hero-visual {
    height:560px
  }
  .image-caption #mood-title {
    font-size:29px
  }
  .image-topline {
    font-size:10px
  }
  .mood-controls>span {
    font-size:9px
  }
  .promise-track {
    gap:30px
  }
  .promise-track>span {
    font-size:10px;
    display:block!important
  }
  .promise-track>i {
    font-size:21px
  }
  .philosophy-copy>p {
    font-size:16px
  }
  .philosophy-copy h2 {
    font-size:46px
  }
  .founder-sign>div {
    font-size:10px
  }
  .studio-values b {
    font-size:14px
  }
  .photo-note {
    font-size:10px
  }
  .photo-credit {
    font-size:9px
  }
  .bloom-interlude {
    min-height:290px;
    padding:60px 24px 80px
  }
  .bloom-interlude>span:first-child {
    font-size:40px;
    margin:0
  }
  .bloom-interlude>em {
    font-size:59px;
    margin:5px 0 0;
    white-space:nowrap
  }
  .bloom-orchid {
    width:280px;
    left:-75px;
    bottom:-100px;
    transform:rotate(0)
  }
  .bloom-note {
    font-size:9px;
    bottom:28px;
    right:24px
  }
  .services-editorial .section-wrap {
    padding:55px 24px
  }
  .service-editorial-heading {
    margin-bottom:45px;
    display:block
  }
  .service-editorial-heading h2 {
    font-size:clamp(46px,10vw,70px)
  }
  .service-editorial-heading>p {
    font-size:15px;
    margin:25px 0 0;
    line-height:1.6
  }
  .service-heading-orchid {
    width:235px;
    right:-100px;
    top:130px;
    transform:rotate(58deg);
    opacity:.85
  }
  .service-experience {
    display:block
  }
  .service-scene {
    display:none
  }
  .service-menu {
    padding-top:0;
    position:relative;
    z-index:2
  }
  .service-card {
    margin-bottom:23px;
    scroll-margin-top:20px
  }
  .service-trigger {
    padding:23px 15px;
    grid-template-columns:21px 1fr auto 18px;
    gap:8px
  }
  .service-index {
    font-size:10px
  }
  .service-card-title {
    font-size:31px
  }
  .service-card-title small {
    font-size:7px;
    letter-spacing:.08em;
    max-width:165px;
    line-height:1.7
  }
  .service-card .price {
    font-size:47px
  }
  .service-card .price small {
    font-size:15px
  }
  .service-card .request-price {
    font-size:10px;
    max-width:65px
  }
  .service-arrow {
    font-size:22px
  }
  .service-card-content {
    padding:0 22px 25px
  }
  .service-highlight {
    font-size:24px
  }
  .service-highlight em {
    font-size:31px
  }
  .service-card-content>p:not(.service-highlight) {
    font-size:15px;
    line-height:1.85
  }
  .service-tags {
    gap:6px
  }
  .service-tags>span {
    font-size:10px
  }
  .service-book {
    font-size:14px
  }
  .service-mobile-photo {
    display:block;
    width:100%;
    height:200px;
    object-fit:cover;
    object-position:center 55%;
    margin-top:24px
  }
  .services-editorial .price-footnote {
    margin-top:32px;
    padding-top:25px
  }
  .price-footnote>span {
    font-size:26px
  }
  .price-footnote>p {
    font-size:12px
  }
  .gallery-heading>p {
    font-size:15px
  }
  .muted {
    font-size:12px
  }
  .gallery-caption>span {
    font-size:25px
  }
  .gallery-caption small {
    font-size:9px
  }
  .gallery-invite,.gallery-invite a {
    font-size:14px
  }
  .faq {
    padding-top:0
  }
  .faq h2 {
    font-size:44px
  }
  .faq-list summary {
    font-size:15px;
    line-height:1.6
  }
  .faq-list details>div {
    font-size:15px;
    padding-right:10px
  }
  .contact .section-wrap {
    padding:55px 24px
  }
  .contact-heading h2 {
    font-size:clamp(35px,7.7vw,55px)
  }
  .contact-heading {
    padding-bottom:30px
  }
  .contact-star {
    display:none
  }
  .contact-action>p {
    font-size:15px
  }
  .contact-phone {
    font-size:34px
  }
  .appointment-label {
    font-size:10px
  }
  .appointment-note p {
    font-size:13px
  }
  .contact-action>.general-email {
    font-size:13px
  }
  .contact-details {
    grid-template-columns:1fr;
    gap:25px;
    padding-top:25px;
    margin-top:30px
  }
  .contact-details h3 {
    font-size:11px;
    margin-bottom:10px
  }
  .contact-details address {
    font-size:15px
  }
  .contact-details .text-link {
    font-size:14px
  }
  .contact .hours>div {
    display:block
  }
  .contact .hours dt {
    font-size:15px
  }
  .contact .hours dd {
    font-size:35px
  }
  .hours-note {
    font-size:13px
  }
  .local-directions {
    grid-template-columns:1fr;
    gap:25px;
    padding-top:40px;
    margin-top:40px;
    scroll-margin-top:20px
  }
  .directions-copy h3 {
    font-size:39px
  }
  .directions-copy h3 em {
    font-size:49px
  }
  .directions-copy>.directions-description {
    font-size:14px!important
  }
  .directions-actions {
    flex-direction:row;
    align-items:center;
    flex-wrap:wrap
  }
  .directions-map {
    border:6px solid var(--paper);
    transform:rotate(0)
  }
  .directions-map>span {
    font-size:10px;
    padding:5px 8px;
    bottom:23px;
    right:8px
  }
  .directions-map b {
    font-size:15px
  }
  .footer-top>p {
    font-size:12px
  }
  .footer-bottom {
    font-size:12px
  }
  .footer-bottom nav {
    gap:19px;
    flex-wrap:wrap
  }
  .legal>details>summary {
    font-size:14px
  }
  .legal-content {
    font-size:14px
  }
  .legal-content h3 {
    font-size:16px
  }
  .lightbox-caption {
    font-size:12px
  }
  .lightbox-close {
    font-size:14px
  }
}
@media(max-width:380px) {
  .site-header {
    padding:0 14px;
    gap:6px
  }
  .brand {
    font-size:38px
  }
  .header-cta {
    font-size:11px;
    padding:9px 11px;
    gap:10px
  }
  .hero-copy {
    padding-left:20px;
    padding-right:20px
  }
  .hero-copy>.eyebrow {
    font-size:8px
  }
  .hero h1 {
    font-size:clamp(42px,12vw,48px)
  }
  .hero-orchid {
    width:180px;
    right:-30px;
    bottom:455px
  }
  .hero-visual {
    height:490px
  }
  .hero-foot {
    max-width:calc(100% - 30px)
  }
  .service-trigger {
    padding:21px 10px;
    gap:6px;
    grid-template-columns:16px 1fr auto 16px
  }
  .service-card-title {
    font-size:26px
  }
  .service-card-title small {
    font-size:6.5px
  }
  .service-card .price {
    font-size:39px
  }
  .service-card .request-price {
    font-size:9px
  }
  .service-card-content {
    padding-left:18px;
    padding-right:18px
  }
  .service-card-content>p:not(.service-highlight) {
    font-size:14px
  }
  .service-highlight {
    font-size:21px
  }
  .service-highlight em {
    font-size:28px
  }
  .bloom-interlude>span:first-child {
    font-size:34px
  }
  .bloom-interlude>em {
    font-size:50px
  }
  .bloom-orchid {
    width:220px
  }
  .gallery-caption>span {
    font-size:23px
  }
  .contact-phone {
    font-size:29px
  }
  .contact-action>.general-email {
    font-size:11px
  }
}
@media(prefers-reduced-motion:reduce) {
  .promise-track {
    animation:none
  }
  .scene-photo,.service-unfold,.service-card {
    transition:none
  }
  .botanical {
    transform:none
  }
  .will-reveal {
    opacity:1;
    transform:none
  }
}
@media print {
  .promise-strip,.botanical,.service-scene,.bloom-interlude {
    display:none
  }
  .service-experience {
    display:block
  }
  .service-unfold {
    grid-template-rows:1fr!important;
    opacity:1!important
  }
  .service-card {
    break-inside:avoid;
    color:#222
  }
  .local-directions {
    display:block
  }
  .directions-map {
    max-width:650px
  }
  .copy-address {
    display:none
  }
}
.journal-highlights .journal-feature {
  display:flex;
  flex-direction:column;
  padding:0;
  overflow:hidden;
  border-radius:3px;
  text-decoration:none;
}
.journal-highlights .feature-visual {
  display:block;
  position:relative;
  aspect-ratio:1.38;
  overflow:hidden;
  background:#dedcca;
}
.feature-visual img,.teaser-visual img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .65s cubic-bezier(.2,.75,.3,1),filter .65s;
}
.feature-portrait .feature-visual img {
  object-position:50% 43%;
}
.feature-visual::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 55%,#29121845);
  pointer-events:none;
}
.feature-number {
  position:absolute;
  top:10px;
  left:20px;
  font:italic 74px/1 var(--serif);
  color:#fff9f0;
  text-shadow:0 2px 16px #28111780;
  z-index:1;
}
.feature-source {
  position:absolute;
  left:16px;
  bottom:16px;
  z-index:1;
  background:#f8f3ecef;
  color:var(--wine);
  border-radius:30px;
  padding:6px 10px;
  font-size:10px;
}
.feature-seal,.teaser-emblem {
  display:grid;
  place-items:center;
  background:var(--paper);
  color:var(--wine);
  border-radius:50%;
}
.feature-seal {
  position:absolute;
  right:18px;
  bottom:18px;
  width:64px;
  height:64px;
  z-index:1;
  transform:rotate(-12deg);
  transition:transform .4s;
}
.nail-mark {width:32px;height:34px;display:block}
.journal-highlights .feature-copy {display:block;padding:27px 28px 25px;font-size:inherit;letter-spacing:normal}
.feature-kicker {font-size:11px;letter-spacing:.1em;display:block}
.journal-highlights .feature-copy strong {margin-top:17px;min-height:76px}
.feature-cta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid currentColor;
  padding-top:17px;
  margin-top:22px;
  font-size:14px;
}
.feature-cta>span {font-size:25px;transition:transform .3s}
.journal-feature:hover img,.journal-feature:focus-visible img {transform:scale(1.055)}
.journal-feature:hover .feature-seal {transform:rotate(8deg)}
.journal-feature:hover .feature-cta>span {transform:translate(4px,-4px)}
.journal-feature:focus-visible,.journal-entry>summary:focus-visible {outline:3px solid #ab6e81;outline-offset:5px}
.journal-entries {grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px;align-items:start}
.journal-entry {
  border:1px solid #d5c5b9;
  background:#f9f4ed;
  border-radius:3px;
  transition:box-shadow .35s,border-color .35s,transform .35s;
  overflow:hidden;
}
.journal-entry>summary {
  padding:0;
  min-height:0;
  cursor:pointer;
  list-style:none;
}
.journal-entry>summary::-webkit-details-marker {display:none}
.teaser-visual {
  display:block;
  position:relative;
  aspect-ratio:1.5;
  overflow:hidden;
  background:#e5d7ca;
}
.teaser-media .teaser-visual img {object-fit:contain;padding:15px}
.teaser-portrait .teaser-visual img {object-position:center 43%}
.teaser-provenance {
  position:absolute;
  left:14px;
  bottom:14px;
  padding:6px 10px;
  background:#f8f3ecef;
  color:var(--wine);
  border-radius:30px;
  font-size:10px;
  letter-spacing:.04em;
}
.teaser-emblem {position:absolute;right:14px;bottom:14px;width:42px;height:42px}
.teaser-emblem .nail-mark {width:23px;height:25px}
.teaser-copy {display:flex;flex-direction:column;padding:25px 23px 23px}
.journal-entry .journal-meta {font-size:10px;min-height:15px}
.journal-entry .journal-title {font-size:31px;line-height:1.08;min-height:68px}
.journal-entry .journal-excerpt {font-size:14px;line-height:1.7;max-width:none;min-height:72px}
.journal-entry .journal-read {
  font-size:14px;
  display:flex;
  justify-content:space-between;
  border:1px solid #cbb5ac;
  padding:11px 15px;
  margin-top:20px;
  border-radius:2px;
  transition:background .3s,color .3s,border-color .3s;
}
.journal-entry .read-open {display:none}
.journal-entry[open] .read-closed {display:none}
.journal-entry[open] .read-open {display:inline}
.journal-entry:hover {border-color:#aa7d76;box-shadow:0 12px 30px #4b202511;transform:translateY(-4px)}
.journal-entry>summary:hover img,.journal-entry>summary:focus-visible img {transform:scale(1.045)}
.journal-entry>summary:hover .journal-read,.journal-entry>summary:focus-visible .journal-read,.journal-entry[open] .journal-read {background:var(--wine);border-color:var(--wine);color:var(--paper)}
.journal-entry[open] {padding-bottom:0;border-color:#a8847b;box-shadow:0 16px 50px #4b202511;transform:none}
.journal-entry[open]>summary {display:grid;grid-template-columns:1fr 1.5fr;align-items:center}
.journal-entry[open] .teaser-visual {aspect-ratio:1.3}
.journal-entry[open] .teaser-copy {padding:35px}
.journal-entry[open] .journal-title {font-size:44px;min-height:0}
.journal-entry[open] .journal-excerpt {min-height:0;font-size:16px}
.journal-entry[open] .journal-read {max-width:300px}
.journal-body {margin:0 auto;padding-top:35px;background:transparent}
.story-initial::first-letter {float:left;font:80px/.8 var(--serif);margin:10px 12px 0 0;color:var(--wine)}
@media (max-width:1050px) {
  .journal-entries {grid-template-columns:repeat(2,minmax(0,1fr))}
  .journal-highlights .feature-copy {padding:22px 20px}
  .journal-highlights .feature-copy strong {font-size:22px}
  .journal-highlights .feature-copy em {font-size:29px}
}
@media (max-width:760px) {
  .journal-highlights {grid-template-columns:1fr;gap:20px}
  .journal-highlights .journal-feature {display:grid;grid-template-columns:40% 60%;min-height:0}
  .journal-highlights .feature-visual {aspect-ratio:auto;height:100%;min-height:220px}
  .journal-highlights .feature-copy {padding:24px 18px}
  .journal-highlights .feature-copy strong {min-height:0;font-size:21px}
  .journal-highlights .feature-copy em {font-size:28px}
  .feature-cta {font-size:12px;margin-top:18px;gap:8px}
  .feature-number {font-size:52px;left:12px}
  .feature-source {left:8px;bottom:66px;font-size:8px;padding:5px 7px}
  .feature-seal {width:43px;height:43px;right:10px;bottom:14px}
  .feature-seal .nail-mark {width:25px;height:27px}
  .journal-entries {grid-template-columns:1fr;gap:25px}
  .journal-entry .journal-title {font-size:33px;min-height:0}
  .journal-entry .journal-excerpt {min-height:0}
  .teaser-copy {padding:24px}
  .journal-entry[open]>summary {display:flex}
  .journal-entry[open] .teaser-visual {width:100%;aspect-ratio:1.5}
  .journal-entry[open] .teaser-copy {padding:24px}
  .journal-entry[open] .journal-title {font-size:36px}
  .journal-body {padding:5px 24px 24px}
  .journal-entry .journal-read {max-width:none}
}
@media (prefers-reduced-motion:reduce) {
  .journal-feature img,.teaser-visual img,.feature-seal,.journal-entry {transition:none}
}
.journal-scroll .journal-flow {
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:80px;align-items:start;margin-top:45px;
}
.journal-scene {position:sticky;top:145px;padding:20px 12px 0 0}
.story-stage {position:relative;aspect-ratio:.98;background:#dbc5b7;box-shadow:0 20px 45px #48212815;border:12px solid #fbf6ed;transform:rotate(-3deg)}
.story-stage-images {position:absolute;inset:0;overflow:hidden}
.story-stage-image {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.035);transition:opacity .8s,transform 1.3s}
.story-stage-image.is-current {opacity:1;transform:scale(1)}
.story-stage-image[data-story-index="0"] {object-position:50% 43%}
.story-stage-image[data-story-index="3"],.story-stage-image[data-story-index="5"] {object-fit:contain;padding:20px;background:#e4d6c8}
.story-stage-note {position:absolute;left:15px;top:17px;z-index:1;font-size:10px;letter-spacing:.13em;background:#f8f2e9eb;padding:8px 10px;color:var(--wine)}
.story-stage-number {position:absolute;left:-25px;bottom:-20px;z-index:1;font:italic 120px/.8 var(--serif);color:var(--wine);text-shadow:2px 2px #fbf6ed}
.story-stage-stamp {position:absolute;right:-23px;bottom:-32px;z-index:1;border-radius:50%;width:115px;height:115px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--wine);color:var(--paper);font-size:12px;transform:rotate(13deg);border:1px solid #f6f2eb;box-shadow:0 0 0 7px var(--wine)}
.story-stage-stamp em {font:italic 26px var(--serif)}
.story-stage-caption {margin:55px 0 23px;padding:0 5px}
.story-image-source {font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.story-image-title {font:28px/1.15 var(--serif);margin-top:9px;color:var(--wine)}
.story-progress {height:2px;background:#cbb4a8;overflow:hidden}
.story-progress>span {display:block;height:100%;width:6.666%;background:var(--wine);transition:width .5s}
.story-scroll-hint {font-size:12px;margin-top:17px;color:var(--muted);display:flex;justify-content:space-between}
.journal-scroll .journal-entries {display:flex;flex-direction:column;gap:20px}
.journal-scroll .journal-entry {width:100%;background:#ffffff35;border-color:#cebab0;box-shadow:none;transform:none;overflow:clip;transition:background .4s,border-color .4s}
.journal-scroll .journal-entry>summary,.journal-scroll .journal-entry[open]>summary {display:block}
.journal-scroll .teaser-visual {display:none}
.journal-scroll .teaser-copy,.journal-scroll .journal-entry[open] .teaser-copy {padding:32px 32px 28px;position:relative}
.story-row-number {font:italic 30px/1 var(--serif);color:#ac8c80;position:absolute;right:28px;top:26px}
.journal-scroll .journal-meta {padding-right:50px;margin-bottom:20px;font-size:10px}
.journal-scroll .journal-title,.journal-scroll .journal-entry[open] .journal-title {font-size:36px;line-height:1.1;min-height:0;margin-bottom:15px;max-width:95%}
.journal-scroll .journal-excerpt {min-height:0;font-size:15px;line-height:1.8;transition:max-height .7s,opacity .5s,margin .7s;max-height:180px}
.journal-scroll.js-journal .journal-entry:not(.is-revealed):not([open]) .journal-excerpt {max-height:0;opacity:0;overflow:hidden;margin:0}
.journal-scroll .journal-read,.journal-scroll .journal-entry[open] .journal-read {max-width:none;margin-top:24px;padding:12px 16px}
.journal-scroll .journal-entry:hover,.journal-scroll .journal-entry:focus-within,.journal-scroll .journal-entry.is-current {background:#fbf6ee;border-color:#8d5b5d}
.journal-scroll .journal-entry.is-current .story-row-number {color:var(--wine)}
.journal-scroll .journal-entry.is-current {box-shadow:inset 3px 0 var(--wine)}
.story-row-hint {font-size:10px;color:var(--muted);margin-top:11px;letter-spacing:.05em}
.journal-scroll .journal-entry[open] {background:#fbf6ee}
.journal-scroll .journal-body {padding:0 32px 32px}
.faq-editorial {position:relative;isolation:isolate;overflow:hidden;grid-template-columns:1fr 1.15fr;gap:90px;max-width:1440px;padding-top:100px;padding-bottom:100px}
.faq-intro {position:relative;min-width:0}
.faq-editorial h2 {font-size:49px;position:relative;z-index:2}
.faq-invitation {font-size:16px;max-width:330px;line-height:1.8;margin-top:25px;position:relative;z-index:2}
.faq-note {display:flex;align-items:center;gap:15px;margin-top:30px;position:relative;z-index:2}
.faq-note>span {font:italic 52px/1 var(--serif);border:1px solid #bea298;border-radius:50%;width:65px;height:65px;display:grid;place-items:center;color:var(--wine);transform:rotate(-12deg)}
.faq-note p {font-size:13px;line-height:1.8}
.faq-note em {font:italic 20px var(--serif)}
.faq-botanical {position:relative;height:205px;pointer-events:none;margin-top:15px;overflow:visible}
.faq-botanical img {position:absolute;width:260px;height:330px;object-fit:contain;right:-10px;top:-35px;transform:rotate(65deg);opacity:.9}
.faq-editorial .faq-list {position:relative;z-index:2}
.faq-editorial .faq-list details {border:1px solid #d5c5bb;border-radius:3px;background:#fdf9f380;margin-bottom:13px;transition:border-color .3s,background .3s,box-shadow .3s}
.faq-editorial .faq-list summary {padding:24px;display:flex;align-items:center;gap:18px;font-size:17px;list-style:none;cursor:pointer;transition:padding .3s,color .3s}
.faq-editorial .faq-list summary::-webkit-details-marker {display:none}
.faq-number {font:italic 25px var(--serif);color:#9d786e;flex-shrink:0}
.faq-question {flex:1;line-height:1.4}
.faq-action {display:block;margin-top:8px;font-size:11px;color:var(--wine);letter-spacing:.02em}
.faq-open {display:none}
.faq-toggle {flex-shrink:0;border:1px solid #bda497;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:22px;color:var(--wine);transition:transform .35s,background .35s,color .35s}
.faq-editorial .faq-list details:hover,.faq-editorial .faq-list details:focus-within,.faq-editorial .faq-list details[open] {background:#eee0d7;border-color:#987064;box-shadow:0 9px 22px #4b20250c}
.faq-editorial .faq-list summary:hover .faq-toggle,.faq-editorial .faq-list summary:focus-visible .faq-toggle {background:var(--wine);color:var(--paper);transform:rotate(45deg)}
.faq-editorial .faq-list summary:focus-visible {outline:2px solid var(--wine);outline-offset:4px}
.faq-editorial .faq-list details[open] .faq-toggle {background:var(--wine);color:var(--paper);transform:rotate(180deg)}
.faq-editorial .faq-list details[open] .faq-closed {display:none}
.faq-editorial .faq-list details[open] .faq-open {display:inline}
.faq-editorial .faq-list details>div {padding:0 28px 28px 68px;font-size:15px;line-height:1.8}
.faq-editorial .faq-list details[open]>div {animation:answer-arrives .45s ease-out}
@keyframes answer-arrives {from {opacity:0;transform:translateY(-6px)}to {opacity:1;transform:translateY(0)}}
.petal-field {position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.drift-petal {position:absolute;top:-80px;width:42px;height:65px;background:url('../images/orchid-petal.webp') center/contain no-repeat;opacity:0;animation:petal-drift 17s linear infinite;animation-play-state:paused}
.petal-one {left:8%;animation-delay:-3s}
.petal-two {left:36%;width:30px;height:48px;animation-duration:23s;animation-delay:-13s}
.petal-three {left:86%;width:22px;height:35px;animation-duration:21s;animation-delay:-8s}
.faq-editorial.petals-running .drift-petal {animation-play-state:running}
@keyframes petal-drift {0% {transform:translate(0,0) rotate(-20deg);opacity:0}12% {opacity:.7}50% {transform:translate(45px,420px) rotate(65deg);opacity:.65}85% {opacity:.5}100% {transform:translate(-20px,950px) rotate(150deg);opacity:0}}
.botanical-motion {position:absolute;left:7%;bottom:26px;padding:7px 12px;background:transparent;border:1px solid #c7b5aa;border-radius:25px;font-size:10px;color:var(--muted);z-index:3;cursor:pointer}
.botanical-motion:hover {background:#e9dbd0;color:var(--wine)}
@media(max-width:1100px) {
  .journal-scroll .journal-flow {gap:45px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
  .journal-scroll .journal-title,.journal-scroll .journal-entry[open] .journal-title {font-size:31px}
  .faq-editorial {gap:45px}
}
@media(max-width:760px) {
  .journal-scroll .journal-flow {display:block;margin-top:30px}
  .journal-scene {display:none}
  .journal-scroll .teaser-visual {display:block;aspect-ratio:1.7}
  .journal-scroll .teaser-copy,.journal-scroll .journal-entry[open] .teaser-copy {padding:26px 23px}
  .journal-scroll .journal-title,.journal-scroll .journal-entry[open] .journal-title {font-size:32px}
  .journal-scroll .journal-body {padding:0 23px 25px}
  .journal-scroll .journal-excerpt {font-size:14px}
  .faq-editorial {display:block;padding-top:70px;padding-bottom:70px}
  .faq-editorial h2 {font-size:39px}
  .faq-botanical {position:absolute;right:-85px;top:130px;width:190px;height:200px;opacity:.38}
  .faq-botanical img {width:190px;height:220px}
  .faq-note {margin-bottom:35px}
  .faq-editorial .faq-list summary {padding:20px 16px;gap:12px;font-size:15px}
  .faq-toggle {width:32px;height:32px;font-size:20px}
  .faq-editorial .faq-list details>div {padding:0 20px 23px 48px;font-size:14px}
  .faq-number {font-size:21px}
  .botanical-motion {left:24px;bottom:25px}
}
@media(prefers-reduced-motion:reduce) {
  .drift-petal {display:none;animation:none}
  .story-stage-image,.journal-scroll .journal-excerpt {transition:none}
  .faq-editorial .faq-list details[open]>div {animation:none}
  .botanical-motion {display:none}
}
.journal-scroll {position:relative;isolation:isolate}
.journal-scroll .journal-flow,.journal-scroll .journal-heading,.journal-scroll .journal-filters,.journal-scroll .section-intro {position:relative;z-index:1}
.journal-scroll .journal-entry {
  border:1px solid #d8c6b8;border-radius:25px 25px 25px 7px;background:#fbf6ef;
  box-shadow:0 10px 30px #54233109;overflow:hidden;
  transition:background .4s,border-color .4s,box-shadow .4s,transform .4s;
}
.journal-scroll .journal-entry:nth-child(even) {border-radius:25px 25px 7px 25px}
.journal-scroll .teaser-visual,.journal-scroll .journal-entry[open] .teaser-visual {
  display:block;aspect-ratio:2.45;width:100%;max-height:255px;
}
.journal-scroll .teaser-visual::after {
  content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 55%,#29121825);
}
.journal-scroll .teaser-provenance,.journal-scroll .teaser-emblem {z-index:1}
.journal-scroll .teaser-provenance {font-size:10px;padding:7px 12px}
.journal-scroll .teaser-emblem {height:46px;width:46px;right:20px;bottom:18px;box-shadow:0 4px 12px #3a122018}
.journal-scroll .teaser-copy,.journal-scroll .journal-entry[open] .teaser-copy {padding:29px 32px 30px}
.journal-scroll .journal-title {font-size:35px;margin-bottom:20px}
.journal-scroll .journal-entry:hover,.journal-scroll .journal-entry:focus-within {
  transform:translateY(-3px);box-shadow:0 18px 40px #54233112;background:#fffaf3;
}
.journal-scroll .journal-entry.is-current {box-shadow:0 14px 40px #54233110;border-color:#af7e7b;background:#fffaf3}
.journal-scroll .journal-entry[open] {transform:none}
.story-peek {display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows .85s cubic-bezier(.2,.7,.3,1),opacity .6s}
.story-peek-inner {min-height:0;overflow:hidden}
.preview-kicker {display:block;font-size:9px;letter-spacing:.08em;color:#937366;margin:2px 0 17px}
.journal-preview {display:block;font-size:15px;line-height:1.8;color:#65514a;overflow-wrap:anywhere}
.journal-preview::first-letter {float:left;font:80px/.8 var(--serif);color:var(--wine);margin:9px 10px 0 0}
.journal-scroll .journal-read,.journal-scroll .journal-entry[open] .journal-read {
  border:none;border-radius:30px;background:var(--wine);color:var(--paper);padding:14px 22px;max-width:220px;
  align-self:flex-start;min-width:180px;box-shadow:0 4px 12px #571c2c16;
  transition:opacity .4s .2s,transform .4s .2s,background .3s,box-shadow .3s;
}
.journal-scroll .journal-entry>summary:hover .journal-read,.journal-scroll .journal-entry>summary:focus-visible .journal-read {background:#793349;box-shadow:0 8px 18px #571c2c24}
.journal-scroll.js-journal .journal-entry:not(.is-revealed):not([open]) .story-peek {grid-template-rows:0fr;opacity:0}
.journal-scroll.js-journal .journal-entry:not(.is-revealed):not([open]) .journal-read {opacity:0;transform:translateY(10px);visibility:hidden}
.journal-scroll.js-journal .journal-entry:not(.is-revealed):not([open]) .story-row-hint {opacity:0}
.story-row-hint {font-size:10px;margin-top:14px;line-height:1.5;transition:opacity .4s .25s}
.journal-scroll .journal-body {padding:5px 32px 35px}
.rose-petal {background-image:url('../images/rose-petal.webp')}
.journal-scroll.petals-running .drift-petal {animation-play-state:running}
.journal-petals .petal-one {left:4%;animation-duration:24s}
.journal-petals .petal-two {left:47%;animation-duration:27s;width:23px;height:35px}
.journal-petals .petal-three {left:96%;animation-duration:29s;width:28px;height:38px}
.journal-petals {position:sticky;top:100px;height:calc(100vh - 110px);margin-top:calc(-100vh + 110px);max-width:none!important}
.journal-scroll .journal-motion {left:auto;right:6%;bottom:20px}
@media(max-width:760px) {
  .journal-scroll .teaser-visual,.journal-scroll .journal-entry[open] .teaser-visual {aspect-ratio:1.6;max-height:none}
  .journal-scroll .teaser-copy,.journal-scroll .journal-entry[open] .teaser-copy {padding:25px 23px}
  .journal-scroll .journal-title,.journal-scroll .journal-entry[open] .journal-title {font-size:31px}
  .journal-preview {font-size:14px}
  .journal-preview::first-letter {font-size:70px}
  .journal-scroll .journal-body {padding:0 23px 28px}
  .journal-petals .petal-two {left:84%}
  .journal-petals .petal-three {display:none}
}
@media(prefers-reduced-motion:reduce) {
  .story-peek,.journal-scroll .journal-read,.journal-scroll .journal-entry {transition:none}
  .journal-petals {display:none}
}
.faq-editorial .petal-four {left:20%;width:35px;height:47px;animation-duration:22s;animation-delay:-10s}
.faq-editorial .petal-five {left:62%;width:26px;height:38px;animation-duration:26s;animation-delay:-19s}
.faq-editorial .petal-six {left:91%;width:32px;height:45px;animation-duration:20s;animation-delay:-6s}
.faq-editorial .faq-list details {border-radius:17px 17px 17px 5px}
@keyframes petal-drift {
  0% {transform:translate(0,-10px) rotate(-20deg);opacity:0}
  12% {opacity:.72}
  45% {transform:translate(38px,350px) rotate(50deg);opacity:.65}
  65% {transform:translate(28px,550px) rotate(95deg);opacity:.5}
  82% {opacity:.18}
  100% {transform:translate(-20px,950px) rotate(150deg);opacity:0}
}
.faq-editorial .faq-list details::details-content {
  interpolate-size:allow-keywords;
  block-size:0;
  overflow:hidden;
  transition:block-size .6s ease,content-visibility .6s allow-discrete;
}
.faq-editorial .faq-list details[open]::details-content {block-size:auto}
@media(prefers-reduced-motion:reduce) {
  .faq-editorial .faq-list details::details-content {transition:none}
}
.journal-preview {
  max-height:270px;overflow:hidden;
  mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - 22px),transparent 100%);
}
@media(max-width:760px) {
  .journal-preview {max-height:226px}
}
.faq-editorial.no-unfold-motion .faq-list details::details-content {transition:none}
.journal-petals {
  position:absolute;inset:0;height:auto;margin-top:0;overflow:clip;
}
.journal-petal-window {
  display:block;position:sticky;top:110px;height:calc(100vh - 110px);overflow:hidden;
}
.journal-scroll.no-unfold-motion .story-peek,.journal-scroll.no-unfold-motion .journal-read {transition:none}
.contact .appointment-note {
  display:flex;gap:18px;align-items:flex-start;
  padding:26px;border:1px solid #c7a89d;border-left:4px solid var(--wine);
  border-radius:20px 20px 20px 5px;background:#f8f0e7;
  box-shadow:0 10px 26px #57203009;max-width:550px;margin-top:25px;
}
.appointment-icon {
  flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;
  background:var(--wine);color:var(--paper);border-radius:50%;
}
.appointment-icon svg {width:24px;height:24px}
.appointment-copy {min-width:0}
.contact .appointment-label {font-size:10px;line-height:1.6;letter-spacing:.08em;display:block}
.appointment-title {display:block;font:italic 31px/1.15 var(--serif);color:var(--wine);margin-top:9px;font-weight:500}
.contact .appointment-note p {font-size:15px;line-height:1.75;margin-top:12px;color:var(--ink)}
.contact .appointment-note .email-policy {
  padding:11px 13px;border-radius:9px;background:#ead6d1;color:var(--wine);margin-top:17px;font-size:14px;line-height:1.6;
}
.email-policy strong {font-weight:600}
@media(max-width:760px) {
  .contact .appointment-note {padding:21px 18px;gap:12px}
  .appointment-icon {width:35px;height:35px}
  .appointment-icon svg {width:21px;height:21px}
  .appointment-title {font-size:28px}
  .contact .appointment-note p {font-size:14px}
  .contact .appointment-note .email-policy {font-size:13px;padding:10px}
}
.story-step:has(.journal-entry[hidden]) {display:none}
.journal-scroll.js-journal .story-step {
  position:relative;padding-bottom:100px;overflow-anchor:none;
}
.journal-scroll.js-journal .story-step>.journal-entry {position:sticky;top:125px;overflow-anchor:none}
.journal-scroll.js-journal .story-peek {transition:grid-template-rows 1.05s cubic-bezier(.2,.65,.25,1),opacity .7s}
.journal-scroll.js-journal .journal-entry:not(.is-revealed):not([open]) .journal-read {visibility:hidden;transition-delay:0s}
.journal-scroll.js-journal .journal-entry.is-revealed .journal-read {transition-delay:.45s}
.journal-scroll .journal-entry:hover,.journal-scroll .journal-entry:focus-within {transform:none}
@media(max-width:760px) {
  .journal-scroll.js-journal .story-step {padding-bottom:70px}
  .journal-scroll.js-journal .story-step>.journal-entry {position:relative;top:auto}
}
@media(prefers-reduced-motion:reduce) {
  .journal-scroll.js-journal .story-peek {transition:none}
}
.contact-heading {border-bottom:0;padding-bottom:0}
.contact-grid {grid-template-columns:1.45fr 1fr 1fr;gap:22px;border-top:0;padding-top:0;align-items:stretch;margin-top:42px}
.contact-details {display:contents}
.contact-card {
  min-width:0;padding:30px;background:#f8f0e7;border:1px solid #cdb5a7;
  border-radius:22px 22px 22px 6px;box-shadow:0 12px 30px #54233108;
}
.contact .contact-card h3,.contact-card-label {font-size:10px;letter-spacing:.1em;line-height:1.6;font-weight:600;margin:0 0 24px;color:var(--wine)}
.contact-action>p {max-width:none;font-size:15px;line-height:1.8}
.contact .contact-phone {font-size:clamp(25px,2.2vw,34px);max-width:none;margin:23px 0;gap:12px;white-space:nowrap}
.contact .contact-phone span {font-size:24px}
.contact-card .appointment-note {
  border:none;border-top:1px solid #ccb5a7;border-radius:0;background:transparent;box-shadow:none;
  padding:22px 0 0;margin:0;display:block;max-width:none;
}
.contact-card .appointment-icon {display:none}
.contact-card .appointment-label {font-size:9px}
.contact-card .appointment-title {font-size:30px}
.contact .contact-card .appointment-note p {font-size:14px;line-height:1.7}
.contact .contact-card .appointment-note .email-policy {margin-top:15px;padding:11px;font-size:13px}
.contact-card-icon {
  width:56px;height:56px;display:grid;place-items:center;border:1px solid #bd9a8c;
  border-radius:50%;color:var(--wine);margin:32px 0 26px;background:#f0dfd5;
}
.contact-card-icon svg {width:27px;height:27px}
.contact-details address {font-size:15px;line-height:1.9}
.contact-details .text-link {font-size:14px;margin-top:25px}
.contact .hours {font-size:15px}
.contact .hours dd {font:35px/1.3 var(--serif);color:var(--wine);margin-top:15px;white-space:nowrap}
.contact .hours dd span {font:11px var(--sans)}
.contact .hours-note {font-size:13px;line-height:1.8;margin-top:23px}
@media(max-width:1100px) and (min-width:761px) {
  .contact-grid {grid-template-columns:1fr 1fr}
  .contact-action {grid-column:1/-1}
  .contact .contact-phone {max-width:480px;font-size:34px}
  .contact-card .appointment-note {max-width:600px}
}
@media(max-width:760px) {
  .contact-grid {grid-template-columns:1fr;gap:18px;margin-top:28px}
  .contact-card {padding:25px}
  .contact .contact-phone {font-size:clamp(23px,7.2vw,29px)}
  .contact-card-icon {margin:20px 0;width:46px;height:46px}
  .contact .hours dd {font-size:35px}
}
.story-step {width:100%;min-width:0}
.journal-scroll .journal-title {overflow-wrap:anywhere}
.journal-petals {z-index:2}
.journal-drop-1 {left:3%;width:35px;height:48px;animation-duration:17s;animation-delay:-2s}
.journal-drop-2 {left:14%;width:31px;height:43px;animation-duration:21s;animation-delay:-7s}
.journal-drop-3 {left:29%;width:42px;height:57px;animation-duration:19s;animation-delay:-12s}
.journal-drop-4 {left:43%;width:29px;height:39px;animation-duration:18s;animation-delay:-4s}
.journal-drop-5 {left:54%;width:32px;height:47px;animation-duration:22s;animation-delay:-10s}
.journal-drop-6 {left:68%;width:36px;height:48px;animation-duration:20s;animation-delay:-15s}
.journal-drop-7 {left:84%;width:28px;height:41px;animation-duration:19s;animation-delay:-8s}
.journal-drop-8 {left:96%;width:34px;height:45px;animation-duration:23s;animation-delay:-17s}
@media(max-width:760px) {
  .journal-drop-2 {left:19%}
  .journal-drop-4 {left:58%}
  .journal-drop-6,.journal-drop-7 {display:none}
}
/* Keep the reading geometry steady; transition only the visible presentation. */
.journal-scroll.js-journal .story-peek,
.journal-scroll.js-journal .journal-entry:not(.is-revealed):not([open]) .story-peek {
  grid-template-rows:1fr;
  transition:opacity .85s ease-in-out,transform .85s ease-in-out;
}
.journal-scroll.js-journal .journal-entry:not(.is-revealed):not([open]) .story-peek {
  opacity:0;transform:translateY(8px);pointer-events:none;
}
.journal-scroll.js-journal .journal-entry.is-revealed .story-peek,
.journal-scroll.js-journal .journal-entry[open] .story-peek {
  opacity:1;transform:translateY(0);
}
.journal-scroll.js-journal .journal-entry {
  transition:opacity .8s ease-in-out,background .7s ease-in-out,border-color .7s ease-in-out,box-shadow .7s ease-in-out;
}
.journal-scroll.js-journal .journal-entry:not(.is-current):not([open]) {opacity:.78}
.journal-scroll.js-journal .journal-entry.is-current,
.journal-scroll.js-journal .journal-entry[open],
.journal-scroll.js-journal .journal-entry:focus-within {opacity:1}
.journal-scroll .journal-read {transition:opacity .65s ease-in-out .25s,transform .65s ease-in-out .25s,background .3s ease-in-out}
.story-stage-image {transition:opacity 1s ease-in-out,transform 1.3s ease-in-out}
.services-editorial,.faq-editorial {overflow-anchor:none}
.service-unfold {transition-timing-function:ease-in-out}
.faq-editorial .faq-list details::details-content {transition-timing-function:ease-in-out}
@media(prefers-reduced-motion:reduce) {
  .journal-scroll.js-journal .story-peek,.journal-scroll.js-journal .journal-entry,.story-stage-image,.journal-scroll .journal-read {transition:none}
}
.teaser-line {color:var(--wine);font:italic 28px/1.2 var(--serif);letter-spacing:-.015em}
.hero-copy .hero-teaser {margin-top:28px}
.hero-copy .hero-description {margin-top:13px;max-width:415px;font-size:16px;line-height:1.85;display:flow-root}
.intro-initial::first-letter {float:left;font:72px/.82 var(--serif);color:var(--wine);margin:8px 11px 0 0}
.philosophy-copy>.studio-teaser {font:italic 28px/1.2 var(--serif);color:var(--wine);margin:0 0 18px}
.philosophy-copy>.intro-initial {display:flow-root;font-size:17px;color:var(--ink);line-height:1.85}
.journal-heading>.journal-intro {display:flow-root}
.journal-intro::first-letter {font-size:65px}
@media(max-width:760px) {
  .hero-copy .hero-teaser {margin-top:24px;font-size:25px}
  .hero-copy .hero-description {font-size:15px;margin-top:12px;max-width:330px}
  .intro-initial::first-letter {font-size:62px;margin-top:7px;margin-right:9px}
  .philosophy-copy>.studio-teaser {font-size:26px}
  .philosophy-copy>.intro-initial {font-size:16px}
  .journal-intro::first-letter {font-size:58px}
}
.section-lead {max-width:410px;min-width:0}
.section-lead>.teaser-line {font-size:26px;line-height:1.25;margin-bottom:16px;color:var(--wine)}
.section-lead>.intro-initial {display:flow-root;font-size:16px;line-height:1.85;color:var(--muted)}
.service-editorial-heading>.section-lead {max-width:300px}
.service-editorial-heading .section-lead>.teaser-line {color:#edc5cb}
.service-editorial-heading .intro-initial {color:var(--paper)}
.service-editorial-heading .intro-initial::first-letter {color:#edc5cb}
.gallery-heading>.section-lead {max-width:350px}
.gallery-heading .muted {display:block;margin-top:13px}
.service-card-content>.intro-initial {display:flow-root}
.compact-initial::first-letter {font-size:59px;margin-top:8px;margin-right:9px}
.faq-intro>.faq-teaser {font-size:26px;position:relative;z-index:2;margin-top:26px;max-width:350px}
.faq-intro>.faq-invitation {display:flow-root;margin-top:14px}
.contact-action>.intro-initial {display:flow-root}
.directions-copy>.directions-teaser {font-size:27px;margin:24px 0 12px}
.directions-copy>.intro-initial {display:flow-root}
@media(max-width:760px) {
  .section-lead {max-width:100%}
  .section-lead>.teaser-line {font-size:25px;margin-bottom:14px}
  .section-lead>.intro-initial {font-size:15px}
  .compact-initial::first-letter {font-size:53px}
  .faq-intro>.faq-teaser {font-size:25px}
}
.faq-intro .faq-note {
  padding:24px 130px 24px 24px;gap:16px;min-height:145px;max-width:490px;
  background:#efe3d9;border:1px solid #d7c2b5;border-radius:20px 20px 6px 20px;
  overflow:hidden;align-items:center;
}
.faq-intro .faq-note>span {width:51px;height:51px;font-size:39px;flex-shrink:0;position:relative;z-index:2}
.faq-intro .faq-note>p {position:relative;z-index:2}
.faq-note .faq-botanical {
  position:absolute;right:-10px;bottom:-22px;top:auto;margin:0;width:135px;height:175px;opacity:.85;
}
.faq-note .faq-botanical img {
  inset:0;width:135px;height:175px;object-fit:contain;transform:rotate(-16deg);opacity:1;
}
@media(max-width:760px) {
  .faq-intro .faq-note {padding:20px 85px 20px 18px;gap:12px;min-height:140px}
  .faq-intro .faq-note>span {width:42px;height:42px;font-size:34px}
  .faq-note .faq-botanical {right:-20px;bottom:-18px;width:108px;height:155px;opacity:.7}
  .faq-note .faq-botanical img {width:108px;height:155px}
  .faq-note p em {font-size:18px}
}

/* Current question, paired with the orchid rather than an instruction to scroll. */
.faq-intro .faq-note {min-height:160px}
.faq-intro .faq-note>.faq-current-number {
  border:0;transform:none;font:italic 46px/1 var(--serif);width:58px;height:58px;
}
.faq-intro .faq-note>.faq-current-question {
  font:24px/1.25 var(--serif);color:var(--wine);margin:0;min-width:0;
}
@media(min-width:761px) and (min-height:740px) {
  .faq-editorial {overflow:clip;align-items:start}
  .faq-editorial .faq-intro {position:sticky;top:125px}
}
@media(max-width:760px) {
  .faq-intro .faq-note {min-height:160px}
  .faq-intro .faq-note>.faq-current-number {font-size:36px;width:40px;height:46px}
  .faq-intro .faq-note>.faq-current-question {font-size:22px;line-height:1.3}
}

/* A quiet pulse draws attention to the direct contact link. */
.desktop-nav a.contact-nav,#mobile-nav a.contact-nav {
  position:relative;background:#ead7cf;color:var(--wine);border-radius:999px;
}
.desktop-nav a.contact-nav::before,#mobile-nav a.contact-nav::before {
  content:"";position:absolute;inset:0;border:1px solid #8d485b;border-radius:inherit;
  pointer-events:none;animation:contact-pulse 3.8s ease-in-out infinite;
}
.desktop-nav a.contact-nav:hover,.desktop-nav a.contact-nav:focus-visible,
#mobile-nav a.contact-nav:hover,#mobile-nav a.contact-nav:focus-visible {
  background:var(--wine);color:var(--paper);
}
.desktop-nav a.contact-nav:hover::before,.desktop-nav a.contact-nav:focus-visible::before,
#mobile-nav a.contact-nav:hover::before,#mobile-nav a.contact-nav:focus-visible::before {animation-play-state:paused}
#mobile-nav a.contact-nav {padding-left:20px;padding-right:20px;margin-top:8px}
@keyframes contact-pulse {
  0%,100% {opacity:.15;transform:scale(1)}
  50% {opacity:.5;transform:scale(1.09,1.13)}
}
@media(prefers-reduced-motion:reduce) {
  .desktop-nav a.contact-nav::before,#mobile-nav a.contact-nav::before {animation:none;opacity:.3}
}
