*{box-sizing:border-box}html,body{margin:0;background:#e8dabf;overscroll-behavior-y:none}body{--progress:0}button{padding:0;border:0;background:none;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid #b79352;outline-offset:7px}body.modal-open{overflow:hidden}.film,.stage{position:fixed;inset:0;overflow:hidden;pointer-events:none}.film{z-index:0}.film video{width:100%;height:100%;object-fit:cover;display:block}.stage{z-index:2}#scroll-track{height:1100vh;position:relative}#video-plane{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:100%;height:100%}.scene{position:absolute;inset:0;visibility:hidden;pointer-events:none;overflow:visible}.scene[data-present="true"]{visibility:visible}.layer-slot,.layer-motion,.layer-surface{position:absolute;pointer-events:none}.layer-slot{overflow:visible}.layer-motion{inset:0;will-change:transform,opacity,filter;transform-origin:50% 70%}.layer-surface{overflow:hidden}.layer-surface img{position:absolute;display:block;max-width:none;pointer-events:none}.photo-motion{mask-image:linear-gradient(90deg,#000 0%,#000 100%);mask-repeat:no-repeat}.text-art{filter:drop-shadow(0 1px 1px #eedfc533)}.light-ink .text-art{filter:brightness(0) invert(1) sepia(.18) drop-shadow(0 1px 5px #0006)}.scene-booking{position:absolute;bottom:0;left:8%;width:84%;height:23%;pointer-events:auto;z-index:5}.navigation{position:fixed;z-index:30;inset:25px 38px auto;display:flex;align-items:center;gap:30px;pointer-events:none}.navigation button{pointer-events:auto}.nav-main{display:flex;align-items:center;gap:30px;margin-left:auto}.nav-word{position:relative;flex-shrink:0;filter:drop-shadow(0 1px 3px #e8d4ac99);transition:opacity .25s,transform .25s}.nav-word:hover{transform:translateY(-2px)}.sprite{position:relative;display:block;overflow:hidden;width:100%;height:100%}.sprite img{position:absolute;max-width:none;pointer-events:none}.version-choices{display:flex;gap:22px;align-items:center;margin-left:28px}.version-choices button[aria-pressed="false"]{opacity:.48}.version-choices button[aria-pressed="true"]:after{content:'';position:absolute;bottom:-9px;left:5%;width:80%;height:1px;background:#b48f48}.night-nav .navigation .nav-word{filter:brightness(0) invert(1) sepia(.15) drop-shadow(0 1px 5px #0008)}.scene-dots{position:fixed;right:15px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:11px;z-index:25}.scene-dots button{width:17px;height:17px;display:grid;place-items:center}.scene-dots button:after{content:'';width:4px;height:4px;background:#b69150;border-radius:50%;opacity:.5;box-shadow:0 0 0 2px #efe0ba40}.scene-dots button[aria-current="true"]:after{transform:scale(1.6);opacity:1}.next-scene{position:fixed;bottom:20px;left:calc(50% - 16px);width:32px;height:48px;z-index:25}.next-scene svg{fill:none;stroke:#b79555;stroke-width:1.7;filter:drop-shadow(0 1px 2px #fff8)}.progress{position:fixed;bottom:0;height:2px;width:100%;background:#b59759;transform-origin:left;transform:scaleX(var(--progress));z-index:40}dialog{border:0;padding:0;max-width:94vw;max-height:92dvh;background:#ecdec3;box-shadow:0 30px 100px #0007;overflow:auto}dialog::backdrop{background:#111a1eb8;backdrop-filter:blur(10px)}.close-dialog{position:sticky;float:right;z-index:10;top:15px;margin:15px 15px -55px 0;width:38px;height:38px;background:#eaddc4e0;border-radius:50%;padding:10px}.close-dialog svg{width:100%;height:100%;fill:none;stroke:#49382b;stroke-width:1.4}.menu-dialog{width:min(1120px,94vw);background:#e8dbc0 url('/references/scene-01.jpg') center/cover}.menu-layout{position:relative;min-height:640px;display:flex;padding:55px 35px 20px;align-items:center}.menu-copy{position:relative;width:64%;height:auto;z-index:2}.menu-photo{position:absolute;right:0;bottom:0;width:70%;opacity:.55;pointer-events:none}.menu-photo img{width:100%}.dialog-cta{margin:25px auto;display:block;filter:drop-shadow(0 1px 3px #fff7)}.booking-dialog{width:min(960px,94vw);background:#e8dbc0 url('/references/scene-01.jpg') center/cover}.booking-plane{position:relative;aspect-ratio:16/9;min-height:420px}.booking-labels{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.booking-field{position:absolute;border:0;outline:none;background:transparent;color:#302821;font:18px Georgia,serif;padding:5px 12px;width:36%;height:9%;left:10%;z-index:2}.booking-field:focus{background:#fff3;box-shadow:inset 0 -1px #99733e}.booking-field:nth-of-type(n){border-radius:2px}.booking-field.f0{left:10%;top:44%}.booking-field.f1{left:54%;top:44%}.booking-field.f2{left:10%;top:62%}.booking-field.f3{left:54%;top:62%}.booking-field.f4{left:10%;top:80%}.booking-field.f5{left:54%;top:80%}.booking-field option{background:#ecdec3;color:#302821}#booking-feedback{padding:0 20px 20px;text-align:center}#booking-feedback[hidden]{display:none}#booking-feedback svg{width:46px;height:46px;fill:none;stroke:#526d45;stroke-width:2}#booking-message{position:absolute}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:780px){.navigation{inset:18px 18px auto;flex-wrap:wrap;gap:12px}.nav-main{gap:15px}.version-choices{position:fixed;left:20px;bottom:24px;margin:0;gap:20px}.scene-dots{right:6px;gap:8px}.next-scene{bottom:20px}.booking-plane{min-width:700px}.booking-field{font-size:16px}.menu-layout{min-width:740px;min-height:600px;padding:50px 25px 15px}.close-dialog{position:fixed;right:6vw;top:6dvh}.dialog-cta{position:sticky;bottom:10px}.layer-slot.text-slot:before{content:'';position:absolute;inset:-7% -8%;background:radial-gradient(ellipse,#e6d3afbb,transparent 72%);filter:blur(10px);z-index:-1}.light-ink.text-slot:before{background:radial-gradient(ellipse,#101e258f,transparent 72%)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
.photo-slot .layer-surface{mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent),linear-gradient(180deg,transparent,#000 5%,#000 94%,transparent);mask-composite:intersect}
#scene-4 .photo-slot .layer-surface{mask-image:radial-gradient(ellipse at 52% 57%,#000 40%,#000 57%,transparent 80%),linear-gradient(90deg,transparent,#000 8%,#000 91%,transparent),linear-gradient(180deg,transparent,#000 8%,#000 90%,transparent);mask-composite:intersect}
.nav-main{position:absolute;left:50%;transform:translateX(-50%);margin:0}
.version-choices{margin-left:auto}
.navigation:before{content:'';position:absolute;inset:-25px -38px -26px;background:linear-gradient(#eddfc3c7,#eddfc333 68%,transparent);z-index:-1;pointer-events:none}
.night-nav .navigation:before{background:linear-gradient(#101e25a6,#101e2533 68%,transparent)}
.menu-dialog{background-image:linear-gradient(90deg,#ecdec3fa,#ecdec3ef 52%,#ecdec36b),url('/references/scene-01.jpg')}
.menu-layout{min-height:0;padding:35px 40px 5px;align-items:center}
.menu-copy{width:60%;max-height:calc(90dvh - 130px);object-fit:contain;object-position:left center}
.menu-photo{width:43%;right:20px;bottom:0;opacity:1;mask-image:linear-gradient(90deg,transparent,#000 15%,#000 90%,transparent),linear-gradient(180deg,transparent,#000 10%,#000 93%,transparent);mask-composite:intersect}
.booking-dialog{background-image:linear-gradient(#ecdec3e8,#ecdec3e8),url('/references/scene-01.jpg')}
.booking-field.f0,.booking-field.f1{top:46%}
.booking-field.f2,.booking-field.f3{top:64%}
.booking-field.f4,.booking-field.f5{top:82%}
@media(max-width:780px){.nav-main{position:static;transform:none;margin-left:auto}.version-choices{margin:0}.navigation:before{inset:-18px -18px -20px}.menu-layout{min-width:0;padding:35px 15px 0;min-height:0}.menu-copy{width:100%;max-height:calc(86dvh - 110px);object-position:center}.menu-photo{display:none}.booking-plane{min-width:0;min-height:0;aspect-ratio:16/9}.booking-field{font-size:12px;padding:0 6px}.close-dialog{position:sticky;right:auto;top:10px}.dialog-cta{margin:15px auto}}
/* Les compositions mobiles suivent le canevas 9:16, sans rogner ses espaces libres. */
body[data-format="mobile"] .film{background:#e8dabf}
body[data-format="mobile"].night-nav .film{background:#26302d}
body[data-format="mobile"] .navigation{inset:auto;top:max(18px,calc(var(--phone-top) - 48px));left:calc(var(--phone-left) + 18px);width:calc(var(--phone-width) - 36px);gap:12px;flex-wrap:wrap}
body[data-format="mobile"] .nav-main{position:static;transform:none;margin-left:auto;gap:15px}
body[data-format="mobile"] .version-choices{position:fixed;left:calc(var(--phone-left) + 20px);bottom:max(24px,calc(var(--phone-bottom) - 44px));gap:20px;margin:0}
body[data-format="mobile"] .navigation:before{inset:-18px -18px -20px}
body[data-format="mobile"] .scene-dots{right:auto;left:calc(var(--phone-left) + var(--phone-width) - 23px);gap:8px}
body[data-format="mobile"] .next-scene{bottom:max(20px,calc(var(--phone-bottom) - 47px))}
body[data-format="mobile"] .progress{left:var(--phone-left);width:var(--phone-width)}
body[data-format="mobile"] .layer-slot.text-slot:before{content:'';position:absolute;inset:-6% -4%;background:radial-gradient(ellipse,#e6d3af88,transparent 70%);filter:blur(8px);z-index:-1}
body[data-format="mobile"] .light-ink.text-slot:before{background:radial-gradient(ellipse,#101e257a,transparent 70%)}
body[data-format="mobile"] .text-art{filter:drop-shadow(0 0 1px #e8dabf99)}
body[data-format="mobile"] .light-ink .text-art{filter:brightness(0) invert(1) sepia(.18) drop-shadow(0 0 2px #0008)}
body[data-format="mobile"] .menu-dialog,body[data-format="mobile"] .booking-dialog{width:min(390px,94vw)}
body[data-format="mobile"] .menu-layout{min-width:0;min-height:0;padding:35px 15px 0}
body[data-format="mobile"] .menu-copy{width:100%;max-height:calc(86dvh - 110px);object-position:center}
body[data-format="mobile"] .menu-photo{display:none}
body[data-format="mobile"] .booking-plane{width:min(100%,calc((90dvh - 85px)*9/16));margin:auto;min-width:0;min-height:0;aspect-ratio:9/16}
body[data-format="mobile"] .booking-field{left:12%;width:76%;height:5%;padding:0 8px;font-size:16px}
body[data-format="mobile"] .booking-field.f0{top:29%}
body[data-format="mobile"] .booking-field.f1{top:40%}
body[data-format="mobile"] .booking-field.f2{top:51%}
body[data-format="mobile"] .booking-field.f3{top:62%}
body[data-format="mobile"] .booking-field.f4{top:73%}
body[data-format="mobile"] .booking-field.f5{top:84%}
body[data-format="mobile"] .close-dialog{position:sticky;top:10px;right:auto}
body[data-format="mobile"] .dialog-cta{margin:15px auto}
