/* Black / ivory / bronze interaction layer. All content is visible without JS. */
:root{--ink:#141413;--night:#101010;--gold:#cfad81;--scroll-progress:0;--hero-drift:0px;--ease-unfold:cubic-bezier(.16,1,.3,1)}
.announcement{background:#080808;color:#bfb4a2}
.site-header{background:rgba(16,16,16,.97);color:#f6f2e9;border-bottom-color:#ffffff17;transition:padding .4s var(--ease-unfold),box-shadow .4s,background .4s}
.site-header.is-scrolled{box-shadow:0 8px 30px #00000030;background:rgba(10,10,10,.96)}
.site-header .brand-symbol{color:#d0ad80}
.site-header .brand-name small{color:#b2a799}
.site-header nav a{color:#c9c5be;transition:color .2s}
.site-header nav a:hover,.site-header nav a[aria-current="location"]{color:#e9c79c}
.site-header nav a[aria-current="location"]:after{right:0}
.header-book{background:#cfad81;color:#151310}
.header-book:hover{background:#e3c69f;color:#151310}
.site-header .menu-toggle span{background:#e3c69f}
.hero{background:var(--night)}
.hero-copy{color:var(--cream)}
.hero-copy .eyebrow{color:#c6a57c}
.hero-copy .eyebrow>span{background:#c6a57c}
.hero-copy h1 em{color:#d0ad80}
.hero-description{color:#b1ada5}
.hero-cta .button{background:#cfad81;color:#191613}
.hero-cta .button:hover{background:#e3c69f}
.hero-cta .text-link{color:#ded5c6;border-color:#867154}
.hero-bottom{color:#b8afa2;border-color:#ffffff24}
.hero-visual{background:var(--night)}
.hero-image{filter:saturate(.6) brightness(.86);transform:translateY(var(--hero-drift)) scale(1.065);will-change:transform}
.hero-frame{border-color:#debc8755}
.hero-note{background:#171715ed;color:var(--cream);backdrop-filter:blur(10px);border:1px solid #ad8c5a66;transition:background .3s,border-color .3s,transform .5s var(--ease-unfold)}
.hero-note:hover,.hero-note:focus-visible{transform:translateY(-5px);border-color:var(--gold);background:#0d0d0d}
.note-star{color:#d0ad80;transition:transform .6s var(--ease-unfold)}
.hero-note:hover .note-star{transform:rotate(45deg)}
.discipline-strip{background:#171715;border-top:1px solid #ffffff14;border-bottom:1px solid #ffffff14}
.gallery-section{background:var(--night);color:var(--cream)}
.gallery-section h2 em{color:#cba67b}
.gallery-section .eyebrow{color:#c6a57c}
.gallery-section .heading-side,.gallery-item>span,.gallery-footer>span{color:#b7b0a6}
.gallery-controls button{color:#d6c0a2;border-color:#ffffff33;transition:background .25s,color .25s,transform .25s}
.gallery-controls button:hover{background:#cfad81;color:#111;transform:scale(1.08)}
.gallery-footer button{color:var(--cream);border-color:#9a7b56}
.gallery-track{scrollbar-color:#846d50 #161615}
.gallery-item .gallery-zoom{background:#191917;color:#d8b58c;border:1px solid #b8966870;transition:background .3s,transform .3s}
.gallery-item:hover .gallery-zoom,.gallery-item:focus-visible .gallery-zoom{background:#cfad81;color:#111;transform:rotate(90deg)}
.visit-section{background:#171716;color:var(--cream);border-bottom:1px solid #ffffff19}
.visit-section h2 em,.visit-section .eyebrow{color:#cba67b}
.visit-section .button{background:#cfad81;color:#151310}
.visit-section .button:hover{background:#e3c69f}
.visit-details address,.hours-note,.careers p{color:#bbb5ab}
.visit-details .text-link{border-color:#947954;color:#ddc29f}
.visit-section .hours,.visit-section .careers{border-color:#ffffff24}
.careers a{color:#dfbc8c}
footer{background:#0b0b0b}
.scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:#d4b080;transform:scaleX(var(--scroll-progress));transform-origin:left;z-index:50;pointer-events:none}

/* Scroll reveals: normal layout and accessible text remain in place. */
.motion-ready .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease-unfold),transform 1s var(--ease-unfold);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal.is-visible{opacity:1;transform:translateY(0)}
.reveal-line{display:block;overflow:hidden;padding:.025em .05em .12em;margin:-.025em -.05em -.12em}
.reveal-line .line-inner{display:block}
.motion-ready h1.reveal,.motion-ready h2.reveal{transform:none;opacity:1}
.motion-ready .reveal .line-inner{transform:translateY(112%) rotate(2deg);transform-origin:left;opacity:0;transition:transform 1.1s var(--ease-unfold),opacity .9s;transition-delay:calc(var(--line-index,0)*100ms + var(--reveal-delay,0ms))}
.motion-ready .reveal.is-visible .line-inner{transform:translateY(0) rotate(0);opacity:1}
.motion-ready .image-reveal>img{clip-path:inset(0 0 100% 0);transition:clip-path 1.25s var(--ease-unfold),transform .8s var(--ease-unfold);transition-delay:var(--reveal-delay,0ms),0ms}
.motion-ready .image-reveal.is-visible>img{clip-path:inset(0 0 0 0)}
.image-reveal{overflow:hidden}

/* Hover and press responses stay bounded to their original hit targets. */
.button>span:last-child,.text-link>span:last-child{transition:transform .35s var(--ease-unfold)}
.button:hover>span:last-child,.button:focus-visible>span:last-child{transform:translate(3px,-3px)}
.text-link:hover>span:last-child{transform:translateY(3px)}
.button:active{transform:scale(.97)!important}
.category-filters button{transition:background .25s,color .25s,transform .2s,border-color .25s}
.category-filters button:active{transform:scale(.94)}
.card-image{transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .45s var(--ease-unfold),box-shadow .45s;isolation:isolate}
.card-image:after{content:'';position:absolute;inset:0;background:radial-gradient(circle at var(--pointer-x,50%) var(--pointer-y,50%),#f9e4c329,transparent 58%);opacity:0;transition:opacity .4s;pointer-events:none}
.card-image.is-pointing:after{opacity:1}
.treatment-card:hover .card-image,.treatment-card:focus-visible .card-image{box-shadow:0 20px 35px #3a28141a}
.treatment-card:hover .card-caption h3{color:var(--bronze)}
.card-caption h3{transition:color .3s}
.card-arrow{transition:transform .45s var(--ease-unfold),background .25s,color .25s}
.treatment-card:hover .card-arrow,.treatment-card:focus-visible .card-arrow{background:#151413;color:#e4c59b;transform:rotate(45deg)}
.treatment-card:active .card-image{transform:scale(.985)}
.additional-treatments>a{position:relative;transition:background .3s,color .3s,padding .4s var(--ease-unfold)}
.additional-treatments>a:hover,.additional-treatments>a:focus-visible{padding-left:15px;padding-right:15px;background:#171715;color:#eee5d6}
.additional-treatments>a:hover p,.additional-treatments>a:hover>span:first-child{color:#c8af8d}
.ritual-list summary,.ritual-materials summary,.careers summary{transition:color .25s}
.ritual-list summary:hover,.ritual-list summary:focus-visible{color:#e5bf89}
.ritual-list details[open] p{animation:detail-unfold .4s var(--ease-unfold)}
.service-row{transition:background .25s,box-shadow .25s}
.service-row:hover{background:#f1ebdf;box-shadow:10px 0 0 #f1ebdf,-10px 0 0 #f1ebdf}
.service-description[open]>p,.service-description[open]>ul{animation:detail-unfold .35s var(--ease-unfold)}
.gallery-item{position:relative;touch-action:pan-x pan-y}
.gallery-item img{height:auto;transition:transform .8s var(--ease-unfold),filter .5s;transform-origin:center;-webkit-touch-callout:none;user-select:none}
.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.035);filter:saturate(.85)}
.gallery-item.is-holding img{transform:scale(1.1);filter:saturate(1) brightness(1.06)}
.gallery-item.is-holding>span:not(.gallery-zoom):not(.press-progress){color:#e9cba4}
.gallery-item.is-holding .gallery-zoom{transform:rotate(45deg);background:#cfad81;color:#101010}
.gallery-item .press-progress{position:absolute;top:14px;right:14px;width:32px;height:32px;padding:0;font-size:0;display:none!important;border-radius:50%;border:2px solid #e1bb8760;background:#16151480;pointer-events:none}
.gallery-item.is-pressing .press-progress{display:block!important;animation:press-fill .42s linear forwards}
.gallery-item.is-holding .press-progress{display:block!important;border-color:#e1bb87;background:#d0ad8050}
.gallery-item.is-holding .press-progress:after{content:'+';position:absolute;inset:0;display:grid;place-items:center;color:#f7e2c8;font-size:18px}
.experience-grid article{transition:transform .4s var(--ease-unfold)}
.experience-grid article:hover{transform:translateY(-6px)}
.gallery-hint{font-size:9px;color:#b7b0a6;margin-top:15px;display:flex;gap:8px;align-items:center}
.gallery-hint:before{content:'';width:18px;height:1px;background:#b49268}
@keyframes detail-unfold{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}
@keyframes press-fill{from{border-color:#e1bb8730;transform:scale(.6)}to{border-color:#e1bb87;transform:scale(1)}}
@media(hover:none){.card-image:after{display:none}.gallery-item:hover img{transform:none;filter:saturate(.65)}.gallery-item.is-holding img{transform:scale(1.1);filter:saturate(1)}.treatment-card:hover .card-image{box-shadow:none}.gallery-item.is-holding .gallery-zoom{transform:rotate(45deg)}}
@media(max-width:760px){.site-header nav{background:#101010;color:#eee5d6;border-color:#ffffff24}.hero-visual{margin-bottom:28px}.hero h1{font-size:clamp(58px,12vw,86px)}.hero-image{transform:translateY(var(--hero-drift)) scale(1.05)}.gallery-hint{font-size:10px}.motion-ready .reveal{transform:translateY(17px)}.motion-ready .reveal.is-visible{transform:translateY(0)}.motion-ready h1.reveal,.motion-ready h2.reveal{transform:none}.hero-note{backdrop-filter:none}.hero-bottom{font-size:9px}}
@media(max-width:360px){.hero h1{font-size:46px}}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal,.motion-ready .reveal .line-inner{opacity:1!important;transform:none!important}.motion-ready .image-reveal>img{clip-path:none!important}.hero-image{transform:none!important;will-change:auto}.card-image,.gallery-item img,.experience-grid article{transform:none!important}.press-progress{animation:none!important}.scroll-progress{display:none}.ritual-list details[open] p,.service-description[open]>p,.service-description[open]>ul{animation:none}*,*:before,*:after{scroll-behavior:auto!important}}
