/* Fluid art direction: the contour line connects the experience. */
:root { --black: #080908; --surface: #10100d; --ease: cubic-bezier(.19,1,.22,1); }
body { background: var(--black); }
.section { border: 0; }
.section-label { margin-bottom: 28px; }
.eyebrow { letter-spacing: .24em; font-size: 10px; }
.button, .header-cta { border-radius: 100px; }
.button { padding-inline: 30px; min-height: 58px; }
.button-gold { background: linear-gradient(120deg,#ae8750,#d9bc83 70%,#e8d4a8); }
.button-gold:before { border-radius: inherit; }
.text-link { border: 0; position: relative; padding-bottom: 7px; }
.text-link:after { content: ''; position: absolute; bottom: 0; left: 0; width: 32px; height: 1px; background: var(--gold); transition: width .6s var(--ease); }
.text-link:hover:after { width: 100%; }
.header-cta { border-color: rgba(201,168,106,.5); }
.site-header.scrolled, .site-header:has(.navigation.is-open) { border-color: transparent; background: rgba(8,9,8,.75); }
.reading-progress { display: none; }
.hero { min-height: 0; height: 170svh; overflow: clip; display: block; background: #080908; }
.hero:after { display: none; }
.hero-sticky { height: 100svh; min-height: 680px; position: sticky; top: 0; isolation: isolate; overflow: hidden; }
.hero-silk { position: absolute; inset: 0; opacity: .48; z-index: -2; transform: scale(1.08); }
.hero-silk:after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(8,9,8,.84),rgba(8,9,8,.36) 55%,rgba(8,9,8,.35)),linear-gradient(#08090855,transparent 40%,#080908); }
.hero-silk .ambient-video { opacity: .6; object-position: center; }
.hero-grid { height: 100%; padding-top: 96px; padding-bottom: 90px; grid-template-columns: 1fr 1.07fr; }
.hero-copy { padding: 0; position: relative; transform: translate3d(calc(var(--hero-progress,0) * -40px),calc(var(--hero-progress,0) * -80px),0); opacity: calc(1 - var(--hero-progress,0) * 2.5); }
.hero-copy>.eyebrow { margin-bottom: 34px; }
.hero-copy>.eyebrow:before { display: none; }
.hero h1 { font-size: clamp(54px,5.25vw,78px); line-height: 1.13; letter-spacing: -.04em; }
.hero h1 .gold { color: #e2c995; }
.hero-description { color: #c0b8a9; font-size: 17px; margin-top: 30px; line-height: 1.9; max-width: 460px; }
.hero-actions { flex-direction: row; align-items: center; gap: 30px; margin-top: 37px; }
.hero-art { height: min(78svh,830px); width: auto; margin: 0 -90px 0 -60px; transform: translate3d(calc(var(--hero-progress,0) * -13vw),calc(var(--hero-progress,0) * -12vh),0) scale(calc(1 + var(--hero-progress,0) * .38)); opacity: calc(1 - var(--hero-progress,0) * .84); }
.hero-figure { width: 100%; height: 100%; object-fit: contain; filter: saturate(.72); mask-image: radial-gradient(ellipse 57% 64% at 50% 40%,black 46%,transparent 88%); animation: contour-breath 12s ease-in-out infinite; }
.hero-art { mix-blend-mode: screen; }
.hero-figure { mix-blend-mode: normal; }
.flow-contour { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; overflow: visible; }
.flow-path { stroke: #d6b77b; stroke-width: .65; fill: none; opacity: .48; vector-effect: non-scaling-stroke; }
.flow-path-soft { opacity: .15; }
.hero-bottom { bottom: 28px; border: 0; padding: 0; opacity: calc(1 - var(--hero-progress,0) * 3); }
.hero-location { padding-right: 130px; font-size: 9px; letter-spacing: .19em; }
.hero-whisper { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 33px; text-align: center; padding: 100px 28px; opacity: var(--whisper-opacity,0); transform: translateY(calc(55px - var(--hero-progress,0) * 55px)); pointer-events: none; }
.hero-whisper p { font: 400 clamp(50px,6.3vw,90px)/1.13 var(--serif); letter-spacing: -.035em; }
.hero-whisper p span { color: var(--gold-light); }
.hero-motion { right: 115px; bottom: 20px; }
.motion-toggle { border-radius: 100px; border-color: rgba(201,168,106,.2); font-size: 9px; background: rgba(8,9,8,.45); }
.hero-motion .motion-label { display: none; }
.hero-motion { width: 44px; padding: 0; justify-content: center; }
.discover-line { height: 42px; }
.philosophy { position: relative; padding: 95px 0 145px; overflow: clip; background: #080908; }
.philosophy:before { content: ''; position: absolute; width: 100%; height: 170px; left: 0; top: -100px; background: #080908; border-radius: 50% 50% 0 0; }
.philosophy-grid { display: block; text-align: center; max-width: 830px; }
.philosophy .section-label { justify-content: center; margin-bottom: 30px; }
.philosophy-monogram { display: none; }
.philosophy-copy h2 { font-size: clamp(42px,4.8vw,68px); line-height: 1.2; letter-spacing: -.035em; }
.philosophy-copy p { margin: 30px auto 0; max-width: 560px; font-size: 17px; }
.doctor { background: radial-gradient(ellipse at 13% 40%,#1d1a11,transparent 62%); padding: 85px 0 135px; overflow: clip; }
.doctor-grid { gap: 120px; }
.doctor-visual { padding: 0; transform: translateY(var(--doctor-drift,0px)); }
.doctor-visual.reveal.is-visible { animation: none; }
.doctor-visual:before { inset: -20px 17px 5px -25px; border-radius: 46% 54% 58% 42% / 46% 35% 65% 54%; transform: rotate(-9deg); border-color: rgba(201,168,106,.3); }
.doctor-art { aspect-ratio: .78; border: 0; border-radius: 48% 52% 43% 57% / 37% 41% 59% 63%; transform: rotate(var(--doctor-turn,-4deg)); transition: none; }
.contour-art { opacity: .85; height: 100%; width: 100%; object-position: 84% center; transform: scale(1.15); }
.doctor-visual:hover .contour-art { transform: scale(1.18); }
.doctor-art:after { background: linear-gradient(0deg,#080908ab,transparent 50%); }
.doctor-monogram { display: none; }
.doctor-plate { position: relative; background: none; border: 0; padding: 25px 0 0; left: auto; right: auto; justify-content: center; text-align: center; }
.doctor-plate .eyebrow { display: none; }
.plate-brand { font-size: 20px; letter-spacing: .03em; opacity: .65; }
.doctor-copy h2 { font-size: clamp(62px,5.5vw,82px); }
.doctor-copy h2 .gold { color: var(--gold-light); }
.doctor-copy .section-label { margin-bottom: 25px; }
.doctor-intro { font-size: 25px; }
.doctor-copy .body-copy { font-size: 16px; }
.doctor-copy .text-link { margin-top: 29px; }
.method { padding: 100px 0 50px; overflow: clip; }
.method-intro { text-align: center; }
.method-intro h2 { margin-top: 24px; font-size: clamp(40px,4.3vw,64px); }
.method-intro .body-copy { margin-top: 25px; }
.journey-flow { position: relative; max-width: 1080px; margin-top: 70px; }
.journey-line { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.journey-line path { fill: none; stroke: var(--gold); stroke-width: .7; stroke-opacity: .55; stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--journey-progress,1)); }
.journey { display: flex; flex-direction: column; gap: 5px; position: relative; margin: 0; padding: 20px 0 80px; border: 0; }
.journey-step { display: block; width: 40%; padding: 30px 0!important; border: 0!important; background: none!important; margin: 0; min-height: 235px; align-self: flex-start; }
.journey-step:nth-child(even) { align-self: flex-end; }
.journey-step:after { display: none; }
.journey-step h3 { font-size: clamp(32px,3.1vw,44px); color: #e7d2a9; margin-bottom: 20px; }
.journey-step p { font-size: 16px; max-width: 330px; line-height: 1.9; }
.journey-dot { display: none; }
.brand-moment { display: block; background: var(--black); min-height: 0; padding: 20px 0 40px; overflow: clip; }
.moment-window { min-height: 650px; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; clip-path: ellipse(var(--moment-x,60%) var(--moment-y,48%) at 50% 50%); transform: scale(var(--moment-scale,.92)); }
.moment-window .ambient-video { opacity: .82; transform: scale(calc(1.16 - var(--moment-progress,0) * .16)); }
.moment-shade { background: linear-gradient(90deg,#08090885,transparent,#08090870),linear-gradient(#08090899,#08090810 40%,#080908b3); }
.moment-content { padding: 100px 0; }
.moment-content h2 { font-size: clamp(50px,5.8vw,83px); }
.moment-content p { font-size: 14px; }
.moment-window .motion-toggle { right: 95px; bottom: 35px; }
.moment-rule { height: 50px; }
.questions { padding: 100px 0 135px; }
.questions-grid { gap: 130px; }
.faq-list { border-top: 0; }
.faq-list details { border-bottom-color: rgba(201,168,106,.16); }
.faq-list summary { font-size: 16px; min-height: 88px; }
.faq-answer { font-size: 16px; }
.questions h2 { font-size: clamp(42px,4vw,58px); }
.contact { position: relative; background: radial-gradient(ellipse at 50% 38%,#24201588,transparent 68%); padding: 95px 0 125px; overflow: clip; }
.contact-top { display: block; text-align: center; margin-bottom: 95px; }
.contact .section-label { justify-content: center; }
.contact h2 { font-size: clamp(56px,6.2vw,90px); }
.contact-invitation { margin: 32px auto 0; }
.contact-invitation .button { margin-top: 3px; }
.contact-grid { position: relative; border: 0; gap: 140px; grid-template-columns: 1fr 1fr; padding: 0 50px; }
.contact-flow { position: absolute; inset: -50px -100px; width: calc(100% + 200px); height: calc(100% + 100px); pointer-events: none; opacity: .3; }
.contact-flow path { fill: none; stroke: var(--gold); stroke-width: .6; }
.address-card { background: none; padding: 0; overflow: visible; }
.address-card:after { display: none; }
.address-card h3 { font-size: 42px; }
.contact-channels { border: 0; padding: 0; justify-content: flex-start; }
.channel { padding: 20px 0; }
.channel+.channel { border-top-color: rgba(201,168,106,.12); }
.channel-value { font-size: 19px; }
.site-footer { background: var(--black); border: 0; position: relative; padding-top: 50px; }
.site-footer:before { content: ''; width: 70%; height: 1px; background: linear-gradient(90deg,transparent,var(--gold),transparent); opacity: .3; display: block; margin: -50px auto 50px; }
.footer-bottom { border-color: rgba(201,168,106,.12); }
.back-to-top { border-radius: 50%; }
.floating-contact { background: #14140fd9; backdrop-filter: blur(12px); color: var(--gold-light); width: 54px; height: 54px; border-color: rgba(201,168,106,.5); box-shadow: none; }
.floating-contact:hover { background: #332b1c; }
.floating-label { border-radius: 100px; }
@keyframes contour-breath { 50% { transform: translateY(-12px) rotate(1deg) scale(1.025); } }
@media (prefers-reduced-motion:no-preference) {
  .reveal.is-visible { animation: enter 1.3s var(--ease) both; }
  .journey-step:nth-child(even).is-visible { animation-name: enter-from-right; }
  .journey-step:nth-child(odd).is-visible { animation-name: enter-from-left; }
  @keyframes enter-from-right { from { opacity: 0; transform: translate(35px,15px); } to { opacity: 1; transform: none; } }
  @keyframes enter-from-left { from { opacity: 0; transform: translate(-35px,15px); } to { opacity: 1; transform: none; } }
}
@media (max-width:1199px) {
  .hero h1 { font-size: 5.45vw; }
  .hero-actions { flex-direction: column; align-items: flex-start; gap: 20px; }
  .hero-art { margin-right: -95px; margin-left: -80px; height: 76svh; }
  .doctor-grid { gap: 80px; }
  .questions-grid { gap: 80px; }
  .contact-grid { gap: 90px; padding-inline: 25px; }
  .hero-sticky { min-height: 650px; }
}
@media (max-width:959px) {
  .hero-sticky { min-height: 700px; }
  .hero-copy>.eyebrow { font-size: 9px; }
  .hero-description { font-size: 16px; }
  .hero h1 { font-size: 5.6vw; }
  .hero-art { height: 620px; margin-left: -100px; margin-right: -110px; }
  .hero-location { padding-right: 130px; }
  .hero-motion { right: 105px; }
  .doctor-grid { gap: 50px; }
  .doctor-copy h2 { font-size: 61px; }
  .doctor-intro { font-size: 22px; }
  .doctor-art { aspect-ratio: .65; }
  .journey-step { width: 43%; min-height: 225px; }
  .journey-step h3 { font-size: 31px; }
  .journey-step p { font-size: 16px; }
  .moment-window { min-height: 540px; }
  .questions-grid { gap: 45px; }
  .questions h2 { font-size: 42px; }
  .contact-grid { gap: 55px; padding-inline: 0; }
  .channel-value { font-size: 17px; }
}
@media (max-width:699px) {
  .header-inner { height: 80px; }
  .navigation { border-radius: 0 0 35px 35px; background: #0e100eea; backdrop-filter: blur(18px); }
  .navigation a { font-size: 25px; border-color: rgba(201,168,106,.1); padding: 13px 0; }
  .hero { height: auto; min-height: 1030px; }
  .hero-sticky { position: relative; height: 1030px; min-height: 0; }
  .hero-grid { display: block; padding: 145px 0 80px; }
  .hero-copy { transform: none; opacity: 1; }
  .hero h1 { font-size: clamp(37px,10.4vw,67px); line-height: 1.15; }
  .hero-copy>.eyebrow { margin-bottom: 30px; font-size: 9px; }
  .hero-description { font-size: 16px; line-height: 1.85; margin-top: 28px; max-width: 370px; }
  .hero-actions { gap: 20px; margin-top: 28px; align-items: flex-start; }
  .hero-actions .button { padding-inline: 27px; min-height: 56px; }
  .hero-actions .text-link { font-size: 12px; }
  .hero-art { position: absolute; bottom: 50px; right: -25px; left: -25px; height: 470px; width: auto; margin: 0; opacity: 1; transform: translateY(var(--mobile-art-drift,0px)); z-index: -1; }
  .hero-figure { width: 100%; height: 100%; top: auto; object-fit: contain; mask-image: radial-gradient(ellipse 62% 62% at 50% 43%,#000 46%,transparent 90%); }
  .hero-silk { opacity: .5; }
  .hero-silk:after { background: linear-gradient(#08090866,#08090880 30%,#08090822 70%,#080908),linear-gradient(90deg,#08090888,transparent); }
  .hero-whisper { display: none; }
  .flow-contour { top: 420px; height: 630px; width: 210%; left: -93%; opacity: .55; }
  .hero-bottom { position: absolute; bottom: 30px; opacity: 1; padding: 0; border: 0; }
  .hero-location { display: none; }
  .discover { font-size: 9px; letter-spacing: .15em; }
  .hero-motion { bottom: 22px; right: 87px; }
  .philosophy { padding: 72px 0 85px; }
  .philosophy-copy h2 { font-size: 36px; }
  .philosophy-copy p { font-size: 16px; margin-top: 26px; }
  .doctor { padding: 65px 0 85px; }
  .doctor-grid { gap: 60px; }
  .doctor-visual { width: 85%; align-self: center; padding: 0; max-width: 400px; }
  .doctor-art { aspect-ratio: .87; }
  .doctor-visual:before { inset: -13px 6px 12px -15px; }
  .doctor-plate { left: auto; right: auto; padding: 25px 0 0; }
  .doctor-copy h2 { font-size: 58px; }
  .doctor-copy .section-label { margin-bottom: 24px; }
  .doctor-intro { font-size: 24px; margin-top: 27px; }
  .doctor-copy .body-copy { font-size: 16px; }
  .method { padding: 65px 0 20px; }
  .method-intro h2 { font-size: 35px; line-height: 1.2; }
  .method-intro .body-copy { font-size: 15px; margin-top: 24px; }
  .journey-flow { margin-top: 38px; }
  .journey-line { width: 170%; left: -37%; opacity: .5; }
  .journey { padding-bottom: 0; gap: 6px; }
  .journey-step, .journey-step:nth-child(even) { width: 87%; align-self: flex-start; padding: 32px 15px 32px 0!important; display: block; min-height: 190px; }
  .journey-step:nth-child(even) { align-self: flex-end; padding: 32px 0 32px 20px!important; }
  .journey-step h3 { font-size: clamp(28px,8vw,35px); margin-bottom: 17px; }
  .journey-step p { font-size: 16px; line-height: 1.85; }
  .brand-moment { padding: 35px 0 15px; }
  .moment-window { min-height: 470px; }
  .moment-content { padding: 75px 10px 100px; }
  .moment-content h2 { font-size: 44px; }
  .moment-content p { font-size: 12px; }
  .moment-rule { height: 35px; }
  .moment-window .motion-toggle { right: 87px; bottom: 28px; }
  .questions { padding: 80px 0; }
  .questions-grid { gap: 30px; }
  .questions h2 { font-size: 40px; }
  .questions .body-copy { font-size: 16px; }
  .faq-list summary { font-size: 16px; min-height: 95px; }
  .contact { padding: 75px 0 85px; }
  .contact h2 { font-size: 46px; }
  .contact-top { margin-bottom: 65px; }
  .contact-invitation { margin-top: 28px; }
  .contact-invitation .button { min-height: 58px; padding-inline: 23px; }
  .contact-grid { display: block; padding-inline: 10px; }
  .contact-channels { padding: 0; margin-top: 36px; border: 0; }
  .address-card { padding: 0; }
  .address-card h3 { font-size: 37px; }
  .contact-flow { height: 550px; top: -130px; left: -100px; width: 250%; opacity: .2; }
  .channel { padding-block: 22px; }
  .site-footer { padding-top: 40px; }
  .site-footer:before { margin-top: -40px; margin-bottom: 40px; }
}
@media(prefers-reduced-motion:reduce) {
  .hero { height: auto; }
  .hero-sticky { position: relative; }
  .hero-copy,.hero-art { opacity: 1; transform: none; }
  .hero-whisper { display: none; }
  .hero-bottom { opacity: 1; }
  .doctor-visual,.doctor-art { transform: none; }
  .journey-line path { stroke-dashoffset: 0; }
  .moment-window { clip-path: ellipse(80% 65% at 50% 50%); transform: none; }
}
