:focus-visible{outline:2px solid var(--accent,currentColor);outline-offset:3px;border-radius:2px}:root{--v-font-display:"Cormorant Garamond", Georgia, serif;--v-font-text:"Outfit", system-ui, sans-serif;--step--1:clamp(.82rem, .78rem + .2vw, .92rem);--step-0:clamp(1rem, .95rem + .25vw, 1.12rem);--step-1:clamp(1.3rem, 1.15rem + .7vw, 1.65rem);--step-2:clamp(1.9rem, 1.5rem + 1.8vw, 2.8rem);--step-3:clamp(2.8rem, 2rem + 3.8vw, 5.4rem);--wrap:1180px;--gutter:clamp(1.25rem, 5vw, 4rem);--r-md:14px;--r-lg:22px;--z-bg:0;--z-base:1;--z-scene:2;--z-progress:40;--z-header:50;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-mood:cubic-bezier(.32, .72, 0, 1);--mood-dur:.64s}[data-theme=intro]{--bg:oklch(22% .02 60);--surface:oklch(27% .025 58/.72);--ink:oklch(97% .012 80);--ink-soft:oklch(86% .02 72);--accent:oklch(80% .13 62);--accent-ink:oklch(22% .04 50);--line:oklch(97% .012 80/.18);--veil:linear-gradient(180deg, oklch(18% .02 55/.62), oklch(16% .02 50/.8))}[data-theme=echappee-belle]{--bg:oklch(27% .045 46);--surface:oklch(33% .05 46/.74);--ink:oklch(96% .018 72);--ink-soft:oklch(87% .03 64);--accent:oklch(80% .145 60);--accent-ink:oklch(24% .05 45);--line:oklch(96% .018 72/.2);--veil:linear-gradient(180deg, oklch(22% .05 44/.55), oklch(20% .05 38/.78))}[data-theme=oasis-des-dunes]{--bg:oklch(30% .06 232);--surface:oklch(34% .06 232/.66);--ink:oklch(98% .012 200);--ink-soft:oklch(90% .03 210);--accent:oklch(86% .1 92);--accent-ink:oklch(24% .06 232);--line:oklch(98% .012 200/.22);--veil:linear-gradient(180deg, oklch(30% .08 235/.46), oklch(26% .08 240/.7))}[data-theme=echappee-bleue]{--bg:oklch(27% .055 250);--surface:oklch(32% .06 250/.74);--ink:oklch(97% .012 245);--ink-soft:oklch(87% .03 248);--accent:oklch(78% .115 250);--accent-ink:oklch(22% .05 250);--line:oklch(97% .012 245/.2);--veil:linear-gradient(180deg, oklch(24% .05 250/.58), oklch(21% .05 252/.82))}.stage{z-index:var(--z-bg);background:var(--bg);transition:background var(--mood-dur) var(--ease-mood);pointer-events:none;position:fixed;inset:0;overflow:hidden}.stage-image{opacity:0;transition:opacity var(--mood-dur) var(--ease-mood);will-change:opacity;background-position:50%;background-size:cover;position:absolute;inset:0;transform:scale(1.16)}.smooth .stage-image{transition:none}[data-theme=intro] .stage-image[data-for=intro],[data-theme=echappee-belle] .stage-image[data-for=echappee-belle],[data-theme=oasis-des-dunes] .stage-image[data-for=oasis-des-dunes],[data-theme=echappee-bleue] .stage-image[data-for=echappee-bleue]{opacity:1}.stage-veil{background:var(--veil);transition:background var(--mood-dur) var(--ease-mood);position:absolute;inset:0}html body{color:var(--ink);background:var(--bg);font-family:var(--v-font-text);font-size:var(--step-0);letter-spacing:.005em;transition:color var(--mood-dur) var(--ease-mood), background var(--mood-dur) var(--ease-mood);font-weight:400;line-height:1.62;overflow-x:hidden}.wrap{width:min(100% - calc(var(--gutter) * 2), var(--wrap));margin-inline:auto}.hero h1,.scene h2,.story h2,.contact h2,.footer-brand,.brandmark{font-family:var(--v-font-display)}h1,h2,h3{letter-spacing:-.018em;text-wrap:balance;margin:0;font-weight:500;line-height:1.04}.serif-italic{font-family:var(--v-font-display);font-style:italic;font-weight:500}.after p,.hero p,.scene p{text-wrap:pretty;max-width:60ch;margin:0 0 1rem}.after a,.hero a,.scene a,.site-header a,.site-footer a{color:inherit}.site-header{z-index:var(--z-header);padding:clamp(1rem, 2.5vw, 1.6rem) var(--gutter);color:#fff;text-shadow:0 1px 14px oklch(0% 0 0/.4);transition:background var(--mood-dur) var(--ease-mood), backdrop-filter .34s var(--ease-out), border-color .34s var(--ease-out), color var(--mood-dur) var(--ease-mood);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:fixed;top:0;left:0;right:0}.site-header.is-glass{color:var(--ink);background:color-mix(in oklch, var(--bg) 58%, transparent);backdrop-filter:blur(15px)saturate(1.2);border-bottom-color:var(--line);text-shadow:none}.brandmark{font-size:var(--step-1);letter-spacing:-.01em;font-weight:600;line-height:1;text-decoration:none}.brandmark small{font-family:var(--v-font-text);letter-spacing:.32em;text-transform:uppercase;opacity:.85;margin-top:.35rem;font-size:.62rem;font-weight:400;display:block}.site-nav{align-items:center;gap:clamp(1rem,2.4vw,2rem);display:flex}.site-nav a{font-size:var(--step--1);letter-spacing:.02em;font-weight:500;text-decoration:none;position:relative}.site-nav a:after{content:"";transform-origin:0;width:100%;height:1px;transition:transform .32s var(--ease-out);background:currentColor;position:absolute;bottom:-4px;left:0;transform:scaleX(0)}@media (hover:hover) and (pointer:fine){.site-nav a:hover:after{transform:scaleX(1)}}.lang{font-variant:small-caps;letter-spacing:.12em;opacity:.75}.lang b{opacity:1;font-weight:600}@media (width<=720px){.nav-links{display:none!important}}.progress{z-index:var(--z-progress);flex-direction:column;align-items:center;gap:.85rem;display:flex;position:fixed;top:50%;right:clamp(.9rem,2.5vw,1.8rem);transform:translateY(-50%)}.progress .dot{cursor:pointer;background:0 0;border:0;place-items:center;width:24px;height:24px;padding:0;display:grid}.progress .dot:before{content:"";width:9px;height:9px;transition:background .28s var(--ease-out), transform .28s var(--ease-out);background:oklch(100% 0 0/.35);border:1px solid oklch(100% 0 0/.5);border-radius:50%}.progress .dot[aria-current=true]:before{background:var(--accent);transform:scale(1.45)}@media (width<=720px){.progress{display:none}}.hero{z-index:var(--z-base);min-height:100svh;padding:clamp(4.5rem, 10vh, 6rem) var(--gutter) clamp(4rem, 10vh, 7rem);align-content:center;display:grid;position:relative}.hero-inner{width:min(100%,44rem);margin-inline:0}.hero-kicker{font-size:var(--step--1);letter-spacing:.06em;color:var(--ink-soft);align-items:center;gap:.7rem;max-width:none;margin:0 0 1.6rem;display:flex}.hero-kicker:before{content:"";background:var(--accent);flex:none;width:2.6rem;height:1px}.hero h1{letter-spacing:-.01em;max-width:18ch;font-size:clamp(2.6rem,1.4rem + 4.6vw,5rem);line-height:1.04}.hero h1 em{color:var(--accent);font-style:italic}.hero-lede{font-size:var(--step-1);color:var(--ink-soft);max-width:34ch;margin-top:1.8rem;line-height:1.32}.chapter{z-index:var(--z-base);height:150vh;position:relative}.scene{height:100svh;padding:clamp(5rem, 12vh, 8rem) var(--gutter) clamp(3rem, 8vh, 5rem);align-items:center;display:grid;position:sticky;top:0}.scene-inner{width:min(100%, var(--wrap));margin-inline:auto}.chapter-num{font-family:var(--v-font-display);font-style:italic;font-size:var(--step-1);color:var(--accent);margin:0 0 .6rem}.estate-loc{font-size:var(--step--1);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 1.2rem;font-weight:500}.scene h2{font-size:var(--step-3);max-width:14ch}.estate-sense{font-size:var(--step-1);color:var(--ink-soft);max-width:32ch;margin:1.4rem 0 0;line-height:1.34}.estate-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);-webkit-backdrop-filter:blur(7px);transition:background var(--mood-dur) var(--ease-mood), border-color var(--mood-dur) var(--ease-mood);flex-wrap:wrap;align-items:center;gap:1.2rem 1.6rem;margin-top:clamp(1.8rem,4vh,2.6rem);padding:clamp(1.1rem,3vw,1.6rem) clamp(1.3rem,3.5vw,2rem);display:inline-flex}.estate-price{font-family:var(--v-font-display);margin:0;line-height:1}.estate-price b{letter-spacing:-.02em;font-size:clamp(2rem,1.4rem + 2vw,3rem);font-weight:600}.estate-price span{font-family:var(--v-font-text);font-size:var(--step--1);color:var(--ink-soft);letter-spacing:.04em;margin-top:.2rem;display:block}.estate-price.is-soon b{font-size:clamp(1.6rem,1.2rem + 1.5vw,2.3rem);font-style:italic}.estate-tags{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.estate-tags li{font-size:var(--step--1);border:1px solid var(--line);color:var(--ink-soft);border-radius:100px;padding:.3rem .8rem}.estate-cta{font-weight:500;font-size:var(--step-0);background:var(--accent);color:var(--accent-ink);transition:transform .14s var(--ease-out), filter .22s var(--ease-out);border-radius:100px;align-items:center;gap:.55rem;padding:.8rem 1.5rem;text-decoration:none;display:inline-flex}.estate-cta:after{content:"→"}.estate-cta:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.estate-cta:hover{filter:brightness(1.06)}}.estate-soon{font-size:var(--step--1);color:var(--ink-soft);max-width:40ch;margin-top:1.4rem}.illus-note{z-index:var(--z-progress);letter-spacing:.06em;color:#fff;backdrop-filter:blur(2px);pointer-events:none;background:oklch(0% 0 0/.45);border-radius:100px;margin:0;padding:.22rem .6rem;font-size:.6rem;position:fixed;bottom:clamp(.8rem,2.5vw,1.4rem);left:clamp(.8rem,2.5vw,1.4rem)}.after{z-index:var(--z-scene);background:var(--bg);transition:background var(--mood-dur) var(--ease-mood);border-top:1px solid var(--line);position:relative}.section{padding-block:clamp(2.6rem,5vw,4.5rem)}.story-grid{grid-template-columns:.85fr 1fr;align-items:center;gap:clamp(2rem,5vw,4.5rem);display:grid}.story-figure{aspect-ratio:4/5;border-radius:var(--r-md);background:var(--surface);max-height:32rem;overflow:hidden}.story-text{max-width:48ch}.story-figure img{object-fit:cover;width:100%;height:100%}.story h2{font-size:var(--step-2);margin-bottom:1.3rem}.story .lead{font-size:var(--step-1);color:var(--ink);margin-bottom:1.6rem;line-height:1.34}.story p{color:var(--ink-soft)}.story .signature{font-size:var(--step-1);color:var(--ink);margin-top:1.6rem}.story .signature small{font-family:var(--v-font-text);font-size:var(--step--1);letter-spacing:.04em;color:var(--ink-soft);margin-top:.2rem;font-style:normal;display:block}@media (width<=800px){.story-grid{grid-template-columns:1fr}.story-figure{aspect-ratio:16/10;order:-1}}.proof{text-align:center;padding-block:calc(clamp(2.6rem,5vw,4.5rem) - 10px)}.proof-intro{font-size:var(--step-1);color:var(--ink-soft);margin:0 0 clamp(1.8rem,4vw,3rem)}.proof-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);align-items:start;display:grid}.proof-stats .stat{flex-direction:column;gap:.5rem;padding:clamp(1.8rem,4vw,2.8rem) clamp(.8rem,2vw,1.6rem);display:flex}.proof-stats .stat+.stat{border-left:1px solid var(--line)}.stat-num{font-family:var(--v-font-display);letter-spacing:-.02em;color:var(--accent);transition:color var(--mood-dur) var(--ease-mood);font-size:clamp(2.6rem,1.6rem + 3.4vw,4.4rem);font-weight:500;line-height:1}.stat-label{font-size:var(--step--1);letter-spacing:.04em;color:var(--ink-soft)}.proof .proof-sub{color:var(--ink-soft);font-size:var(--step--1);letter-spacing:.04em;max-width:40ch;margin:clamp(1.6rem,3.5vw,2.6rem) auto 0}@media (width<=680px){.proof-stats{grid-template-columns:1fr}.proof-stats .stat+.stat{border-left:0;border-top:1px solid var(--line)}}.contact-grid{grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(1.8rem,5vw,4rem);display:grid}.contact h2{font-size:var(--step-2);margin-bottom:1.1rem}.contact p{color:var(--ink-soft)}.contact-actions{flex-wrap:wrap;gap:.8rem;margin-top:1.8rem;display:flex}.btn{font-weight:500;font-size:var(--step-0);transition:transform .14s var(--ease-out), background .28s var(--ease-out), color .28s var(--ease-out);border-radius:100px;align-items:center;gap:.55rem;padding:.85rem 1.5rem;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:var(--accent-ink)}.contact-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);-webkit-backdrop-filter:blur(7px);padding:clamp(1.5rem,4vw,2.4rem)}.contact-card dl{gap:1.1rem;margin:0;display:grid}.contact-card dt{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.25rem;font-size:.66rem}.contact-card dd{font-size:var(--step-0);margin:0}.contact-card a{border-bottom:1px solid var(--accent);text-decoration:none}@media (width<=760px){.contact-grid{grid-template-columns:1fr}}.site-footer{z-index:var(--z-scene);background:var(--bg);border-top:1px solid var(--line);padding:clamp(2.5rem, 6vw, 4rem) var(--gutter) clamp(2rem, 4vw, 3rem);font-size:var(--step--1);color:var(--ink-soft);transition:background var(--mood-dur) var(--ease-mood);position:relative}.footer-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem 2rem;display:flex}.footer-brand{font-size:var(--step-1);color:var(--ink);margin:0 0 .5rem}.footer-legal{max-width:46ch;margin:0}.footer-nav{flex-direction:column;gap:.4rem;display:flex}.footer-nav a{color:var(--ink);text-decoration:none}.footer-nav a:hover{color:var(--accent)}.footer-bottom{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.5rem;margin-top:2.4rem;padding-top:1.4rem;display:flex}.footer-bottom a{color:var(--ink);border-bottom:1px solid var(--accent);text-decoration:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.scene-inner{will-change:opacity, transform}.js .reveal{opacity:0;transition:opacity .76s var(--ease-out), transform .76s var(--ease-out);transform:translateY(16px)}.js .reveal.in-view{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.stage,.stage-image,.stage-veil,html body,.after,.site-footer,.estate-card,.stat-num{transition-duration:.001ms!important}.stage-image{transform:none}.scene-inner,.js .reveal{opacity:1!important;transform:none!important}}
