/* Sage Sanctuary — light, precision, and a little magic. */
:root{--silk-ease:cubic-bezier(.16,1,.3,1);--champagne:#e9dfb3;--read-progress:0}
.reading-progress{position:fixed;z-index:80;top:0;left:0;width:100%;height:2px;pointer-events:none;background:linear-gradient(90deg,#a7bc93,#f3e9bd 70%,#fff9df);transform:scaleX(var(--read-progress));transform-origin:left;box-shadow:0 0 9px #f3e9bd40}
.hero{overflow:clip}.hero>.landscape{transform:scale(1.015);transform-origin:center 65%}.magic-field{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse 38% 48% at var(--glow-x,71%) var(--glow-y,36%),#ecedc91c,transparent 75%),radial-gradient(ellipse 42% 60% at 86% 6%,#f5dfb20f,transparent 80%)}
.magic-star{position:absolute;width:var(--spark-size,14px);height:var(--spark-size,14px);background:linear-gradient(135deg,#fffceb,#d9dda5);clip-path:polygon(50% 0,59% 39%,100% 50%,59% 61%,50% 100%,41% 61%,0 50%,41% 39%);opacity:var(--spark-opacity,.67);transform:rotate(8deg)}
.magic-star:nth-child(1){left:58%;top:23%;--spark-size:18px;--spark-delay:.3s}.magic-star:nth-child(2){left:83%;top:16%;--spark-size:10px;--spark-delay:1s}.magic-star:nth-child(3){left:72%;top:62%;--spark-size:13px;--spark-delay:.65s}.magic-star:nth-child(4){left:47%;top:73%;--spark-size:9px;--spark-opacity:.5;--spark-delay:1.3s}.magic-star:nth-child(5){left:93%;top:54%;--spark-size:17px;--spark-delay:.15s}.magic-star:nth-child(6){left:34%;top:9%;--spark-size:8px;--spark-opacity:.5;--spark-delay:.9s}
.hero h1 .title-mask{display:block;overflow:clip;line-height:.86;padding:0 .08em .15em 0;margin-bottom:-.15em}.hero h1 .title-line{display:block;transform-origin:0 100%}.hero h1 em{background:linear-gradient(105deg,#f8f6d8 15%,#e4edbd 52%,#f6edc9 90%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero .eyebrow:before{width:8px;height:8px;border-radius:0;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);background:#e9dfb3;box-shadow:none}.hero-note{letter-spacing:.08em}
.orbit{border-color:#f8edbf6b;background:radial-gradient(circle,#fff6c908,transparent 65%)}.orbit:before{border-color:#f3edc62b}.orbit:after{border-color:#fff5c64f}.orbit-inner b{text-shadow:0 0 35px #faf8da26}.orbit-pin{position:absolute;top:20px;left:28px;width:6px;height:6px;border-radius:50%;background:#fff0c3;box-shadow:0 0 0 5px #f7e8b916,0 0 20px #fff2b888}.orbit-spark{position:absolute;right:-9px;top:53%;width:18px;height:18px;background:#f8edbe;clip-path:polygon(50% 0,59% 39%,100% 50%,59% 61%,50% 100%,41% 61%,0 50%,41% 39%)}
.booking-bar{position:relative;border-radius:2px;border-color:#ffffff60;background:linear-gradient(112deg,#fafbe52e,#edf1c715);box-shadow:inset 0 1px #ffffe52b,0 20px 50px #071b1726;clip-path:polygon(0 0,calc(100% - 19px) 0,100% 19px,100% 100%,19px 100%,0 calc(100% - 19px))}.booking-bar:after{content:'';position:absolute;right:0;top:0;width:20px;height:20px;pointer-events:none;background:linear-gradient(45deg,transparent 47%,#ffffdd91 49%,#ffffdd91 51%,transparent 53%)}
.nav-links a{position:relative;padding:9px 0}.nav-links a:after{content:'';position:absolute;bottom:1px;left:0;height:1px;width:100%;background:linear-gradient(90deg,#e7efb8,#f6e5b9);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--silk-ease)}.nav-links a:hover:after,.nav-links a:focus-visible:after{transform:scaleX(1);transform-origin:left}
.btn{position:relative;isolation:isolate;transform:translate3d(var(--magnet-x,0px),var(--magnet-y,0px),0);transition:transform .38s var(--silk-ease),background .3s,box-shadow .4s,border-color .3s}.btn:before{content:'';position:absolute;inset:0;border-radius:inherit;z-index:-1;pointer-events:none;background:linear-gradient(110deg,transparent 24%,#ffffeb35 43%,#fff9d95e 50%,transparent 68%);background-size:250% 100%;background-position:140% 0;opacity:0;transition:background-position .8s var(--silk-ease),opacity .25s}.btn:hover:before,.btn:focus-visible:before{opacity:1;background-position:-40% 0}.btn:hover{box-shadow:0 9px 25px #132e2318}.btn .arr{display:inline-block;transition:transform .5s var(--silk-ease)}.btn:hover .arr,.btn:focus-visible .arr{transform:translate(3px,-3px)}.nav-cta{box-shadow:inset 0 0 0 1px #ffffe000;transition:background .3s,box-shadow .3s,border-color .3s}.nav-cta:hover{border-color:#f7edb3;box-shadow:inset 0 0 25px #f4edbc0d}
.fine-cut-section{clip-path:polygon(0 0,calc(100% - 38px) 0,100% 38px,100% 100%,38px 100%,0 calc(100% - 38px))}.location-story{background:linear-gradient(130deg,#dce4d5,#e5e8d9)}.location-top{position:relative}.location-top:after{content:'';position:absolute;right:0;top:0;width:15px;height:15px;background:#83966e;opacity:.6;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%)}.location-coordinate{border:1px solid #ffffff70;box-shadow:0 10px 35px #112b201a;border-radius:1px 14px 1px 14px}.location-visual{overflow:clip}
.experience-list article,.step-detail{position:relative}.experience-list article:before,.step-detail:before{content:'';position:absolute;top:-1px;left:0;width:36px;height:1px;background:#879c62;transform:scaleX(.35);transform-origin:left;transition:transform .6s var(--silk-ease),background .4s}.experience-list article:hover:before,.step-detail:hover:before{transform:scaleX(1);background:#ad955d}.experience-list .num,.step-detail>span{transition:color .4s}.experience-list article:hover .num,.step-detail:hover>span{color:#8d784d}
.gallery-grid a{position:relative;border-radius:1px 15px 1px 1px}.gallery-grid a:after{content:'↗';position:absolute;right:14px;bottom:14px;display:grid;place-items:center;width:39px;height:39px;border:1px solid #ffffff80;border-radius:50%;color:#fff;background:#1c372c28;backdrop-filter:blur(10px);font-size:20px;opacity:0;transform:translateY(8px);transition:opacity .4s,transform .6s var(--silk-ease)}.gallery-grid a:hover:after,.gallery-grid a:focus-visible:after{opacity:1;transform:translateY(0)}.gallery-grid img{transition:transform 1s var(--silk-ease),filter 1s var(--silk-ease)}.gallery-grid a:hover img{transform:scale(1.055);filter:saturate(1.06)}.memory>a{display:block;overflow:clip;border-radius:220px 220px 3px 3px}.memory img{transition:transform 1.2s var(--silk-ease)}.memory>a:hover img{transform:scale(1.025)}
.room{position:relative;transition:background .45s,border-color .45s}.room:before{content:'';position:absolute;left:-12px;right:-12px;top:0;bottom:0;z-index:0;pointer-events:none;border-radius:0 14px 0 0;background:linear-gradient(145deg,#fffdef6b,transparent);opacity:0;transition:opacity .5s}.room:hover:before,.room.room-selected:before{opacity:1}.room>*{position:relative}.room a{transition:letter-spacing .4s var(--silk-ease),opacity .3s}.room a:hover{letter-spacing:.025em}.room-selected:after{content:'✧';position:absolute;right:0;top:18px;color:#768758;font-size:21px}
.contact-panel{position:relative;border-color:#81927340;background:linear-gradient(140deg,#e9ecdf,#e3e9d6);box-shadow:0 16px 40px #233b2c06}.contact-panel:before{content:'';position:absolute;top:-1px;left:25px;width:70px;height:1px;background:linear-gradient(90deg,transparent,#a7b778,#ddcda2,transparent)}.field input,.field textarea,.field select{transition:border-color .3s,background .3s,box-shadow .3s}.field input:focus,.field textarea:focus,.field select:focus{background:#fdfdf4;box-shadow:0 6px 20px #263c2b07}.faq summary{transition:color .3s}.faq summary:hover{color:#7c704a}.faq details[open] p{animation:answer-in .38s var(--silk-ease) both}
.closing{position:relative}.closing:before{content:'';display:block;margin:0 auto 30px;width:22px;height:22px;background:linear-gradient(135deg,#637f5e,#b7a872);clip-path:polygon(50% 0,59% 39%,100% 50%,59% 61%,50% 100%,41% 61%,0 50%,41% 39%)}.closing h2 em{color:#536948}.motion-toggle{display:none;align-items:center;gap:7px;color:inherit;background:transparent;border:0;padding:8px 0;white-space:nowrap;font-size:10px;cursor:pointer}.motion-toggle.is-available{display:inline-flex}.motion-toggle:before{content:'✧';font-size:15px;color:#73875e}.motion-toggle[aria-pressed=false]:before{color:#8c9382}.motion-toggle:disabled{cursor:default;opacity:.7}.motion-toggle:focus-visible{outline:2px solid #6d855c;outline-offset:4px}.foot-links{align-items:center;flex-wrap:wrap}
[data-reveal]{--reveal-delay:0ms}.motion-ready[data-motion=on] [data-reveal]{transition:opacity .85s var(--silk-ease) var(--reveal-delay),transform 1.05s var(--silk-ease) var(--reveal-delay),clip-path 1.2s var(--silk-ease) var(--reveal-delay)}.motion-ready[data-motion=on] [data-reveal=rise]:not(.is-revealed){opacity:0;transform:translateY(22px)}.motion-ready[data-motion=on] [data-reveal=line]:not(.is-revealed){opacity:0;transform:translateY(20px);clip-path:inset(0 0 100% 0)}.motion-ready[data-motion=on] [data-reveal=cut]{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.motion-ready[data-motion=on] [data-reveal=cut]:not(.is-revealed){clip-path:polygon(0 0,0 0,-10% 100%,0 100%);transform:translateY(9px)}.motion-ready[data-motion=on] [data-reveal]:focus-within{opacity:1;transform:none;clip-path:none;transition:none}
.hero-entering[data-motion=on] .hero>.landscape{animation:landscape-arrive 2.2s var(--silk-ease) both}.hero-entering[data-motion=on] .title-line{animation:title-arrive 1.3s var(--silk-ease) both}.hero-entering[data-motion=on] .title-mask:nth-child(2) .title-line{animation-delay:.16s}.hero-entering[data-motion=on] .hero-main>.eyebrow{animation:soft-arrive .9s var(--silk-ease) .15s both}.hero-entering[data-motion=on] .hero-main>p,.hero-entering[data-motion=on] .hero-note{animation:soft-arrive 1s var(--silk-ease) .38s both}.hero-entering[data-motion=on] .booking-bar{animation:soft-arrive 1.2s var(--silk-ease) .5s both}.hero-entering[data-motion=on] .magic-star{animation:spark-awaken 1.1s ease var(--spark-delay,0s) both}.hero-entering[data-motion=on] .orbit{animation:orbit-arrive 1.6s var(--silk-ease) .3s both}
@keyframes title-arrive{from{transform:translateY(113%) rotate(3deg)}to{transform:translateY(0) rotate(0)}}@keyframes soft-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes landscape-arrive{from{transform:scale(1.065);filter:brightness(.84)}to{transform:scale(1.015);filter:brightness(1)}}@keyframes spark-awaken{0%{opacity:0;transform:scale(.4) rotate(-20deg)}50%{opacity:.95;transform:scale(1.2) rotate(13deg)}100%{opacity:var(--spark-opacity,.67);transform:scale(1) rotate(8deg)}}@keyframes orbit-arrive{from{opacity:0;transform:scale(.93) rotate(-5deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes answer-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
html[data-motion=off] *,html[data-motion=off] *::before,html[data-motion=off] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html[data-motion=off]{scroll-behavior:auto}html[data-motion=off] [data-reveal]{opacity:1!important;transform:none!important;clip-path:none!important}html[data-motion=off] .btn{transform:none}
@media(hover:none),(pointer:coarse){.btn{transform:none!important}.gallery-grid a:after{opacity:1;transform:none;background:#1c372c54}.gallery-grid a:hover img,.memory>a:hover img{transform:none}.magic-star:nth-child(n+4){display:none}}
@media(max-width:680px){.magic-star:nth-child(1){left:84%;top:24%;--spark-size:14px}.magic-star:nth-child(2){left:65%;top:13%;--spark-size:9px}.magic-star:nth-child(3){left:91%;top:49%;--spark-size:11px}.magic-star:nth-child(n+4){display:none}.magic-field{background:radial-gradient(ellipse 75% 50% at 80% 30%,#ecedc913,transparent 75%)}.booking-bar{clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px))}.booking-bar:after{width:15px;height:15px}.fine-cut-section{clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px))}.location-top:after{right:0;width:11px;height:11px}.room:before{left:-6px;right:-6px}.memory>a{border-radius:180px 180px 3px 3px}.closing:before{width:18px;height:18px;margin-bottom:24px}.motion-ready[data-motion=on] [data-reveal]{transition-duration:.65s,.8s,.95s}.motion-ready[data-motion=on] [data-reveal=rise]:not(.is-revealed){transform:translateY(13px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}[data-reveal]{opacity:1!important;transform:none!important;clip-path:none!important}.btn,.gallery-grid a img,.memory img{transform:none!important}}

.motion-ready[data-motion=on] [data-reveal=line].is-revealed{clip-path:inset(-.2em -.12em -.2em -.12em)}

/* Keep pointer targets stationary while their surface fades into view. */
.motion-ready[data-motion=on] .room[data-reveal],.motion-ready[data-motion=on] .host[data-reveal],.motion-ready[data-motion=on] .step-detail[data-reveal],.motion-ready[data-motion=on] .contact-panel[data-reveal],.motion-ready[data-motion=on] a[data-reveal=cut]{transform:none!important}
