:root{--paper:#eeeae1;--ink:#30372e;--olive:#777b58;--bronze:#b6a27a;--cream:#f7f1e6;--line:#b9b9a9;--progress:0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:0px}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.6 Arial,sans-serif}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #c39843;outline-offset:6px}.skip{position:fixed;left:20px;top:-90px;padding:12px;background:white;z-index:100}.skip:focus{top:10px}header{position:absolute;top:0;left:0;width:100%;z-index:10;display:flex;align-items:center;gap:30px;justify-content:space-between;padding:30px 4.5%;color:var(--cream);border-bottom:1px solid #ffffff30}.wordmark{font:29px/1.1 Georgia,serif;white-space:nowrap}.wordmark i{font-weight:normal}.wordmark span{display:block;font:9px/1 Arial,sans-serif;letter-spacing:.22em;margin-top:12px}nav{display:flex;gap:32px;align-items:center;font-size:14px}nav a{min-height:44px;display:flex;align-items:center;gap:32px}.nav-book{border-bottom:1px solid #b6a27a}.nav-book span{font-size:22px}#motion{border:1px solid #ffffff70;color:inherit;background:#18201840;min-width:44px;min-height:44px;border-radius:50%;cursor:pointer}main{overflow:clip}.scene{position:relative;min-height:100svh;padding:100px 7%;isolation:isolate}.hero{height:100svh;min-height:740px;display:flex;align-items:center;color:var(--cream);background:#222d25;padding:160px 7% 110px}.film,.film video,.film-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-1}.film video{object-fit:cover;object-position:65% center;opacity:0;transition:opacity 1s}.film.ready video{opacity:1}.film{background:radial-gradient(ellipse at 80% 40%,#9a8d71 0,#48513e 38%,#18251e 80%)}.film-shade{z-index:1;background:linear-gradient(90deg,#16231de8 0%,#17251b8a 42%,#15201908 77%),linear-gradient(0deg,#15201890,transparent 50%)}.hero-content{max-width:720px;will-change:transform}.eyebrow{font:11px/1.5 Arial,sans-serif;font-weight:bold;letter-spacing:.18em;margin:0 0 30px}h1,h2,h3{font-family:Georgia,serif;font-weight:normal;letter-spacing:-.055em;line-height:.98;margin:0}h1{font-size:clamp(84px,9.1vw,156px)}h1 em,h2 em{font-weight:normal;color:#d8c8a4}h2{font-size:clamp(60px,6.6vw,112px)}h3{font-size:37px;letter-spacing:-.045em;line-height:1.1}.intro{font-size:20px;line-height:1.5;margin:28px 0 34px;color:#ece7dc}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:60px;min-height:60px;padding:16px 25px;font-size:14px;transition:background .25s,transform .25s}.button span{font-size:24px;line-height:1}.button:hover{transform:translateY(-3px)}.light{color:#253229;background:var(--cream)}.light:hover{background:#fff}.dark{background:#34402f;color:var(--cream)}.dark:hover{background:#4c573e}.hero-bottom{position:absolute;bottom:30px;left:7%;right:7%;display:flex;justify-content:space-between;gap:20px;align-items:center;font:9px/1.5 Arial,sans-serif;letter-spacing:.15em;border-top:1px solid #ffffff40;padding-top:20px}.hero-bottom a{font-size:11px;letter-spacing:.04em;min-height:44px;display:flex;align-items:center;gap:16px}.section-top{display:flex;justify-content:space-between;align-items:start;margin-bottom:38px}.section-top>p{font-size:14px;line-height:1.5;margin:0}.sessions{background:var(--paper);padding-top:95px;padding-bottom:110px}.sessions h2 em{color:#7a7d5c}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;margin-top:70px}.service-grid article{position:relative;border-top:1px solid #8c927b;padding-top:25px}.number{position:absolute;top:20px;right:0;font:12px Arial;color:#777d69}.service-grid .eyebrow{margin:0 0 18px}.service-grid h3{font-size:34px}.service-grid article>p:not(.eyebrow){font-size:16px;line-height:1.7;max-width:350px;margin-top:20px}.service-grid article>a{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #c4c5b7;min-height:58px;margin-top:30px;font-size:13px}.service-art{height:170px;position:relative;margin-bottom:24px;perspective:650px;overflow:hidden}.service-art span{position:absolute;width:160px;height:130px;border-radius:45% 55% 50% 40%;left:calc(50% - 80px);top:16px;background:linear-gradient(125deg,#eff0dd,#aeb294 60%,#727b5b);box-shadow:10px 20px 35px #313c2c22;transform:rotateX(55deg) rotateZ(-25deg);transition:transform 1s}.active-art span:nth-child(2){transform:translate(28px,19px) rotateX(55deg) rotateZ(-25deg)}.active-art span:nth-child(3){transform:translate(-28px,-19px) rotateX(55deg) rotateZ(-25deg)}.recovery-art span{border-radius:48% 50%;height:100px;transform:rotateX(15deg) rotateZ(-20deg)}.recovery-art span:nth-child(2){transform:translate(35px,30px) rotateX(15deg) rotateZ(-20deg)}.recovery-art span:nth-child(3){transform:translate(-35px,-8px) rotateX(15deg) rotateZ(-20deg)}.relax-art span{width:150px;height:150px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#f7f4e5,#a7ae8a 70%,#687254);transform:rotateX(55deg)}.relax-art span:nth-child(2){transform:translate(40px,0) rotateX(55deg);opacity:.65}.relax-art span:nth-child(3){transform:translate(-40px,0) rotateX(55deg);opacity:.6}article:hover .service-art span:first-child{transform:translateY(-8px) rotateX(35deg) rotateZ(-12deg)}.approach{color:var(--cream);background:#384333;display:flex;align-items:center;min-height:100svh;padding-top:120px;padding-bottom:120px}.approach video,.approach-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-1}.approach video{object-fit:cover;object-position:center;opacity:0;transition:opacity 1s}.approach.ready video{opacity:.95}.approach-shade{background:linear-gradient(90deg,#1f302be8,#26352aab 48%,#27342520);z-index:0}.approach-copy{z-index:1;max-width:670px}.approach-copy>p:not(.eyebrow){max-width:520px;font-size:18px;color:#e7e7dc;margin-top:28px}.signature{margin-top:45px;font:30px Georgia,serif;color:#d8c8a4}.signature span{display:block;font:9px Arial;letter-spacing:.17em;margin-top:15px;color:#e4e5d8}.booking{display:grid;grid-template-columns:1.1fr 1fr;gap:8%;align-items:center;padding-top:125px;padding-bottom:125px}.booking h2 em{color:#7b8060}.booking-intro>p:last-child{max-width:430px;color:#606951;font-size:18px;margin-top:38px}.booking-card{border:1px solid #b7bdab;padding:45px;background:#f3f1e9;box-shadow:0 20px 60px #343f2908}.booking-card h3{font-size:42px;max-width:330px}.booking-card>p{font-size:16px;line-height:1.65}.booking-card>.button{width:100%;gap:14px;margin-top:18px}.booking-card .booking-note{font-size:13px;color:#6e755f;margin:18px 0 30px}.contact{border-top:1px solid #c9ccbe;padding-top:25px;display:flex;flex-direction:column;gap:9px}.contact span{font-size:13px;color:#6e755f}.contact a{font-size:17px;overflow-wrap:anywhere;min-height:35px;display:flex;align-items:center}.booking-card .scope{font-size:12px;color:#737b66;margin-top:25px}footer{border-top:1px solid #b8bdad;padding:40px 7%;display:flex;align-items:center;justify-content:space-between;gap:25px}footer>p{font:17px Georgia,serif}footer>span{font-size:11px;color:#70785e}.mobile-book{display:none}.service-art,.approach-copy{transition:opacity .7s,translate .8s}.reveal{opacity:0;translate:0 20px}.reveal.visible{opacity:1;translate:0 0}
@media(min-width:1600px){.scene{padding-left:max(7%,calc((100vw - 1450px)/2));padding-right:max(7%,calc((100vw - 1450px)/2))}}
@media(max-width:800px){body{font-size:17px}header{padding:22px 6%;gap:15px}.wordmark{font-size:25px}.wordmark span{font-size:8px;letter-spacing:.13em;margin-top:9px}nav>a:not(.nav-book){display:none}nav{margin-left:auto}.nav-book{font-size:11px;gap:10px;white-space:nowrap}#motion{min-width:40px;min-height:40px}.scene{padding:80px 7%}.hero{min-height:740px;height:100svh;padding-top:170px;padding-bottom:150px;align-items:center}.hero-content{max-width:100%}h1{font-size:clamp(78px,15vw,112px)}h2{font-size:clamp(54px,10vw,80px)}.film video{object-position:68% center}.film-shade{background:linear-gradient(90deg,#16231dd9,#15251b80 70%),linear-gradient(0deg,#152018b0,transparent 65%)}.intro{font-size:18px;max-width:280px}.hero-bottom{bottom:85px}.hero-bottom>span:last-child{display:none}.hero-bottom>span:first-child{font-size:8px;max-width:140px}.hero-bottom a{font-size:10px;max-width:155px}.eyebrow{font-size:10px;letter-spacing:.15em}.section-top{gap:20px}.section-top>p{font-size:12px}.service-grid{grid-template-columns:1fr;gap:40px;margin-top:45px}.service-grid article{padding-top:25px}.service-art{height:145px;margin-bottom:15px}.service-grid article>p:not(.eyebrow){max-width:none;font-size:17px}.service-grid h3{font-size:37px}.approach{min-height:850px}.approach-copy>p:not(.eyebrow){font-size:18px}.approach-shade{background:linear-gradient(90deg,#1f302be8,#26352ab8)}.signature{font-size:27px}.booking{display:block;min-height:100svh}.booking-intro>p:last-child{margin:30px 0 40px}.booking-card{padding:28px 23px}.booking-card h3{font-size:36px}.booking-card .button{font-size:13px;padding-left:18px;padding-right:18px}.mobile-book{position:fixed;bottom:15px;left:6%;right:6%;display:flex;justify-content:space-between;align-items:center;min-height:54px;padding:12px 22px;background:#eee9dc;color:#2d382d;box-shadow:0 5px 30px #0003;border:1px solid #c0b390;font-size:14px;z-index:15;transition:opacity .2s}.mobile-book.hidden{opacity:0;pointer-events:none}footer{flex-direction:column;align-items:flex-start;padding-bottom:100px;gap:12px}footer p{margin:0}.section-top .eyebrow{max-width:150px}.button{min-height:56px}}
@media(max-width:370px){.wordmark{font-size:21px}.nav-book{font-size:10px;gap:4px}header{gap:10px}#motion{min-width:34px;min-height:34px}.hero h1{font-size:76px}.section-top>p{max-width:110px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;translate:none}.hero-content{transform:none!important}}

.photo-scene{min-height:100svh;display:flex;align-items:center;color:var(--cream);background:#282e26;overflow:hidden;padding-top:120px;padding-bottom:120px}.photo-window,.photo-shade{position:absolute;inset:0;z-index:-1}.photo-window img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;transform:scale(var(--photo-zoom,1.04)) translateY(var(--photo-y,0%));will-change:transform}.photo-shade{background:linear-gradient(90deg,#18251dda,#17231d91 40%,#17231d0a 85%)}.photo-copy{max-width:800px}.photo-copy>p:not(.eyebrow){margin:35px 0;font-size:19px;line-height:1.7}.photo-copy h2{font-size:clamp(60px,7.8vw,125px)}@media(max-width:800px){.photo-scene{min-height:850px}.photo-window img{object-position:47% center}.photo-shade{background:linear-gradient(90deg,#17251dc9,#17251d70)}.photo-copy h2{font-size:clamp(56px,12vw,84px)}.photo-copy>p:not(.eyebrow){font-size:18px}}@media(prefers-reduced-motion:reduce){.photo-window img{transform:none!important;will-change:auto}}

.hero{--hero-camera:1;--hero-pan:0%;overflow:hidden}.hero .film video{transform:scale(var(--hero-camera)) translateX(var(--hero-pan));transform-origin:64% 46%;will-change:transform}.hero::after{content:'';pointer-events:none;position:absolute;inset:-25%;z-index:-1;background:linear-gradient(115deg,transparent 35%,#e6ce9a08 46%,#eadac014 50%,transparent 60%);transform:translateX(var(--hero-light,-20%));mix-blend-mode:screen}.photo-scene{--photo-zoom:1.04;--photo-y:0%;--photo-light:-25%}.photo-scene::after{content:'';position:absolute;pointer-events:none;inset:-30%;z-index:-1;background:linear-gradient(120deg,transparent 35%,#f5ddaa11 47%,#ffe2a51c 50%,transparent 62%);transform:translateX(var(--photo-light));mix-blend-mode:screen}.photo-window img{transform-origin:45% 42%}.photo-copy{transform:translateY(var(--copy-y,0px));will-change:transform}@media(prefers-reduced-motion:reduce){.hero .film video,.hero::after,.photo-scene::after,.photo-copy{transform:none!important;will-change:auto}.hero::after,.photo-scene::after{display:none}}

.photo-window video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;opacity:0;transform:scale(var(--photo-zoom,1.04)) translateY(var(--photo-y,0%));transform-origin:45% 42%;transition:opacity 1s;will-change:transform}.photo-scene.ready .photo-window video{opacity:1}.photo-window img{transition:opacity 1s}.photo-scene.ready .photo-window img{opacity:0}@media(max-width:800px){.photo-window video{object-position:47% center}}@media(prefers-reduced-motion:reduce){.photo-window video{transform:none!important;will-change:auto}}

/* Shared cinematic system: visible stills first, motion as progressive enhancement. */
.film-poster,.linen-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}.film-poster{object-position:65% center;z-index:0}.film video{z-index:0}.linen-poster{object-position:center}.hero .film-poster,.hero .film video{transform:scale(var(--hero-camera,1)) translateX(var(--hero-pan,0%));transform-origin:64% 46%}.approach video,.linen-poster{transform:scale(var(--linen-zoom,1.04)) translateX(var(--linen-x,0%));transform-origin:70% 50%}.approach-shade{background:linear-gradient(90deg,#1f302bd9,#26352a80 48%,#27342508)}.title-line{display:block}.motion-enabled .title-line{animation:headline-enter 1.2s cubic-bezier(.2,.65,.25,1) both}.motion-enabled .title-line:nth-child(2){animation-delay:.18s}@keyframes headline-enter{from{opacity:0;transform:translateY(24px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
.hero-content{transform:none!important;opacity:1!important}.photo-copy{transform:none;will-change:auto}.photo-window{transform:translateX(var(--photo-depth,0px))}.photo-window img,.photo-window video{transform-origin:58% 43%}.motion-enabled .approach-copy>*{opacity:0;translate:0 18px;transition:opacity .85s ease,translate .85s cubic-bezier(.2,.65,.25,1)}.motion-enabled .approach-copy.visible>*{opacity:1;translate:0 0}.approach-copy>*:nth-child(2){transition-delay:.1s}.approach-copy>*:nth-child(3){transition-delay:.3s}.approach-copy>*:nth-child(4){transition-delay:.43s}.approach-copy>*:nth-child(5){transition-delay:.62s}.service-grid article:nth-child(2){transition-delay:.12s}.service-grid article:nth-child(3){transition-delay:.24s}.service-art{transform-style:preserve-3d}.service-art span{transition:none;backface-visibility:hidden}.service-art::after{content:'';position:absolute;bottom:6px;left:20%;width:60%;height:20px;background:radial-gradient(ellipse,#35402c28,transparent 70%);filter:blur(5px)}
.motion-enabled .active-art span{animation:active-unfold 7s ease-in-out infinite both}.motion-enabled .recovery-art span{animation:recovery-settle 8s ease-in-out infinite both}.motion-enabled .relax-art span{animation:relax-breathe 9s ease-in-out infinite both}.service-art span{--dx:0px;--dy:0px;--rx:55deg;--rz:-25deg}.active-art span:nth-child(2){--dx:28px;--dy:19px}.active-art span:nth-child(3){--dx:-28px;--dy:-19px}.recovery-art span{--rx:15deg;--rz:-20deg}.recovery-art span:nth-child(2){--dx:35px;--dy:30px}.recovery-art span:nth-child(3){--dx:-35px;--dy:-8px}.relax-art span{--rz:0deg}.relax-art span:nth-child(2){--dx:40px}.relax-art span:nth-child(3){--dx:-40px}
@keyframes active-unfold{0%,100%{transform:translate(var(--dx),var(--dy)) rotateX(55deg) rotateZ(-25deg)}50%{transform:translate(calc(var(--dx)*1.3),calc(var(--dy)*1.25 - 5px)) rotateX(42deg) rotateZ(-17deg)}}@keyframes recovery-settle{0%,100%{transform:translate(var(--dx),var(--dy)) rotateX(15deg) rotateZ(-20deg)}50%{transform:translate(calc(var(--dx)*1.2),calc(var(--dy)*1.15 - 6px)) rotateX(22deg) rotateZ(-16deg)}}@keyframes relax-breathe{0%,100%{transform:translate(var(--dx),0) rotateX(55deg) scale(.98)}50%{transform:translate(calc(var(--dx)*1.1),-3px) rotateX(52deg) scale(1.04)}}
.motion-paused *, .motion-paused *::before,.motion-paused *::after,.service-art:not(.in-view) span{animation-play-state:paused!important}.motion-paused .approach-copy>*{opacity:1;translate:none}.motion-paused .reveal{opacity:1;translate:none}.media-failed video{opacity:0!important}.photo-scene.media-failed .photo-window img{opacity:1}.motion-paused .photo-window,.motion-paused .photo-window img,.motion-paused .photo-window video,.motion-paused .film video,.motion-paused .film-poster,.motion-paused .linen-poster,.motion-paused #linen-film{transform:none!important}
@media(max-width:800px){.film-poster{object-position:68% center}.approach-shade{background:linear-gradient(90deg,#1f302bda,#26352a99)}.photo-window{transform:none}.hero h1{font-size:clamp(65px,15vw,112px)}}
@media(prefers-reduced-motion:reduce){.approach-copy>*{opacity:1!important;translate:none!important}.film-poster,.linen-poster,#linen-film,.photo-window{transform:none!important}}
.tab-hidden *, .tab-hidden *::before,.tab-hidden *::after{animation-play-state:paused!important}
