
/* Food Truck Merge V7.1: portrait first, identical composition on desktop and mobile.
   Existing game mechanics and approved 4 stations/35 squares are untouched. */
.ftm-launch{left:50%!important;right:auto!important;transform:translateX(-50%)!important;
 width:min(100vw,430px)!important;height:100dvh!important;max-width:430px!important;
 background:#100b19 url('assets/launch/couverture-iphone.webp') center center / 100% 100% no-repeat!important;
 border:0!important;border-left:1px solid #e9ba6c55!important;border-right:1px solid #e9ba6c55!important;
 box-sizing:border-box!important;box-shadow:0 0 100px #060110e6!important;}
.ftm-launch:after{display:none!important;}
.ftm-launch-content{bottom:calc(3.4dvh + env(safe-area-inset-bottom,0px))!important;}
.ftm-loading-card{opacity:0;transition:opacity .2s ease!important;}
.ftm-launch.loading-visible .ftm-loading-card{opacity:1;}
.ftm-chapters,.ftm-universes{left:50%!important;right:auto!important;transform:translateX(-50%)!important;
 width:min(100vw,430px)!important;max-width:430px!important;height:100dvh!important;
 max-height:100dvh!important;box-sizing:border-box!important;box-shadow:0 0 80px #080111cf!important;}
.ftm-chapters{border-left:1px solid #dc8a557a!important;border-right:1px solid #dc8a557a!important;}
.ftm-back-worlds{position:absolute;left:10px;top:8px;z-index:7;border:1.5px solid #ffe2a4;border-radius:15px;
 background:linear-gradient(#6c2839,#45192f);color:#fff2ca;padding:6px 9px;font-size:12px;font-weight:900;box-shadow:0 3px #270e1d;}
.ftm-hub-kicker{margin-top:2px!important;padding:0 54px;line-height:1.2!important;}
@media(max-height:710px){.ftm-hub-kicker{padding:0 60px;font-size:8px!important}.ftm-back-worlds{padding:5px 6px!important}}
.ftm-universes.hidden{display:none!important}
.ftm-universes{position:fixed;inset:0;z-index:205;isolation:isolate;overflow:hidden;
 display:flex;flex-direction:column;align-items:center;
 padding:calc(env(safe-area-inset-top,0px) + 5px) 0 calc(env(safe-area-inset-bottom,0px) + 13px);
 font-family:ui-rounded,'Trebuchet MS',Verdana,Arial,sans-serif;color:#fff2d2;
 background:linear-gradient(180deg,#211433,#511e36 44%,#241224)}
.ftm-world-backdrop{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#1c0d25ae,#25101fc0 54%,#170b1ce8),url('assets/launch/couverture-iphone.webp') center/cover;filter:saturate(1.1) blur(5px);transform:scale(1.04)}
.ftm-world-header{flex:0 0 auto;min-height:0;width:100%;text-align:center;padding:1px 8px 3px;text-shadow:0 2px 5px #120915}
.ftm-world-header img{display:block;object-fit:contain;width:min(55vw,195px);height:clamp(71px,12dvh,100px);margin:0 auto -4px;filter:drop-shadow(0 3px 3px #130b1a)}
.ftm-world-header h1{font-size:clamp(22px,6.1vw,30px);margin:0 auto 4px;color:#ffe5a6;font-weight:1000;text-shadow:0 3px 4px #250e15}
.ftm-world-header p{margin:0;font-size:11px;color:#ffe8c3;letter-spacing:.02em;font-weight:800}
.ftm-world-carousel-wrap{flex:1 1 auto;min-height:0;width:100%;display:flex;align-items:center;position:relative;margin:7px 0 0;}
.ftm-world-carousel{display:flex;width:100%;height:100%;min-height:0;align-items:center;gap:11px;
 padding:3px calc((100% - min(75vw,310px))/2) 14px;overflow-x:auto;overflow-y:hidden;
 box-sizing:border-box;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x;}
.ftm-world-carousel::-webkit-scrollbar{display:none}
.ftm-world-card{position:relative;flex:0 0 min(75vw,310px);height:min(100%,470px);max-height:100%;min-height:230px;
 border:3px solid #ffe3a4;border-radius:24px;overflow:hidden;background:#351d35;
 scroll-snap-align:center;color:white;box-shadow:0 7px 0 #94431d,0 13px 25px #16091ebc;cursor:pointer;transition:transform .18s,box-shadow .18s;}
.ftm-world-card.selected{transform:translateY(-3px);box-shadow:0 7px 0 #8e3c1f,0 0 0 3px #ffd3567c,0 14px 28px #15071aca;}
.ftm-world-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.ftm-world-card.is-locked>img{filter:grayscale(1) brightness(.69)}
.ftm-world-shade{position:absolute;inset:0;background:linear-gradient(180deg,#1e102a12 0%,#200e2133 43%,#1a0b1fe7 100%)}
.ftm-world-card.is-locked .ftm-world-shade{background:linear-gradient(180deg,#14111652,#171117a5 60%,#160f17f5)}
.ftm-world-tag{position:absolute;left:13px;right:13px;top:15px;border:1px solid #b8ffab;
 border-radius:20px;padding:8px 5px;text-align:center;font-size:10px;font-weight:1000;letter-spacing:.04em;
 background:linear-gradient(#35a04ae9,#116535ed);box-shadow:0 3px 10px #140a12a6}
.ftm-world-card.is-locked .ftm-world-tag{border-color:#a9a7b2;background:linear-gradient(#5a5866,#262333)}
.ftm-world-info{position:absolute;left:9px;right:9px;bottom:17px;text-align:center;text-shadow:0 2px #170911;display:flex;flex-direction:column;gap:6px;}
.ftm-world-info>span{font-size:10px;font-weight:1000;color:#ffe19b;letter-spacing:.08em}
.ftm-world-info h2{font-size:clamp(22px,5.7vw,29px);line-height:1.05;margin:0;font-weight:1000;color:#fff6d3}
.ftm-world-info p{font-size:12px;line-height:1.22;margin:0;color:#fff7e4}
.ftm-world-info b{font-size:10px;color:#ffda91;font-weight:1000}
.ftm-world-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:32px;height:50px;border:2px solid #ffeca7;
 border-radius:12px;font-size:31px;font-weight:1000;color:#6c2713;background:linear-gradient(#fff7d1,#ffbb3a,#d57729);box-shadow:0 3px #64270e;cursor:pointer}
.ftm-world-arrow:disabled{opacity:.38;cursor:default}
#ftmPrevWorld{left:4px}#ftmNextWorld{right:4px}
.ftm-world-dots{display:flex;flex:0 0 23px;align-items:center;justify-content:center;gap:8px}
.ftm-world-dots button{border:0;width:7px;height:7px;border-radius:20px;padding:0;background:#e1b49c91;cursor:pointer}
.ftm-world-dots button.current{width:22px;background:#ffe080}
.ftm-world-footer{width:100%;flex:0 0 auto;padding:0 14px 3px;box-sizing:border-box;text-align:center;display:flex;flex-direction:column;align-items:center;gap:7px}
.ftm-world-footer>span{font-size:12px;font-weight:900;color:#ffe4a3}
#ftmChooseWorld{width:100%;height:clamp(48px,8dvh,60px);border:3px solid #f5ffad;border-radius:18px;
 background:linear-gradient(#a3ff76,#30d458 65%,#0d9c40);box-shadow:0 4px #11763b;color:#174b25;font-weight:1000;font-size:clamp(15px,4.1vw,19px);text-shadow:0 1px #ddffb7;cursor:pointer}
#ftmChooseWorld:disabled{background:linear-gradient(#7c7780,#3c3945);color:#ede7e8;box-shadow:0 3px #2c2534;border-color:#aca4a2;cursor:not-allowed;text-shadow:none}
.ftm-world-footer small{font-size:10px;color:#f8dbbcae;line-height:1.2}
@media(max-height:710px){.ftm-world-header img{height:62px}.ftm-world-header p,.ftm-world-footer small{display:none}.ftm-world-info h2{font-size:21px}.ftm-world-footer{gap:4px}.ftm-world-dots{flex-basis:17px}.ftm-world-card{min-height:200px}}
@media(max-width:345px){.ftm-world-card{flex-basis:76vw}.ftm-world-info h2{font-size:20px}}

/* Keep real phone display under the mobile viewport rather than a tall web page. */
@supports (height: 100svh){.ftm-launch,.ftm-chapters,.ftm-universes{height:100svh!important;max-height:100svh!important;}}
@supports (height: 100dvh){.ftm-launch,.ftm-chapters,.ftm-universes{height:100dvh!important;max-height:100dvh!important;}}
