/* RITUALS V2 — shared tokens and editorial typography */
@font-face {
  font-family:Editorial;
  src:url('assets/editorial.woff2') format('woff2');
  font-weight:400;
  font-display:swap
}
@font-face {
  font-family:Editorial;
  src:url('assets/editorial-italic.woff2') format('woff2');
  font-weight:400;
  font-style:italic;
  font-display:swap
}
@font-face {
  font-family:Sans;
  src:url('assets/sans.woff2') format('woff2');
  font-weight:100 900;
  font-display:swap
}
:root {
  --ink:#142c29;
  --forest:#203b35;
  --paper:#f1f2ec;
  --muted:#56625c;
  --copper:#e6bda0;
  --line:#cbd0c7;
  --gutter:clamp(24px,5.6vw,108px);
  --serif:Editorial,Georgia,serif;
  --sans:Sans,Arial,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --hero-progress:0;
  --pointer-x:0;
  --pointer-y:0
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:90px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:16px/1.65 var(--sans);
  overflow-x:clip
}
body.modal-open {
  overflow:hidden
}
button,input,select {
  font:inherit
}
button,a {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer;
  color:inherit;
  border:0
}
a {
  color:inherit;
  text-decoration:none
}
img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover
}
h1,h2,h3,p,figure {
  margin:0
}
h1,h2,h3 {
  font-family:var(--serif);
  font-weight:400;
  line-height:1.02;
  letter-spacing:-.045em
}
h2 {
  font-size:clamp(52px,6.3vw,100px)
}
h3 {
  font-size:38px
}
p {
  color:var(--muted)
}
em {
  font-weight:400
}
::selection {
  background:var(--copper);
  color:var(--ink)
}
:focus-visible {
  outline:2px solid #b07852;
  outline-offset:6px
}
button:disabled {
  cursor:default;
  opacity:.4
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap
}
.skip {
  position:fixed;
  top:-100px;
  left:24px;
  z-index:200;
  background:var(--copper);
  padding:14px 24px
}
.skip:focus {
  top:12px
}
.eyebrow,.chapter {
  font-size:11px;
  letter-spacing:.16em;
  font-weight:500;
  line-height:1.5
}
.section {
  padding:110px var(--gutter)
}
.section-label {
  display:flex;
  justify-content:space-between;
  gap:30px;
  padding-bottom:32px;
  border-bottom:1px solid var(--line);
  margin-bottom:65px;
  font-size:10px;
  letter-spacing:.14em
}
.section-label>span:last-child {
  text-align:right
}
.button {
  display:inline-flex;
  justify-content:space-between;
  align-items:center;
  gap:35px;
  min-height:56px;
  padding:0 22px;
  font-size:14px;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  transition:color .35s,transform .6s var(--ease)
}
.button:before {
  content:'';
  position:absolute;
  inset:0;
  background:#fff3;
  transform:translateY(101%);
  z-index:-1;
  transition:transform .5s var(--ease)
}
.button:hover:before {
  transform:translateY(0)
}
.button-mark {
  font-size:23px;
  line-height:1;
  transition:transform .5s var(--ease)
}
.button:hover .button-mark {
  transform:rotate(90deg)
}
.copper {
  background:var(--copper);
  color:var(--ink)
}
.dark {
  background:var(--ink);
  color:var(--paper)
}
.text-link {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:10px 0;
  background:none;
  border-bottom:1px solid currentColor;
  font-size:14px;
  line-height:1.4;
  position:relative
}
.text-link:after {
  content:'';
  position:absolute;
  bottom:-1px;
  left:0;
  height:2px;
  width:100%;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .5s var(--ease)
}
.text-link:hover:after {
  transform:scaleX(1);
  transform-origin:left
}
.text-link>span {
  font-size:21px
}
.reading-progress {
  position:fixed;
  top:0;
  left:0;
  height:2px;
  background:var(--copper);
  width:100%;
  transform:scaleX(0);
  transform-origin:left;
  z-index:110
}
/* Navigation */
.header {
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:40;
  padding:23px var(--gutter);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  color:var(--paper);
  transition:background .45s,padding .45s;
  border-bottom:1px solid #ffffff20
}
.header.scrolled {
  padding-top:15px;
  padding-bottom:15px;
  background:#142c29f5
}
.brand {
  font:47px/.75 var(--serif);
  letter-spacing:-.065em;
  display:inline-block
}
.brand span {
  display:block;
  font:8px/1.4 var(--sans);
  letter-spacing:.14em;
  margin-top:10px
}
.desktop-nav {
  display:flex;
  gap:30px;
  font-size:13px
}
.desktop-nav a {
  padding:8px 0;
  position:relative
}
.desktop-nav a:after {
  content:'';
  position:absolute;
  left:0;
  bottom:0;
  right:0;
  height:1px;
  background:var(--copper);
  transform:scaleX(0);
  transition:transform .4s var(--ease);
  transform-origin:left
}
.desktop-nav a:hover:after,.desktop-nav a.active:after {
  transform:scaleX(1)
}
.header-actions {
  display:flex;
  align-items:center;
  gap:28px
}
.header-book {
  background:none;
  border-bottom:1px solid #e6bda088;
  font-size:12px;
  padding:9px 0;
  color:var(--copper)
}
.menu-button {
  width:34px;
  height:44px;
  background:none;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:7px;
  padding:4px
}
.menu-button span {
  width:26px;
  height:1px;
  background:currentColor;
  transition:width .4s
}
.menu-button span:last-child {
  width:18px;
  align-self:flex-end
}
.menu-button:hover span:last-child {
  width:26px
}
/* Opening scene */
.hero {
  height:135svh;
  min-height:950px;
  background:var(--ink);
  color:var(--paper);
  position:relative
}
.hero-stage {
  height:100svh;
  min-height:720px;
  position:sticky;
  top:0;
  overflow:hidden;
  isolation:isolate
}
.hero-coordinate {
  position:absolute;
  left:var(--gutter);
  top:137px;
  font-size:10px;
  z-index:5;
  color:#d2dbd3
}
.hero-coordinate span {
  margin-left:25px;
  color:#a3b5aa;
  font-size:9px
}
.hero-portal {
  position:absolute;
  right:8%;
  top:15%;
  width:49%;
  height:73%;
  clip-path:inset(0 round 49% 49% 45% 45%);
  transform:translate(calc(var(--pointer-x)*-9px),calc(var(--pointer-y)*-6px)) scale(calc(1 + var(--hero-progress)*.2));
  will-change:transform;
  z-index:-1
}
.hero-portal img {
  object-position:61% 50%;
  filter:brightness(.67) saturate(.68);
  transform:scale(calc(1.04 + var(--hero-progress)*.07));
  animation:hero-photo 1.9s var(--ease) both
}
.hero-portal:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#142c294d,transparent 50%,#142c2930)
}
.hero-aura {
  position:absolute;
  inset:0;
  z-index:-2;
  transform:rotate(calc(var(--hero-progress)*-12deg))
}
.hero-aura i {
  position:absolute;
  right:4%;
  top:9%;
  width:57%;
  height:84%;
  border:1px solid #e6bda030;
  border-radius:50%;
  transform:rotate(-18deg)
}
.hero-aura i:nth-child(2) {
  right:2%;
  top:7%;
  transform:rotate(13deg);
  border-color:#e6bda015
}
.hero-aura i:nth-child(3) {
  right:1%;
  top:5%;
  transform:rotate(31deg);
  border-color:#e6bda00d
}
.hero-copy {
  position:absolute;
  left:var(--gutter);
  top:28%;
  right:var(--gutter);
  transform:translateY(calc(var(--hero-progress)*-35px));
  z-index:2
}
.hero-copy>.eyebrow {
  color:var(--copper);
  margin-bottom:26px;
  font-size:10px
}
.hero h1 {
  font-size:clamp(76px,9.8vw,155px);
  letter-spacing:-.05em;
  line-height:.95;
  max-width:1100px
}
.hero h1 .line {
  display:block;
  overflow:hidden;
  padding-bottom:10px
}
.hero h1 .line>span,.hero h1 .line>em {
  display:block;
  animation:line-enter 1.25s var(--ease) both
}
.hero h1 .line:nth-child(2)>em {
  animation-delay:.16s;
  color:var(--copper);
  padding-left:8vw
}
.hero-description {
  display:flex;
  align-items:flex-end;
  gap:48px;
  margin-top:28px
}
.hero-description p {
  color:#d1d9d2;
  font-size:14px;
  line-height:1.65
}
.hero-description .button {
  min-width:230px
}
.hero-enter {
  animation:fade-enter 1.5s var(--ease) .25s both
}
.hero-side {
  position:absolute;
  right:30px;
  top:36%;
  writing-mode:vertical-rl;
  letter-spacing:.22em;
  font-size:9px;
  color:#c5cec4
}
.hero-bottom {
  position:absolute;
  bottom:38px;
  left:var(--gutter);
  right:var(--gutter);
  display:flex;
  align-items:center;
  justify-content:space-between;
  z-index:3
}
.scroll-cue {
  display:flex;
  align-items:center;
  gap:16px;
  font-size:9px;
  letter-spacing:.12em
}
.scroll-line {
  height:40px;
  width:1px;
  display:block;
  background:#ffffff40;
  overflow:hidden;
  position:relative
}
.scroll-line:after {
  content:'';
  position:absolute;
  left:0;
  top:0;
  height:18px;
  width:1px;
  background:var(--copper);
  animation:scroll-cue 2.3s ease-in-out infinite
}
.hero-rating {
  display:flex;
  align-items:center;
  gap:16px
}
.hero-rating>span:first-child {
  font-family:var(--serif);
  font-size:49px;
  line-height:1
}
.hero-rating small {
  font:12px var(--sans);
  margin-left:4px
}
.hero-rating>span:last-child {
  font-size:10px;
  color:#d1d9d2;
  line-height:1.7
}
.hero-watermark {
  position:absolute;
  bottom:-95px;
  left:25%;
  font:clamp(220px,31vw,520px)/1 var(--serif);
  letter-spacing:-.07em;
  color:#f1f2ec05;
  pointer-events:none;
  z-index:0
}
.ticker {
  padding:20px 0;
  background:var(--copper);
  color:var(--ink);
  overflow:hidden
}
.ticker-track {
  display:flex;
  width:max-content;
  animation:ticker 105s linear infinite
}
.ticker-track>span {
  font-size:13px;
  letter-spacing:.17em;
  white-space:nowrap;
  padding-right:50px;
  display:flex;
  align-items:center;
  gap:35px
}
.ticker i {
  font:28px var(--serif);
  letter-spacing:0
}
.ticker b {
  font-weight:400;
  font-size:25px;
  margin:0 25px
}
/* Editorial and treatments */
.manifesto {
  padding-top:90px;
  padding-bottom:100px
}
.manifesto-main {
  margin-left:20%
}
.manifesto h2 {
  font-size:clamp(45px,5.4vw,82px);
  max-width:1050px;
  line-height:1.15;
  letter-spacing:-.035em
}
.manifesto h2 em {
  color:#8d674e
}
.word {
  transition:opacity .4s
}
.manifesto-bottom {
  display:grid;
  grid-template-columns:.5fr 1.4fr 1fr;
  gap:40px;
  margin-top:45px;
  align-items:start
}
.manifesto-bottom p {
  font-size:15px;
  max-width:390px
}
.manifesto-bottom .text-link {
  font-size:13px;
  justify-self:start;
  align-self:end
}
.asterisk {
  font-size:76px;
  line-height:1;
  font-weight:300;
  color:#937156;
  display:block
}
.rituals {
  background:#e4e8df;
  padding-top:75px
}
.section-heading {
  display:flex;
  justify-content:space-between;
  gap:60px;
  align-items:flex-end;
  margin-bottom:65px
}
.heading-aside {
  max-width:350px
}
.heading-aside p {
  font-size:15px;
  margin-bottom:24px
}
.ritual-layout {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:9%
}
.ritual-photo {
  position:sticky;
  top:115px;
  align-self:start;
  height:600px;
  overflow:hidden
}
.ritual-photo img {
  object-position:47% 50%;
  transition:transform 1.2s var(--ease),opacity .4s;
  filter:saturate(.65)
}
.ritual-photo:hover img {
  transform:scale(1.045)
}
.photo-frame {
  position:absolute;
  inset:20px;
  border:1px solid #ffffff55;
  pointer-events:none
}
.photo-number {
  position:absolute;
  top:30px;
  left:38px;
  font:90px/1 var(--serif);
  color:white;
  letter-spacing:-.05em;
  text-shadow:0 2px 20px #142c2933
}
.photo-caption {
  position:absolute;
  bottom:35px;
  left:35px;
  right:20px;
  font-size:10px;
  letter-spacing:.15em;
  color:#fff;
  text-shadow:0 1px 10px #000;
  z-index:1
}
.ritual-photo:after {
  content:'';
  position:absolute;
  inset:70% 0 0;
  background:linear-gradient(transparent,#142c2977);
  pointer-events:none
}
.ritual-row {
  border-top:1px solid #aebbae;
  transition:background .4s
}
.ritual-row:last-child {
  border-bottom:1px solid #aebbae
}
.ritual-row summary {
  display:flex;
  align-items:center;
  gap:28px;
  list-style:none;
  padding:32px 0;
  cursor:pointer
}
summary::-webkit-details-marker {
  display:none
}
.row-index {
  font-size:11px;
  align-self:flex-start;
  margin-top:10px;
  color:#677664
}
.ritual-row h3 {
  font-size:clamp(40px,4.2vw,62px);
  transition:transform .5s var(--ease)
}
.ritual-row summary:hover h3 {
  transform:translateX(8px)
}
.ritual-row summary p {
  font-size:12px;
  margin-top:10px
}
.plus {
  font-size:30px;
  font-weight:300;
  margin-left:auto;
  transition:transform .5s var(--ease)
}
.ritual-row[open] .plus {
  transform:rotate(45deg)
}
.ritual-row-content {
  padding:0 0 30px 43px;
  animation:disclosure .45s var(--ease)
}
.ritual-row-content>p {
  font-size:14px;
  max-width:440px
}
.featured-service {
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid #b9c4b7;
  border-bottom:1px solid #b9c4b7;
  padding:17px 0;
  margin:25px 0 12px;
  font-size:14px
}
.featured-service small {
  display:block;
  color:var(--muted);
  font-size:12px;
  margin-top:4px
}
.featured-service button {
  background:none;
  font-size:13px;
  text-decoration:underline;
  text-underline-offset:6px
}
.catalog-foot {
  margin-top:50px;
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:center;
  border-top:1px solid #b9c4b7;
  padding-top:28px
}
.catalog-foot p {
  font-size:11px;
  line-height:1.7
}
/* Pinned narrative */
.journey {
  background:var(--ink);
  color:var(--paper);
  height:260svh;
  min-height:1800px;
  position:relative
}
.journey-stage {
  position:sticky;
  top:0;
  height:100svh;
  min-height:730px;
  padding:112px var(--gutter) 25px;
  overflow:hidden;
  display:flex;
  flex-direction:column
}
.journey-top {
  display:flex;
  justify-content:space-between;
  color:var(--copper);
  align-items:center
}
.journey-count {
  font-size:12px;
  color:#acb9aa
}
.journey-count b {
  font-family:var(--serif);
  font-size:32px;
  font-weight:400;
  color:var(--copper);
  margin-right:15px
}
.journey-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin:17px 0 25px;
  gap:35px
}
.journey-heading h2 {
  font-size:clamp(38px,4.3vw,68px)
}
.journey-heading p {
  font-size:12px;
  color:#b6c6b7
}
.journey-composition {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13%;
  min-height:0;
  flex:1;
  align-items:center
}
.journey-image {
  position:relative;
  height:100%;
  max-height:420px;
  overflow:hidden;
  clip-path:inset(0 round 45% 45% 2px 2px)
}
.journey-image img {
  filter:saturate(.5) brightness(.8);
  transform:scale(calc(1.04 + var(--journey-progress,0)*.07));
  transition:opacity .4s
}
.journey-story {
  display:grid
}
.story {
  grid-area:1/1;
  opacity:0;
  transform:translateY(25px);
  pointer-events:none;
  visibility:hidden;
  transition:opacity .6s,transform .8s var(--ease),visibility .6s
}
.story.active {
  opacity:1;
  transform:none;
  pointer-events:auto;
  visibility:visible
}
.story>.eyebrow {
  color:var(--copper);
  font-size:9px
}
.story h3 {
  font-size:clamp(45px,4.5vw,70px);
  margin:22px 0
}
.story p {
  max-width:340px;
  font-size:14px;
  color:#bdcbbc
}
.journey-navigation {
  display:flex;
  gap:35px;
  margin-top:28px;
  flex-shrink:0
}
.journey-navigation button {
  flex:1;
  display:flex;
  align-items:center;
  gap:15px;
  padding:12px 0 15px;
  background:none;
  color:#9dae9e;
  font-size:11px;
  position:relative;
  text-align:left;
  border-bottom:1px solid #ffffff25
}
.journey-navigation button span:first-child {
  font-family:var(--serif);
  font-size:23px
}
.journey-navigation i {
  position:absolute;
  bottom:-1px;
  left:0;
  width:100%;
  height:2px;
  background:var(--copper);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .7s var(--ease)
}
.journey-navigation button[aria-current] {
  color:var(--paper)
}
.journey-navigation button[aria-current] i {
  transform:scaleX(1)
}
/* Shared rituals and breathing interlude */
.together {
  position:relative;
  padding-bottom:165px
}
.together-grid {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:8%;
  align-items:center
}
.together-title {
  position:relative;
  padding-top:20px
}
.together-title h2 {
  position:relative;
  font-size:clamp(50px,5.5vw,87px)
}
.together-title>p {
  max-width:330px;
  margin-top:30px;
  font-size:15px
}
.outlined-number {
  position:absolute;
  font:270px/.9 var(--serif);
  color:transparent;
  -webkit-text-stroke:1px #bcc5b5;
  opacity:.35;
  left:18%;
  top:-85px;
  pointer-events:none;
  letter-spacing:-.1em
}
.couple-offers {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px
}
.couple-offer {
  padding:40px 0 28px;
  border-top:1px solid #97a48e;
  border-bottom:1px solid #97a48e;
  transition:transform .6s var(--ease)
}
.couple-offer:nth-child(2) {
  margin-top:70px;
  margin-bottom:-70px
}
.couple-offer:hover {
  transform:translateY(-8px)
}
.couple-offer .eyebrow {
  font-size:9px;
  letter-spacing:.11em
}
.couple-offer h3 {
  font-size:39px;
  margin:24px 0 30px;
  line-height:1.08
}
.couple-offer>div {
  display:flex;
  justify-content:space-between;
  gap:16px;
  margin-bottom:22px;
  font-size:13px
}
.couple-offer strong {
  font-weight:400
}
.couple-offer .text-link {
  font-size:12px;
  width:100%;
  gap:10px
}
.pause-section {
  background:#263e38;
  color:var(--paper);
  min-height:690px;
  display:grid;
  place-items:center;
  position:relative;
  overflow:hidden
}
.pause-content {
  text-align:center;
  z-index:2;
  padding:80px 25px
}
.pause-content h2 {
  font-size:clamp(56px,6vw,90px);
  margin:25px 0
}
.pause-content .eyebrow {
  font-size:10px;
  color:var(--copper)
}
.pause-content p {
  font-size:14px;
  color:#b8c7bb
}
.breathing-field {
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  pointer-events:none
}
.breathing-field>span {
  position:absolute;
  width:480px;
  height:480px;
  border:1px solid #e6bda030;
  border-radius:50%;
  transform:scale(var(--breath-scale,1));
  transition:transform 4s cubic-bezier(.45,0,.55,1),opacity 4s
}
.breathing-field>span:nth-child(2) {
  width:620px;
  height:620px;
  border-color:#e6bda020
}
.breathing-field>span:nth-child(3) {
  width:760px;
  height:760px;
  border-color:#e6bda015
}
.breathing-field>span:nth-child(4) {
  width:900px;
  height:900px;
  border-color:#e6bda010
}
.breathing-field>span:nth-child(5) {
  width:1040px;
  height:1040px;
  border-color:#e6bda00a
}
.breath-button {
  display:inline-flex;
  align-items:center;
  gap:16px;
  background:var(--paper);
  color:var(--ink);
  padding:13px 23px;
  margin-top:30px;
  font-size:13px;
  min-height:52px
}
.breath-icon {
  font-size:20px
}
.pause-side {
  position:absolute;
  right:30px;
  writing-mode:vertical-rl;
  letter-spacing:.15em;
  font-size:9px;
  color:#a5b6a7
}
#breath-status {
  display:block;
  font-size:12px;
  color:var(--copper);
  min-height:26px;
  margin-top:14px
}
/* People and practical information */
.people-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15%
}
.people-intro {
  max-width:340px;
  font-size:15px;
  margin:30px 0
}
.team-list {
  border-top:1px solid var(--line);
  margin-bottom:22px
}
.team-list>span {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  border-bottom:1px solid var(--line);
  padding:15px 0;
  font:26px var(--serif);
  transition:padding .4s,color .4s
}
.team-list>span:hover {
  padding-left:10px;
  color:#8d674e
}
.team-list small {
  font:11px var(--sans);
  color:var(--muted)
}
.review-panel {
  padding-top:30px
}
.review-panel>.eyebrow {
  font-size:10px
}
.review-rating {
  font:clamp(110px,12vw,180px)/1 var(--serif);
  letter-spacing:-.065em;
  margin:20px 0 26px
}
.review-rating>span:not(.stars) {
  font:18px var(--sans);
  letter-spacing:0;
  margin-left:15px
}
.review-rating .stars {
  display:block;
  font:14px var(--sans);
  letter-spacing:.24em;
  color:#92734f;
  margin-top:14px
}
.review-panel blockquote {
  margin:0 0 25px;
  font:italic 34px/1.25 var(--serif);
  letter-spacing:-.02em
}
.review-panel>p {
  font-size:12px;
  margin-bottom:20px
}
.review-panel .text-link {
  font-size:13px
}
.review-panel>small {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-top:15px
}
.visit {
  background:#dedfd3
}
.visit .section-label {
  border-color:#b5bba9
}
.visit-grid {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:15%
}
.visit-heading>p {
  font-family:var(--serif);
  font-size:30px;
  line-height:1.25;
  color:var(--ink);
  margin:30px 0 20px
}
.visit-information {
  align-self:center
}
.metro {
  display:flex;
  gap:20px;
  align-items:center
}
.metro>span {
  width:45px;
  height:45px;
  border:1px solid var(--ink);
  display:grid;
  place-items:center;
  font-size:20px;
  flex-shrink:0
}
.metro strong {
  font-size:14px;
  font-weight:500
}
.metro p {
  font-size:12px
}
.hours {
  margin:30px 0
}
.hours>div {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:15px 0;
  border-top:1px solid #b5bba9;
  font-size:14px
}
.hours>div:last-child {
  border-bottom:1px solid #b5bba9
}
.hours dd {
  margin:0;
  white-space:nowrap
}
.visit-information>p {
  font-size:13px;
  margin-bottom:25px
}
.visit-information .button {
  width:100%
}
.faq {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:12%
}
.faq h2 {
  font-size:clamp(45px,4.7vw,70px);
  margin-top:25px
}
.faq details {
  border-top:1px solid var(--line)
}
.faq details:last-child {
  border-bottom:1px solid var(--line)
}
.faq summary {
  display:flex;
  justify-content:space-between;
  gap:22px;
  font-size:14px;
  padding:24px 0;
  cursor:pointer;
  list-style:none
}
.faq summary span {
  font-size:23px;
  line-height:1;
  transition:transform .4s
}
.faq details[open] summary span {
  transform:rotate(45deg)
}
.faq details p {
  padding-bottom:24px;
  font-size:14px
}
.faq details .text-link {
  margin-bottom:24px
}
.finale {
  background:var(--ink);
  color:var(--paper);
  text-align:center;
  padding:105px 24px 115px;
  position:relative;
  overflow:hidden
}
.finale h2 {
  font-size:clamp(70px,9vw,145px);
  margin:35px 0;
  position:relative;
  z-index:1
}
.finale .eyebrow {
  font-size:10px;
  color:#c2cdbf;
  position:relative;
  z-index:1
}
.finale .button {
  position:relative;
  z-index:1
}
.finale-orbit {
  position:absolute;
  inset:8% 17%;
  border:1px solid #e6bda01c;
  border-radius:50%;
  transform:rotate(-16deg);
  pointer-events:none
}
.footer {
  background:var(--ink);
  color:var(--paper);
  padding:50px var(--gutter) 22px;
  border-top:1px solid #ffffff25;
  overflow:hidden
}
.footer-top {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:40px
}
.footer-top p {
  font-size:12px;
  color:#b4c5b6;
  margin-top:10px
}
.footer-top nav {
  display:flex;
  gap:25px;
  font-size:13px
}
.footer-top .text-link {
  font-size:12px;
  padding-top:0;
  color:var(--copper)
}
.footer-wordmark {
  display:block;
  font:clamp(170px,27.5vw,510px)/.88 var(--serif);
  letter-spacing:-.07em;
  margin:30px 0 38px;
  text-align:center;
  position:relative;
  transition:color .7s
}
.footer-wordmark:hover {
  color:var(--copper)
}
.footer-wordmark>span {
  font:17px var(--sans);
  position:absolute;
  top:10%;
  margin-left:25px
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:10px;
  color:#b7c3b5;
  border-top:1px solid #ffffff25;
  padding-top:18px;
  align-items:center
}
.plain {
  background:none;
  padding:10px 0;
  font-size:inherit
}
.motion-control {
  position:fixed;
  bottom:20px;
  left:20px;
  z-index:39;
  background:var(--paper);
  color:var(--ink);
  height:36px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 11px;
  font-size:10px;
  border:1px solid #142c2925
}
.motion-control>span:first-child {
  font-size:17px;
  line-height:1
}
.motion-control .motion-text {
  max-width:0;
  overflow:hidden;
  white-space:nowrap;
  transition:max-width .3s
}
.motion-control:hover .motion-text,.motion-control:focus-visible .motion-text {
  max-width:140px
}
/* Accessible native dialogs */
dialog {
  border:0;
  color:var(--ink);
  background:var(--paper);
  padding:38px 45px;
  width:min(690px,calc(100% - 32px));
  max-height:90dvh;
  overflow:auto
}
dialog::backdrop {
  background:#081b18b8;
  backdrop-filter:blur(7px)
}
dialog[open] {
  animation:dialog-enter .5s var(--ease)
}
.dialog-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:25px
}
.close-dialog {
  background:none;
  font-size:32px;
  line-height:1;
  width:44px;
  height:44px;
  flex-shrink:0
}
.dialog-top .close-dialog {
  margin:-10px -12px -10px 0
}
dialog h2 {
  font-size:55px;
  line-height:1.04;
  margin:10px 0 25px
}
dialog p {
  font-size:14px
}
dialog input,dialog select {
  width:100%;
  min-height:52px;
  border:1px solid #a6b2a3;
  background:transparent;
  color:var(--ink);
  padding:12px;
  font-size:16px;
  border-radius:0
}
dialog label {
  display:block;
  font-size:13px;
  margin-bottom:8px
}
.menu-dialog {
  width:100%;
  height:100dvh;
  max-height:100dvh;
  max-width:none;
  margin:0;
  background:var(--ink);
  color:var(--paper);
  padding:30px var(--gutter)
}
.menu-dialog::backdrop {
  background:var(--ink)
}
.menu-layout {
  display:grid;
  grid-template-columns:1.8fr 1fr;
  gap:10%;
  padding:40px 0
}
.menu-layout nav {
  display:flex;
  flex-direction:column
}
.menu-layout nav a {
  font:clamp(37px,4.9vw,74px)/1.25 var(--serif);
  border-bottom:1px solid #ffffff22;
  padding:15px 0;
  display:flex;
  gap:25px;
  align-items:baseline;
  transition:color .4s,padding .5s var(--ease)
}
.menu-layout nav a:hover {
  color:var(--copper);
  padding-left:15px
}
.menu-layout nav a>span {
  font:11px var(--sans);
  color:#a7b8a6
}
.menu-layout>div {
  align-self:end
}
.menu-layout>div>p {
  font:42px/1.15 var(--serif);
  color:var(--paper)
}
.menu-layout>div>span {
  display:block;
  color:#b6c5b6;
  font-size:13px;
  margin:35px 0 25px
}
.menu-dialog[open] nav a {
  animation:line-enter .7s var(--ease) both
}
.menu-dialog[open] nav a:nth-child(2) {
  animation-delay:.06s
}
.menu-dialog[open] nav a:nth-child(3) {
  animation-delay:.12s
}
.menu-dialog[open] nav a:nth-child(4) {
  animation-delay:.18s
}
.menu-dialog[open] nav a:nth-child(5) {
  animation-delay:.24s
}
.catalog-dialog {
  width:min(920px,calc(100% - 32px))
}
.catalog-controls {
  position:sticky;
  top:-38px;
  background:var(--paper);
  z-index:2;
  padding:16px 0 12px
}
.catalog-filters {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:16px
}
.catalog-filters button {
  background:transparent;
  border:1px solid var(--line);
  padding:9px 14px;
  font-size:12px;
  transition:background .25s,color .25s
}
.catalog-filters button[aria-pressed=true] {
  background:var(--ink);
  color:var(--paper);
  border-color:var(--ink)
}
.catalog-count {
  font-size:12px;
  margin:12px 0 20px
}
.catalog-item {
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:25px;
  align-items:center;
  border-top:1px solid var(--line);
  padding:20px 0;
  animation:fade-enter .4s var(--ease)
}
.catalog-item h3 {
  font:18px/1.25 var(--sans);
  letter-spacing:-.025em
}
.catalog-item small {
  font-size:12px;
  color:var(--muted)
}
.catalog-item>span {
  font-size:15px;
  white-space:nowrap
}
.catalog-item button {
  width:44px;
  height:44px;
  background:var(--ink);
  color:var(--paper);
  font-size:22px;
  transition:background .3s,transform .3s
}
.catalog-item button:hover {
  background:#416153;
  transform:rotate(90deg)
}
.source-note {
  font-size:11px;
  margin-top:26px
}
.empty-results {
  padding:50px 0;
  text-align:center
}
.booking-dialog {
  width:min(1000px,calc(100% - 32px));
  padding:0
}
.booking-dialog[open] {
  display:grid;
  grid-template-columns:.8fr 1fr
}
.booking-picture {
  position:relative;
  min-height:640px
}
.booking-picture img {
  filter:saturate(.6);
  object-position:55% center
}
.booking-picture span {
  position:absolute;
  bottom:35px;
  left:30px;
  font-size:9px;
  letter-spacing:.12em;
  color:white;
  text-shadow:0 1px 10px #000
}
.booking-content {
  padding:65px 45px 40px;
  position:relative
}
.booking-content>.close-dialog,.privacy-dialog>.close-dialog {
  position:absolute;
  top:14px;
  right:15px
}
.booking-content>p {
  margin-bottom:25px
}
.booking-content h2 {
  font-size:54px
}
.booking-summary {
  border-bottom:1px solid var(--line);
  min-height:74px;
  padding:18px 0;
  margin-bottom:25px
}
.booking-summary p {
  font-size:13px
}
.booking-summary strong {
  font-size:16px;
  font-weight:500
}
.booking-summary span {
  float:right;
  font-size:14px
}
.booking-content>.button {
  width:100%
}
.booking-content>small {
  display:block;
  font-size:11px;
  line-height:1.7;
  color:var(--muted);
  margin:15px 0
}
.booking-content>.text-link {
  font-size:12px
}
.quiz-progress {
  display:flex;
  gap:8px;
  margin:25px 0
}
.quiz-progress i {
  height:2px;
  flex:1;
  background:var(--line);
  transition:background .4s
}
.quiz-progress i.done {
  background:var(--ink)
}
#quiz-stage h2 {
  font-size:49px
}
#quiz-stage>p {
  margin-bottom:25px
}
.quiz-options {
  display:grid;
  gap:10px
}
.quiz-options button {
  background:none;
  border:1px solid var(--line);
  padding:19px;
  text-align:left;
  font-size:15px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  transition:background .3s,padding .4s
}
.quiz-options button:hover {
  background:#e0e6da;
  padding-left:26px
}
.quiz-options button span {
  font-family:var(--serif);
  font-size:24px
}
.quiz-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:24px;
  font-size:11px
}
.quiz-bottom .text-link {
  font-size:12px
}
.quiz-result-price {
  font-family:var(--serif);
  font-size:36px;
  margin:20px 0
}
.quiz-result-price span {
  font:13px var(--sans);
  margin-right:20px
}
.quiz-dialog .button {
  width:100%;
  margin-top:12px
}
.privacy-dialog p {
  margin:20px 0
}
.privacy-dialog h2 {
  margin-top:25px
}
/* Motion */
.motion-ready .reveal {
  opacity:0;
  transform:translateY(28px);
  transition:opacity .85s var(--ease),transform 1.1s var(--ease);
  transition-delay:var(--reveal-delay,0ms)
}
.motion-ready .reveal.visible {
  opacity:1;
  transform:none
}
.motion-paused *,.motion-paused *:before,.motion-paused *:after {
  animation-play-state:paused!important
}
.motion-paused .reveal {
  opacity:1;
  transform:none;
  transition:none
}
.motion-paused .hero-portal,.motion-paused .hero-copy {
  transform:none
}
.motion-paused .breathing-field>span {
  transition:none
}
.motion-paused .line>span,.motion-paused .line>em,.motion-paused .hero-enter {
  animation:none!important;
  transform:none;
  opacity:1
}
.motion-paused .word {
  opacity:1!important
}
.motion-paused .magnetic {
  transform:none!important
}
@keyframes line-enter {
  from {
    transform:translateY(115%);
    opacity:0
  }
  to {
    transform:translateY(0);
    opacity:1
  }
}
@keyframes fade-enter {
  from {
    opacity:0;
    transform:translateY(18px)
  }
  to {
    opacity:1;
    transform:none
  }
}
@keyframes hero-photo {
  from {
    opacity:0;
    transform:scale(1.16)
  }
  to {
    opacity:1;
    transform:scale(1.04)
  }
}
@keyframes ticker {
  to {
    transform:translateX(-50%)
  }
}
@keyframes scroll-cue {
  0% {
    transform:translateY(-22px)
  }
  70%,100% {
    transform:translateY(48px)
  }
}
@keyframes dialog-enter {
  from {
    opacity:0;
    transform:translateY(30px)
  }
  to {
    opacity:1;
    transform:none
  }
}
@keyframes disclosure {
  from {
    opacity:0;
    transform:translateY(-8px)
  }
  to {
    opacity:1;
    transform:none
  }
}
/* Responsive compositions */
@media(min-width:1800px) {
  .hero-copy {
    top:29%
  }
  .hero h1 {
    font-size:160px
  }
  .hero-portal {
    width:46%;
    right:10%
  }
  .hero-description {
    margin-top:40px
  }
  .journey-stage {
    padding-top:130px
  }
  .journey-image {
    max-height:510px
  }
  .journey-heading {
    margin-bottom:40px
  }
}
@media(max-width:1100px) {
  .desktop-nav {
    gap:20px;
    font-size:12px
  }
  .header-actions {
    gap:20px
  }
  .header {
    gap:25px
  }
  .hero h1 {
    font-size:10.4vw
  }
  .hero-description {
    gap:30px
  }
  .hero-portal {
    width:55%;
    right:4%
  }
  .hero-copy {
    top:30%
  }
  .hero-coordinate span {
    display:none
  }
  .section {
    padding-top:85px;
    padding-bottom:85px
  }
  .section-label {
    margin-bottom:45px
  }
  .manifesto-main {
    margin-left:12%
  }
  .manifesto-bottom {
    grid-template-columns:.3fr 1.4fr 1fr;
    gap:25px
  }
  .ritual-layout {
    gap:6%
  }
  .ritual-photo {
    height:535px
  }
  .journey-composition {
    gap:8%
  }
  .journey-stage {
    padding-top:110px
  }
  .couple-offers {
    gap:20px
  }
  .couple-offer h3 {
    font-size:32px
  }
  .together {
    padding-bottom:140px
  }
  .people-grid {
    gap:10%
  }
  .visit-grid {
    gap:10%
  }
  .footer-top nav {
    gap:15px
  }
  .footer-top {
    gap:25px
  }
  .booking-content {
    padding:65px 30px 35px
  }
  .booking-content h2 {
    font-size:47px
  }
}
@media(max-width:800px) {
  .desktop-nav {
    display:none
  }
  .header-book {
    font-size:12px
  }
  .header {
    padding-top:23px;
    padding-bottom:23px
  }
  .hero {
    height:115svh;
    min-height:900px
  }
  .hero-stage {
    min-height:730px
  }
  .hero h1 {
    font-size:11.4vw
  }
  .hero-copy {
    top:31%
  }
  .hero-copy>.eyebrow {
    font-size:9px
  }
  .hero-portal {
    width:63%;
    right:2%;
    top:18%;
    height:68%
  }
  .hero-aura i {
    width:72%;
    right:-5%;
    height:77%;
    top:14%
  }
  .hero-description {
    display:block;
    margin-top:24px
  }
  .hero-description .button {
    margin-top:25px;
    min-width:225px
  }
  .hero-side {
    right:14px;
    font-size:8px
  }
  .hero-rating>span:first-child {
    font-size:38px
  }
  .manifesto-main {
    margin-left:0
  }
  .manifesto-bottom {
    grid-template-columns:.3fr 1.4fr
  }
  .manifesto-bottom>.text-link {
    grid-column:2
  }
  .section-heading {
    gap:35px
  }
  .heading-aside {
    max-width:260px
  }
  .ritual-layout {
    grid-template-columns:.8fr 1.2fr;
    gap:5%
  }
  .ritual-photo {
    height:470px
  }
  .ritual-row h3 {
    font-size:42px
  }
  .ritual-row summary {
    gap:16px
  }
  .ritual-row-content {
    padding-left:30px
  }
  .ritual-row summary p {
    font-size:11px
  }
  .photo-number {
    font-size:65px;
    left:28px
  }
  .photo-caption {
    left:28px;
    font-size:8px
  }
  .journey-heading h2 {
    font-size:44px
  }
  .journey-heading p {
    display:none
  }
  .journey-composition {
    gap:7%;
    grid-template-columns:.85fr 1fr
  }
  .story h3 {
    font-size:44px
  }
  .story p {
    font-size:13px
  }
  .journey-navigation {
    gap:20px
  }
  .journey-navigation button {
    font-size:10px;
    gap:10px
  }
  .together-grid {
    grid-template-columns:1fr;
    gap:45px
  }
  .together-title>p {
    max-width:420px
  }
  .together-title h2 {
    font-size:68px
  }
  .outlined-number {
    left:50%;
    top:-50px;
    font-size:220px
  }
  .couple-offers {
    gap:40px
  }
  .couple-offer h3 {
    font-size:46px
  }
  .together {
    padding-bottom:140px
  }
  .people-grid {
    gap:8%
  }
  .review-panel blockquote {
    font-size:29px
  }
  .team-list>span {
    display:block
  }
  .team-list small {
    display:block;
    margin-top:5px
  }
  .visit-grid {
    gap:6%;
    grid-template-columns:1fr 1fr
  }
  .visit h2 {
    font-size:55px
  }
  .visit-heading>p {
    font-size:25px
  }
  .hours>div {
    font-size:12px
  }
  .visit-information .button {
    font-size:12px;
    gap:20px;
    padding:0 17px
  }
  .faq {
    gap:7%;
    grid-template-columns:1fr 1.2fr
  }
  .faq h2 {
    font-size:47px
  }
  .footer-top {
    flex-wrap:wrap
  }
  .footer-top .text-link {
    display:none
  }
  .footer-wordmark {
    margin-top:50px
  }
  .footer-bottom>span:nth-child(2) {
    display:none
  }
  .menu-layout {
    grid-template-columns:1.6fr 1fr;
    gap:8%
  }
  .menu-layout>div>p {
    font-size:32px
  }
  .menu-layout>div .button {
    font-size:12px;
    padding:0 15px
  }
  .menu-layout nav a {
    font-size:42px
  }
  .booking-dialog[open] {
    grid-template-columns:.6fr 1fr
  }
  .booking-picture {
    min-height:650px
  }
  .booking-content {
    padding-left:25px;
    padding-right:25px
  }
  .booking-content h2 {
    font-size:43px
  }
}
@media(max-width:600px) {
  :root {
    --gutter:24px
  }
  html {
    scroll-padding-top:80px
  }
  .header {
    padding:19px 24px;
    gap:20px
  }
  .header.scrolled {
    padding:13px 24px
  }
  .brand {
    font-size:40px
  }
  .brand span {
    font-size:6px;
    margin-top:9px;
    letter-spacing:.12em
  }
  .header-actions {
    gap:17px
  }
  .header-book {
    font-size:10px
  }
  .menu-button {
    width:29px
  }
  .hero {
    height:auto;
    min-height:0
  }
  .hero-stage {
    height:104svh;
    min-height:760px;
    max-height:1000px;
    position:relative
  }
  .hero-coordinate {
    top:110px;
    font-size:9px
  }
  .hero-portal {
    width:82%;
    height:56%;
    top:19%;
    right:-9%;
    clip-path:inset(0 round 48%);
    transform:none
  }
  .hero-portal img {
    object-position:63% center;
    filter:brightness(.56) saturate(.65)
  }
  .hero-aura i {
    right:-15%;
    top:17%;
    width:102%;
    height:61%;
    border-color:#e6bda02e
  }
  .hero-aura i:nth-child(2) {
    right:-17%;
    top:15%
  }
  .hero-aura i:nth-child(3) {
    right:-20%;
    top:13%
  }
  .hero-copy {
    top:29%;
    right:14px;
    transform:none
  }
  .hero h1 {
    font-size:clamp(56px,13.3vw,82px);
    line-height:1.02;
    letter-spacing:-.05em
  }
  .hero h1 .line {
    padding-bottom:6px
  }
  .hero h1 .line:nth-child(2)>em {
    padding-left:0
  }
  .hero-copy>.eyebrow {
    font-size:8px;
    letter-spacing:.12em;
    margin-bottom:23px
  }
  .hero-description {
    margin-top:30px
  }
  .hero-description p {
    font-size:14px;
    color:#dae1d7
  }
  .hero-description .button {
    margin-top:23px;
    min-width:224px;
    font-size:13px;
    min-height:52px
  }
  .hero-side {
    display:none
  }
  .hero-bottom {
    bottom:32px;
    gap:20px;
    align-items:flex-end
  }
  .scroll-cue {
    font-size:8px;
    letter-spacing:.1em;
    max-width:145px;
    gap:12px
  }
  .hero-rating {
    gap:9px
  }
  .hero-rating>span:first-child {
    font-size:35px
  }
  .hero-rating>span:last-child {
    font-size:9px
  }
  .hero-rating small {
    font-size:9px
  }
  .hero-watermark {
    font-size:250px;
    left:0;
    bottom:-40px;
    color:#f1f2ec06
  }
  .ticker {
    padding:15px 0
  }
  .ticker-track>span {
    font-size:10px;
    gap:23px;
    letter-spacing:.12em;
    padding-right:25px
  }
  .ticker i {
    font-size:24px
  }
  .ticker b {
    margin:0 10px
  }
  .section {
    padding-top:62px;
    padding-bottom:62px
  }
  .section-label {
    gap:20px;
    padding-bottom:23px;
    margin-bottom:38px
  }
  .chapter {
    font-size:10px
  }
  .section-label>span:last-child {
    font-size:8px;
    max-width:125px
  }
  h2 {
    font-size:52px
  }
  .manifesto h2 {
    font-size:43px;
    line-height:1.13
  }
  .manifesto-bottom {
    grid-template-columns:1fr;
    gap:25px;
    margin-top:30px
  }
  .manifesto-bottom .asterisk {
    display:none
  }
  .manifesto-bottom p {
    font-size:15px
  }
  .manifesto-bottom>.text-link {
    grid-column:auto;
    justify-self:start;
    font-size:13px
  }
  .section-heading {
    display:block;
    margin-bottom:35px
  }
  .heading-aside {
    max-width:none;
    margin-top:25px
  }
  .heading-aside p {
    font-size:14px
  }
  .heading-aside p br {
    display:none
  }
  .heading-aside .text-link {
    font-size:13px
  }
  .ritual-layout {
    display:flex;
    flex-direction:column;
    gap:35px
  }
  .ritual-photo {
    position:relative;
    top:0;
    height:340px;
    width:100%;
    align-self:stretch
  }
  .ritual-photo img {
    object-position:center 40%
  }
  .photo-number {
    font-size:80px
  }
  .photo-caption {
    font-size:9px;
    bottom:27px
  }
  .photo-frame {
    inset:15px
  }
  .ritual-row summary {
    gap:22px;
    padding:23px 0
  }
  .ritual-row h3 {
    font-size:47px
  }
  .ritual-row summary p {
    font-size:12px
  }
  .ritual-row-content {
    padding-left:34px
  }
  .ritual-row-content>p {
    font-size:14px
  }
  .featured-service {
    font-size:13px
  }
  .catalog-foot {
    display:block;
    margin-top:33px
  }
  .catalog-foot .button {
    margin-top:22px;
    width:100%
  }
  .catalog-foot p {
    font-size:11px
  }
  .journey {
    height:auto;
    min-height:0
  }
  .journey-stage {
    position:relative;
    height:auto;
    min-height:0;
    padding:60px 24px
  }
  .journey-heading {
    margin:23px 0 35px
  }
  .journey-heading h2 {
    font-size:42px
  }
  .journey-top .chapter {
    font-size:9px
  }
  .journey-composition {
    grid-template-columns:1fr;
    gap:35px
  }
  .journey-image {
    height:360px;
    max-height:none;
    clip-path:inset(0 round 47% 47% 1px 1px)
  }
  .journey-story {
    display:block
  }
  .story {
    opacity:1;
    transform:none;
    visibility:visible;
    pointer-events:auto;
    border-top:1px solid #ffffff25;
    margin-top:28px;
    padding-top:28px
  }
  .story:first-child {
    margin-top:0
  }
  .story h3 {
    font-size:45px;
    margin:18px 0
  }
  .story p {
    font-size:14px;
    max-width:none
  }
  .journey-navigation,.journey-count {
    display:none
  }
  .together-grid {
    gap:35px
  }
  .together-title h2 {
    font-size:59px
  }
  .together-title>p {
    font-size:15px;
    max-width:300px
  }
  .outlined-number {
    font-size:200px;
    left:50%;
    top:-38px
  }
  .couple-offers {
    gap:24px;
    grid-template-columns:1fr
  }
  .couple-offer {
    padding:26px 0
  }
  .couple-offer:nth-child(2) {
    margin:0
  }
  .couple-offer h3 {
    font-size:39px;
    margin:18px 0 22px
  }
  .couple-offer h3 br {
    display:none
  }
  .couple-offer .eyebrow {
    font-size:10px
  }
  .couple-offer>div {
    margin-bottom:10px
  }
  .couple-offer .text-link {
    font-size:13px;
    max-width:240px
  }
  .pause-section {
    min-height:650px
  }
  .pause-content {
    padding:75px 24px
  }
  .pause-content h2 {
    font-size:51px
  }
  .pause-content>.eyebrow {
    font-size:9px
  }
  .pause-content p {
    font-size:14px
  }
  .breathing-field>span {
    width:320px;
    height:320px
  }
  .breathing-field>span:nth-child(2) {
    width:430px;
    height:430px
  }
  .breathing-field>span:nth-child(3) {
    width:540px;
    height:540px
  }
  .breathing-field>span:nth-child(4) {
    width:650px;
    height:650px
  }
  .breathing-field>span:nth-child(5) {
    width:760px;
    height:760px
  }
  .pause-side {
    display:none
  }
  .people-grid {
    grid-template-columns:1fr;
    gap:55px
  }
  .people h2 {
    font-size:59px
  }
  .team-list>span {
    display:flex;
    font-size:28px
  }
  .team-list small {
    font-size:11px
  }
  .review-panel {
    border-top:1px solid var(--line);
    padding-top:35px
  }
  .review-rating {
    font-size:130px;
    margin-top:13px
  }
  .review-panel blockquote {
    font-size:34px
  }
  .people-intro {
    font-size:15px
  }
  .visit-grid {
    grid-template-columns:1fr;
    gap:40px
  }
  .visit h2 {
    font-size:59px
  }
  .visit-heading>p {
    font-size:29px
  }
  .hours>div {
    font-size:14px
  }
  .visit-information .button {
    font-size:14px
  }
  .faq {
    grid-template-columns:1fr;
    gap:35px
  }
  .faq h2 {
    font-size:46px
  }
  .faq summary {
    font-size:14px
  }
  .finale {
    padding:78px 24px 85px
  }
  .finale .eyebrow {
    font-size:8px;
    max-width:250px;
    display:block;
    margin:auto
  }
  .finale h2 {
    font-size:clamp(51px,12.6vw,75px);
    margin:32px 0
  }
  .finale .button {
    font-size:13px
  }
  .finale-orbit {
    inset:8% -20%
  }
  .footer {
    padding:38px 24px 20px
  }
  .footer-top {
    display:block
  }
  .footer-top nav {
    margin-top:25px;
    font-size:12px;
    justify-content:space-between;
    gap:15px
  }
  .footer-wordmark {
    font-size:28vw;
    margin:38px 0 30px
  }
  .footer-wordmark>span {
    font-size:10px;
    margin-left:8px
  }
  .footer-bottom {
    font-size:9px;
    gap:12px
  }
  .footer-bottom .plain {
    font-size:9px
  }
  .motion-control {
    left:12px;
    bottom:12px;
    height:31px;
    padding:0 9px
  }
  .motion-control .motion-text {
    display:none
  }
  .menu-dialog {
    padding:25px 24px
  }
  .menu-layout {
    display:block;
    padding-top:25px
  }
  .menu-layout nav a {
    font-size:37px;
    padding:14px 0;
    gap:20px
  }
  .menu-layout>div {
    margin-top:35px
  }
  .menu-layout>div>p {
    display:none
  }
  .menu-layout>div>span {
    margin:0 0 20px;
    font-size:12px
  }
  .menu-layout>div .button {
    font-size:13px
  }
  .menu-dialog .dialog-top {
    margin-bottom:25px
  }
  dialog {
    padding:28px 24px;
    max-height:92dvh;
    width:calc(100% - 24px)
  }
  dialog h2 {
    font-size:44px
  }
  .catalog-dialog {
    width:calc(100% - 16px);
    padding:25px 20px
  }
  .catalog-dialog h2 {
    font-size:44px
  }
  .catalog-controls {
    top:-25px;
    padding-top:12px
  }
  .catalog-filters {
    gap:6px
  }
  .catalog-filters button {
    font-size:11px;
    padding:8px 12px
  }
  .catalog-item {
    gap:15px;
    grid-template-columns:1fr auto auto;
    padding:18px 0
  }
  .catalog-item h3 {
    font-size:14px
  }
  .catalog-item>span {
    font-size:13px
  }
  .catalog-item button {
    width:38px;
    height:40px
  }
  .catalog-item small {
    font-size:11px
  }
  .booking-dialog[open] {
    display:block
  }
  .booking-picture {
    display:none
  }
  .booking-content {
    padding:55px 25px 30px
  }
  .booking-content h2 {
    font-size:48px
  }
  .booking-content>small {
    font-size:11px
  }
  .quiz-dialog {
    padding:28px 24px
  }
  #quiz-stage h2 {
    font-size:42px
  }
  .quiz-options button {
    font-size:14px;
    padding:17px
  }
  .quiz-dialog .dialog-top .eyebrow {
    font-size:9px
  }
  .quiz-progress {
    margin:24px 0
  }
  .privacy-dialog h2 {
    font-size:44px
  }
  .privacy-dialog p {
    font-size:13px
  }
}
@media(max-width:360px) {
  .header {
    padding-left:20px;
    padding-right:20px;
    gap:12px
  }
  .header-actions {
    gap:12px
  }
  .header-book {
    font-size:9px
  }
  .brand {
    font-size:36px
  }
  .brand span {
    font-size:5px
  }
  .hero h1 {
    font-size:51px
  }
  .hero-copy {
    left:20px
  }
  .hero-copy>.eyebrow {
    font-size:7px
  }
  .hero-rating>span:last-child {
    font-size:8px
  }
  .hero-rating>span:first-child {
    font-size:30px
  }
  .hero-bottom {
    left:20px;
    right:20px;
    gap:10px
  }
  .scroll-cue {
    font-size:7px;
    max-width:115px
  }
  .hero-description p {
    font-size:13px
  }
  .manifesto h2 {
    font-size:37px
  }
  .ritual-row h3 {
    font-size:42px
  }
  .ritual-row-content {
    padding-left:0
  }
  .journey-heading h2 {
    font-size:36px
  }
  .together-title h2 {
    font-size:51px
  }
  .couple-offer h3 {
    font-size:35px
  }
  .pause-content h2 {
    font-size:44px
  }
  .team-list>span {
    display:block
  }
  .team-list small {
    margin-top:5px
  }
  .footer-top nav {
    font-size:11px
  }
  .catalog-item {
    gap:10px
  }
  .menu-layout nav a {
    font-size:31px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
  .motion-ready .reveal {
    opacity:1;
    transform:none
  }
  .hero {
    height:auto;
    min-height:0
  }
  .hero-stage {
    position:relative
  }
  .hero-portal,.hero-copy {
    transform:none!important
  }
  .journey {
    height:auto;
    min-height:0
  }
  .journey-stage {
    height:auto;
    position:relative;
    min-height:0;
    padding-top:80px;
    padding-bottom:70px
  }
  .journey-story {
    display:block
  }
  .story {
    opacity:1;
    visibility:visible;
    transform:none;
    pointer-events:auto;
    margin:25px 0
  }
  .journey-navigation,.journey-count {
    display:none
  }
  .journey-composition {
    align-items:start
  }
  .journey-image {
    height:550px
  }
  .motion-control {
    display:none
  }
  .word {
    opacity:1!important
  }
  .magnetic {
    transform:none!important
  }
  .hero-enter,.line>span,.line>em {
    opacity:1;
    transform:none
  }
  .breathing-field>span {
    transform:none!important
  }
}
/* QA refinement: hidden controls, shorter desktop stages and paused transitions. */
[hidden] {
  display:none!important
}
.motion-paused *,.motion-paused *:before,.motion-paused *:after {
  transition:none!important
}
@media(min-width:601px) and (max-height:800px) {
  .journey-stage {
    min-height:650px;
    padding-top:95px
  }
  .journey-heading {
    margin:8px 0 16px
  }
  .journey-image {
    max-height:340px
  }
  .journey-heading h2 {
    font-size:42px
  }
  .story h3 {
    font-size:48px
  }
}
/* Second visual review: room for the persistent motion control on small screens. */
@media(max-width:600px) {
  .hero-stage {
    height:100svh
  }
  .hero-bottom {
    bottom:62px
  }
  .catalog-item button {
    min-width:44px;
    min-height:44px
  }
}

