@charset "UTF-8";
@font-face{font-family:Manrope;src:url("./assets/manrope-light.ttf") format("truetype");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url("./assets/manrope-regular.ttf") format("truetype");font-weight:400 700;font-style:normal;font-display:swap}
:root{--green:#263f39;--night:#152923;--deep:#101f1b;--ivory:#f0ece2;--gold:#bea570;--ink:#232b28;--muted:#b2bdb2;color-scheme:dark;font-family:"Manrope","Helvetica Neue",Helvetica,Arial,sans-serif;font-synthesis:none;font-weight:300}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--night);color:var(--ivory)}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}button{border:0;background:none}::selection{background:var(--gold);color:var(--deep)}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:var(--ivory);color:var(--ink);padding:15px}.skip-link:focus{top:20px}
.header{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:30px 5.2vw;transition:background .4s,padding .4s;gap:20px}.header.scrolled{background:#152923ed;backdrop-filter:blur(16px);padding-top:17px;padding-bottom:17px;border-bottom:1px solid #f0ece210}.brand{display:block;flex:none}.brand img{display:block;width:170px;height:auto}.header nav{display:flex;align-items:center;gap:42px;font-size:14px;letter-spacing:.015em}.nav-link{position:relative;padding:10px 0}.nav-link:after{content:"";position:absolute;left:0;right:100%;bottom:4px;height:1px;background:var(--gold);transition:right .3s}.nav-link:hover:after{right:0}.reserve{padding:14px 22px;border:1px solid #bea57070;border-radius:2px;transition:background .3s,color .3s}.reserve:hover{background:var(--gold);color:var(--deep)}
.story{height:440svh;position:relative}.stage{position:sticky;top:0;height:100svh;min-height:620px;overflow:hidden;background:radial-gradient(ellipse at 74% 42%,#344d40 0,#1c342b 40%,#14251f 80%)}#scene{position:absolute;inset:0;z-index:1}#scene canvas{width:100%;height:100%;display:block}.scene-backdrop{position:absolute;inset:0;background:url('./assets/optimized/le-cristal-nuit.webp') 65% center/cover;opacity:.18;transition:opacity 1.2s}.scene-ready .scene-backdrop{opacity:0}.shade{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,#10241c77 0,transparent 57%),linear-gradient(0deg,#101f1b88,transparent 25%,transparent 85%,#14251f33)}.chapters{position:absolute;inset:0;z-index:3;pointer-events:none}.chapter{position:absolute;top:50%;left:7.4%;width:49%;transform:translateY(-48%);opacity:0;transition:opacity .65s,translate .65s;translate:0 24px;pointer-events:none}.chapter.active{opacity:1;translate:0 0;pointer-events:auto}.eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:400;display:flex;align-items:center;gap:15px;line-height:1.6;margin:0 0 32px}.fine-line{height:1px;width:28px;background:var(--gold);display:inline-block;flex:none}.chapter h1,.chapter h2{font-size:clamp(60px,7.3vw,118px);font-weight:300;line-height:1.01;letter-spacing:-.057em;margin:0 0 31px;text-wrap:balance}.chapter h1 span,.chapter h2 span{color:#d1d2be}.chapter[data-chapter="1"] h2{font-size:clamp(55px,6.3vw,100px)}.chapter[data-chapter="1"] h2 span{font-size:.77em}.intro{font-size:17px;line-height:1.7;font-weight:300;color:#c8cfc5;margin:0 0 30px;max-width:380px}.discover{display:flex;gap:24px;align-items:center;padding:0;font-size:14px;letter-spacing:.01em}.small-circle{height:34px;width:34px;display:grid;place-items:center;border:1px solid #bea57066;border-radius:50%;font-size:21px;color:var(--gold);transition:transform .3s,background .3s}.discover:hover .small-circle{transform:rotate(90deg);background:#bea57020}.text-link{display:inline-flex;gap:30px;align-items:center;border-bottom:1px solid var(--gold);padding-bottom:10px;font-size:15px}.text-link span{font-size:20px;color:var(--gold)}.scene-caption{position:absolute;right:6vw;bottom:25%;z-index:3;display:flex;gap:12px;align-items:center;font-size:11px;letter-spacing:.07em;color:#bfc6b6;pointer-events:none}.caption-line{width:32px;height:1px;background:#bea57088}.story-bottom{position:absolute;bottom:33px;left:5.2vw;right:5.2vw;z-index:4;display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.scroll-hint{display:flex;align-items:center;gap:15px;font-size:11px;line-height:1.55;letter-spacing:.045em;color:#b2bfb2;min-width:175px}.scroll-track{height:39px;width:1px;position:relative;background:#f0ece22a;overflow:hidden}.scroll-track i{position:absolute;top:-15px;width:1px;height:17px;background:var(--gold);animation:scroll-tick 2s ease-in-out infinite}@keyframes scroll-tick{to{transform:translateY(65px)}}.chapter-nav{display:grid;grid-template-columns:repeat(3,1fr);column-gap:39px;position:relative;padding-bottom:14px}.chapter-nav button{font-size:12px;color:#9eac9d;white-space:nowrap;padding:8px 0;text-align:left;transition:color .3s}.chapter-nav button span{font-size:10px;margin-right:9px;color:#6f8878;transition:color .3s}.chapter-nav button.selected{color:var(--ivory)}.chapter-nav button.selected span{color:var(--gold)}.chapter-line{height:1px;position:absolute;bottom:0;left:0;right:0;background:#f0ece21a}.chapter-line i{display:block;width:0;height:100%;background:var(--gold)}.motion-toggle{display:flex;align-items:center;gap:10px;border:1px solid #f0ece22b;padding:10px 12px;border-radius:2px;font-size:11px;color:#bfccbf;min-width:105px;justify-content:center}.motion-toggle[aria-pressed="true"]{color:var(--gold);border-color:var(--gold)}
.place{position:relative;background:var(--ivory);color:var(--ink);padding:124px 7.4% 90px}.place-heading{display:grid;grid-template-columns:1fr 1fr;column-gap:60px;align-items:end;margin-bottom:65px}.place-heading .eyebrow{grid-column:1/-1;margin-bottom:27px;color:#607167}.place h2{font-size:clamp(39px,4.6vw,75px);letter-spacing:-.055em;line-height:1.1;font-weight:300;margin:0}.place h2 span{color:#728074;font-size:.79em}.place-heading>p:last-child{font-size:17px;line-height:1.9;margin:0 0 5px;padding-left:22%;color:#667269}.place-photo{margin:0;position:relative;overflow:hidden;aspect-ratio:1.95;background:var(--green)}.place-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;display:block}.place-details{display:flex;justify-content:space-between;gap:20px;padding:29px 0 0;font-size:13px;letter-spacing:.02em;color:#687166}.place-details span+span:before{content:"·";color:var(--gold);margin-right:7vw}.reservation{padding:120px 24px 70px;text-align:center;background:radial-gradient(ellipse at 50% 50%,#2e493c,var(--green) 70%)}.reservation .eyebrow{justify-content:center;color:#c2b388;margin-bottom:30px}.reservation h2{font-size:clamp(48px,5.8vw,90px);line-height:1.05;font-weight:300;letter-spacing:-.06em;margin:0 0 28px}.reservation h2 span{color:#c4cbb7}.reservation>p:not(.eyebrow){font-size:17px;line-height:1.7;color:#c4ccbf;margin:0 0 36px}.contact-actions{display:flex;justify-content:center;align-items:center;gap:30px}.button-gold{background:var(--gold);color:var(--deep);padding:17px 29px;font-size:14px;border:1px solid var(--gold);transition:background .3s}.button-gold:hover{background:#cfb882}.phone-link{font-size:15px;padding:12px 0;border-bottom:1px solid #bea57055;letter-spacing:.035em}.footer-logo{display:block;width:200px;height:auto;margin:95px auto 0;opacity:.78}footer{background:var(--green);border-top:1px solid #f0ece220;padding:25px 5.2vw 30px;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:#acb9ac}footer a:hover{color:var(--ivory)}.reveal{opacity:1;transition:opacity .9s,transform .9s}.js-reveal .reveal{opacity:0;transform:translateY(24px)}.js-reveal .reveal.visible{opacity:1;transform:translateY(0)}.reduced-motion .scroll-track i{animation:none}.reduced-motion .chapter{transition:none}
@media(min-width:1800px){.chapter{left:10%}.chapter h1,.chapter h2{font-size:135px}}
@media(max-width:900px){.header{padding:24px 5%}.header nav{gap:24px}.brand img{width:145px}.chapter{left:6%;width:57%}.chapter h1,.chapter h2{font-size:75px}.chapter[data-chapter="1"] h2{font-size:68px}.intro{font-size:16px}.chapter-nav{column-gap:22px}.scene-caption{display:none}.place{padding:85px 6% 70px}.place-heading{gap:25px}.place-heading>p:last-child{padding-left:5%;font-size:16px}.place-details span+span:before{margin-right:2vw}.motion-label{display:none}.motion-toggle{min-width:36px}.scroll-hint{min-width:130px}.reservation{padding-top:90px}}
@media(max-width:600px){.header{padding:21px 6%}.header.scrolled{padding-top:14px;padding-bottom:14px}.brand img{width:124px}.header nav{gap:0}.nav-link{display:none}.reserve{padding:10px 13px;font-size:12px}.stage{min-height:580px}.story{height:380svh}.chapter{left:7%;top:130px;transform:none;width:90%;translate:0 15px}.chapter h1,.chapter h2{font-size:clamp(48px,13vw,70px);line-height:.99;letter-spacing:-.06em;margin-bottom:20px}.chapter[data-chapter="1"] h2{font-size:clamp(47px,12vw,67px)}.chapter[data-chapter="1"] h2 br:nth-of-type(1){display:none}.chapter[data-chapter="1"] h2 span{font-size:.88em;display:block;margin-top:4px}.eyebrow{font-size:10px;letter-spacing:.15em;margin-bottom:20px;gap:10px}.fine-line{width:18px}.intro{font-size:14px;line-height:1.65;max-width:85%;margin-bottom:18px}.discover{font-size:12px;gap:16px}.small-circle{width:28px;height:28px;font-size:17px}.text-link{font-size:13px}.shade{background:linear-gradient(180deg,#14251f44,transparent 25%,transparent 82%,#101f1b88)}.story-bottom{bottom:22px;left:7%;right:7%;gap:12px;align-items:center}.scroll-hint{display:none}.chapter-nav{flex:1;column-gap:13px;padding-bottom:8px}.chapter-nav button{font-size:11px}.chapter-nav button span{font-size:9px;margin-right:4px}.motion-toggle{padding:7px 9px}.place-heading{grid-template-columns:1fr;margin-bottom:35px;row-gap:24px}.place-heading .eyebrow{margin:0}.place h2{font-size:40px}.place-heading>p:last-child{padding-left:0;font-size:15px;line-height:1.7}.place{padding:68px 7% 48px}.place-photo{aspect-ratio:.96}.place-photo img{object-position:65% 60%}.place-details{flex-direction:column;gap:12px;font-size:12px}.place-details span+span:before{display:none}.reservation{padding:75px 7% 50px}.reservation h2{font-size:47px}.reservation>p:not(.eyebrow){font-size:15px}.reservation .eyebrow{font-size:10px}.contact-actions{flex-direction:column;gap:18px}.footer-logo{margin-top:68px;width:165px}footer{padding:23px 7%;flex-wrap:wrap;font-size:10px;row-gap:20px}footer a:last-child{margin-left:auto}}
@media(max-height:720px) and (min-width:601px){.stage{min-height:540px}.chapter h1,.chapter h2{font-size:76px}.chapter[data-chapter="1"] h2{font-size:64px}.eyebrow{margin-bottom:20px}.intro{font-size:15px;margin-bottom:20px}.chapter{transform:translateY(-43%)}.story-bottom{bottom:21px}.header{padding-top:21px;padding-bottom:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{transform:none!important;opacity:1!important}}

.scene-fallback .scene-backdrop{opacity:.5}.scene-fallback .shade{background:linear-gradient(90deg,#10241cee,transparent)}

/* Legible type over every camera angle. */
.shade{background:linear-gradient(90deg,#10241cd9 0,#10241c88 28%,transparent 59%),linear-gradient(0deg,#101f1b99,transparent 24%)}
.scene-caption{font-size:12px}.chapter-nav button{font-size:13px}.chapter-nav button span{font-size:12px}.scroll-hint{font-size:12px}.motion-toggle{font-size:12px}
@media(max-width:600px){.shade{background:linear-gradient(180deg,#142b23 0,#142b23ef 18%,#142b23bf 37%,transparent 61%,transparent 80%,#101f1bfa)}.intro{font-size:16px}.eyebrow{font-size:12px;letter-spacing:.1em}.discover{font-size:13px}.chapter-nav button{font-size:12px}.chapter-nav button span{font-size:10px}footer{font-size:12px}.reservation .eyebrow{font-size:12px}.scene-caption{display:none}}
.public-discover-link{display:inline-flex;align-items:center;min-height:44px;padding:14px 0;margin-top:24px;color:#425b4b;border-bottom:1px solid #9a8150;font-size:16px}.place-heading>p:last-child,.place-details{color:#52634f}.place h2 span{color:#596b5c}footer>a{display:inline-flex;align-items:center;min-height:44px}footer{align-items:center}

/* A single title leads into the photographs. */
.place-heading{display:block;margin-bottom:44px}
@media(max-width:600px){.place-heading{margin-bottom:30px}}

/* Centered reservation invitation. */
.reservation{display:block;padding:90px 7.4% 60px;text-align:center}
.reservation-copy{min-width:0}
.reservation h2{font-size:clamp(40px,5.2vw,76px);line-height:1.12;letter-spacing:-.055em;font-weight:300;margin:0}
.reservation-copy p{max-width:40rem;font-size:16px;line-height:1.7;color:#d3d9cc;margin:22px auto 0;text-wrap:pretty}
.reservation .contact-actions{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:30px;margin-top:32px}
.reservation .button-gold{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:18px 34px;font-size:16px;white-space:nowrap}
.reservation .phone-link{font-size:15px;letter-spacing:.01em;white-space:nowrap;min-height:44px}
.reservation .footer-logo{width:170px;margin:60px auto 0}
@media(max-width:600px){.reservation{padding:64px 7% 46px}.reservation h2{font-size:clamp(34px,9vw,47px)}.reservation-copy p{font-size:15px;margin-top:20px}.reservation .contact-actions{flex-direction:column;gap:16px;margin-top:28px}.reservation .button-gold{padding:17px 34px}.reservation .phone-link{display:flex;align-items:center;justify-content:center}.reservation .footer-logo{margin-top:44px;width:165px}}
