/* Food Truck Merge — écran d'accueil et carrousel (V4 graphique originale conservée). */
.ftm-launch,.ftm-chapters{position:fixed;inset:0;z-index:200;overflow:hidden;isolation:isolate;max-width:none;color:#fff8df;font-family:ui-rounded,'Trebuchet MS',Verdana,Arial,sans-serif}
.ftm-launch.hidden,.ftm-chapters.hidden{display:none!important}
.ftm-launch{z-index:210;background:linear-gradient(180deg,#160f1ab8,#200b17be),url('assets/chapters/chapter-1.webp') center 50% / cover no-repeat;display:grid;place-items:center;padding:calc(env(safe-area-inset-top) + 18px) 18px calc(env(safe-area-inset-bottom) + 22px)}
.ftm-launch:after,.ftm-chapters-backdrop:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 35%,transparent 20%,#130b1c75 90%)}
.ftm-launch-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 25%,#ffa9334d,transparent 62%)}
.ftm-launch-content{z-index:1;width:min(430px,100%);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:55svh}
.ftm-launch-logo{width:min(73vw,340px);height:132px;object-fit:contain;filter:drop-shadow(0 8px 6px #17070de6) drop-shadow(0 0 15px #ffb52a69);animation:ftm-hub-float 3s ease-in-out infinite}
.ftm-launch-tag{font-size:10px;letter-spacing:.2em;margin:0 0 12px;font-weight:1000;color:#ffe7a3;text-shadow:0 2px 4px #000}
.ftm-launch-illustration{width:min(74vw,320px);height:min(26svh,220px);background:url('assets/scene/truck-stage-0.webp') center/cover;border-radius:17px;border:3px solid #ffd279;box-shadow:0 8px 35px #110617a8,inset 0 0 0 2px #fff3bc;transform:rotate(-1deg)}
.ftm-launch-headline{font-size:clamp(18px,5.5vw,25px);font-weight:1000;letter-spacing:.01em;color:#fff6d3;text-shadow:0 3px 3px #331119;margin:22px 0 15px}
.ftm-load-row{display:flex;width:100%;max-width:342px;justify-content:space-between;align-items:center;font-size:11px;font-weight:900;margin-bottom:8px;gap:10px;text-shadow:0 2px #000b}
.ftm-load-row strong{font-size:14px;color:#ffe977}
.ftm-load-track{width:100%;max-width:342px;height:20px;border-radius:100px;padding:3px;background:#2b1425e8;border:2px solid #ffc868;box-shadow:0 4px 12px #11071ba5,inset 0 1px #ffe0a44a}
.ftm-load-track>div{height:100%;width:0%;background:linear-gradient(90deg,#21c758,#8bf238,#ffdf5a);border-radius:100px;box-shadow:0 0 8px #9af544ac;transition:width .12s linear}
.ftm-launch-footnote{margin:12px 0 0;color:#fff0c8c9;text-shadow:0 2px #000;font-size:11px;line-height:1.3}
@keyframes ftm-hub-float{50%{transform:translateY(-5px)}}
.ftm-chapters{background:#25152a;display:flex;align-items:center;flex-direction:column;padding:calc(env(safe-area-inset-top) + 8px) 0 calc(env(safe-area-inset-bottom) + 9px)}
.ftm-chapters-backdrop{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#1c112fa8,#491323c7 55%,#1e0c20f1),url('assets/chapters/chapter-1.webp') center/cover no-repeat;filter:saturate(1.12)}
.ftm-hub-header{width:100%;flex:0 0 auto;position:relative;text-align:center;padding:0 12px 4px;z-index:2;text-shadow:0 3px 4px #2d1017}
.ftm-hub-logo{height:clamp(70px,11svh,105px);width:220px;max-width:75vw;display:block;margin:auto;object-fit:contain;filter:drop-shadow(0 4px 3px #27080be0)}
.ftm-hub-kicker{margin:0 auto 2px;font-size:10px;letter-spacing:.15em;color:#ffdb91;font-weight:900}
.ftm-hub-header h1{font-size:clamp(21px,5.4vw,28px);line-height:1;margin:4px auto 3px;color:#fff1c2;font-weight:1000}
.ftm-hub-header p{font-size:12px;font-weight:800;margin:5px 0;color:#ffdab8}
.ftm-hub-carousel-wrap{position:relative;width:100%;max-width:620px;margin:10px auto 0;min-height:0;flex:1 1 460px;display:flex;align-items:center;justify-content:center}
.ftm-hub-carousel{width:100%;height:100%;min-height:250px;display:flex;align-items:center;gap:13px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;scroll-snap-type:x mandatory;scroll-padding-inline:calc((100% - min(76vw,308px))/2);padding:4px max(0px,calc((100% - min(76vw,308px))/2)) 10px;box-sizing:border-box}
.ftm-hub-carousel::-webkit-scrollbar{display:none}
.ftm-chapter-card{position:relative;flex:0 0 min(76vw,308px);height:min(100%,480px);min-height:250px;max-height:470px;border:3px solid #ffe39b;border-radius:25px;overflow:hidden;scroll-snap-align:center;box-shadow:0 8px 0 #8d4123,0 12px 29px #1c091fbb;background:#311b1c;color:white;cursor:pointer;transition:transform .25s,border-color .25s,box-shadow .25s;user-select:none}
.ftm-chapter-card.selected{transform:translateY(-4px) scale(1.006);border-color:#ffeb9e;box-shadow:0 8px 0 #96501e,0 0 0 3px #ffc94b91,0 14px 35px #13090fd9}
.ftm-chapter-card>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center;inset:0}
.ftm-chapter-card.is-locked>img{filter:grayscale(1) brightness(.59) contrast(.9)}
.ftm-chapter-tint{position:absolute;inset:0;background:linear-gradient(180deg,#2b102123 0%,transparent 37%,#210b1f78 62%,#230c1af2 100%)}
.ftm-chapter-card.is-locked .ftm-chapter-tint{background:linear-gradient(180deg,#1b1619ab,#1410152a 26%,#120d13e8 100%)}
.ftm-chapter-state{position:absolute;top:14px;left:12px;right:12px;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;background:linear-gradient(#268e44ea,#115a2dec);border:1px solid #c9ff98;border-radius:28px;font-weight:1000;font-size:12px;box-shadow:0 2px 8px #21110f7c;text-shadow:0 1px #0008}
.ftm-chapter-card.is-locked .ftm-chapter-state{background:linear-gradient(#61616bcf,#25252bed);color:#e5e2e2;border-color:#a7a5ad}
.ftm-state-icon{font-size:17px}
.ftm-chapter-info{position:absolute;bottom:0;left:0;right:0;padding:22px 16px 21px;text-align:center}
.ftm-chapter-info>span{font-size:10px;letter-spacing:.13em;font-weight:1000;color:#ffe19b}
.ftm-chapter-info h2{font-weight:1000;font-size:clamp(23px,5.7vw,30px);line-height:1.03;margin:6px 0 8px;text-shadow:0 3px #160909}
.ftm-chapter-info p{font-size:12px;color:#fff0df;line-height:1.35;margin:0}
.ftm-hub-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:38px;height:50px;border-radius:13px;background:linear-gradient(#fff3bf,#ffbf46,#d56c1e);border:2px solid #ffe29a;color:#722a11;font-size:36px;line-height:35px;font-weight:900;box-shadow:0 4px #78351d,0 6px 9px #180e16a6;cursor:pointer}
.ftm-hub-arrow:disabled{opacity:.35;cursor:default}
.ftm-prev{left:max(5px,calc((100% - 470px)/2))}.ftm-next{right:max(5px,calc((100% - 470px)/2))}
.ftm-hub-dots{height:28px;flex:0 0 auto;display:flex;justify-content:center;align-items:center;gap:8px}
.ftm-hub-dot{border:0;border-radius:100px;width:8px;height:8px;background:#dcb69a89;transition:width .2s,background .2s;cursor:pointer;padding:0}
.ftm-hub-dot.is-current{width:26px;background:#ffd168;box-shadow:0 0 9px #ffcc61ac}
.ftm-hub-footer{flex:0 0 auto;width:min(100%,430px);text-align:center;padding:0 16px;display:flex;flex-direction:column;align-items:center;gap:9px}
.ftm-hub-footer p{font-weight:900;font-size:12px;color:#ffefbe;margin:0;min-height:15px}
.ftm-play-chapter{height:55px;width:100%;border:3px solid #f8e9a7;border-radius:18px;background:linear-gradient(#a7ff77,#36d452 62%,#189b43);color:#154321;font-size:clamp(15px,4.3vw,18px);font-weight:1000;text-shadow:0 1px #f7ffb3;box-shadow:0 5px #0a7134,inset 0 2px #f8ffd9,0 6px 12px #100d1aab;cursor:pointer}
.ftm-play-chapter:disabled{background:linear-gradient(#77747a,#3a3740);border-color:#aba4a8;color:#e0dcdf;text-shadow:none;box-shadow:0 4px #26232b;cursor:not-allowed}
.ftm-hub-footer small{font-size:10px;color:#f4dbcfc7;line-height:1.2}
.ftm-current-benefits{display:flex;flex-direction:column;gap:4px;margin:10px 0;padding:12px;text-align:left;background:linear-gradient(#fff6df,#ffddb3);border:1px solid #d9a365;border-radius:13px;font-size:12px;color:#613b23}
.ftm-current-benefits>b{font-size:11px;color:#a33a27;letter-spacing:.05em}
@media(max-height:710px){.ftm-chapters{padding-top:env(safe-area-inset-top)}.ftm-hub-logo{height:67px}.ftm-hub-header h1{font-size:20px}.ftm-hub-header p{display:none}.ftm-hub-carousel-wrap{margin-top:6px}.ftm-hub-footer{gap:5px}.ftm-play-chapter{height:48px}.ftm-hub-footer small{display:none}.ftm-hub-dots{height:20px}}
@media(max-width:350px){.ftm-hub-arrow{width:30px;height:44px;font-size:30px}.ftm-chapter-card{border-radius:19px}.ftm-chapter-info h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.ftm-launch-logo{animation:none}.ftm-chapter-card,.ftm-load-track>div{transition:none}}
