/* Teebox — ouverture de l'appli sur téléphone (chargé en dernier pour passer devant les autres styles) */
/* ---------- la balle TEEBOX (rendu 3D maison, public/balle-teebox.webp) arrive, rebondit, puis on plonge dedans ---------- */
.lance2{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(ellipse at 50% 42%,#1f7a4c 0%,var(--tb) 45%,#06301f 100%);animation:lb-out 3.2s ease-in forwards}
.lance2::after{content:"";position:absolute;inset:0;background:#fff;opacity:0;animation:lb-flash 3.2s forwards;pointer-events:none}
.lb-wrap{position:relative;display:grid;place-items:center;animation:lb-zoom 3.2s cubic-bezier(.55,0,.25,1) forwards;will-change:transform}
.lb-ball{position:relative;width:min(60vw,60vh);aspect-ratio:1;border-radius:50%;
  background:url(/balle-teebox.webp) center/100% 100% no-repeat;
  filter:drop-shadow(0 30px 40px rgba(0,0,0,.45));animation:lb-spin 3.2s ease-out forwards}
.lb-shadow{position:absolute;bottom:-6%;width:70%;height:9%;border-radius:50%;background:rgba(0,0,0,.45);filter:blur(10px);z-index:-1;animation:lb-shadow 3.2s forwards}
.lb-tag{position:absolute;bottom:calc(14% + env(safe-area-inset-bottom,0px));left:24px;right:24px;text-align:center;color:#e7f4ec;font-weight:700;font-size:15px;opacity:0;animation:lb-tag 3.2s forwards}
/* 0-0,6 s : la balle tombe et rebondit · 0,6-1,6 s : elle tourne doucement · 1,6-2,8 s : zoom dans la balle · fin : fondu vers la connexion */
@keyframes lb-zoom{0%{transform:translateY(-70vh) scale(.6)}14%{transform:translateY(0) scale(1.04,.95)}19%{transform:translateY(-4%) scale(.98,1.02)}24%{transform:translateY(0) scale(1)}
  50%{transform:scale(1.03)}88%{transform:scale(11)}100%{transform:scale(14)}}
@keyframes lb-spin{0%{transform:rotate(-40deg)}24%{transform:rotate(-6deg)}50%{transform:rotate(0)}100%{transform:rotate(3deg)}}
@keyframes lb-shadow{0%{opacity:0;transform:scale(.4)}14%,50%{opacity:1;transform:scale(1)}62%,100%{opacity:0}}
@keyframes lb-tag{0%,22%{opacity:0;transform:translateY(8px)}32%,48%{opacity:1;transform:none}56%,100%{opacity:0}}
@keyframes lb-flash{0%,70%{opacity:0}86%{opacity:1}100%{opacity:1}}
@keyframes lb-out{0%,86%{opacity:1}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.lance2{display:none}}

/* ---------- ouverture « voiturette » : une voiturette crème et or remonte un fairway en zigzag jusqu'au green, puis TEEBOX ---------- */
.lance3{position:fixed;inset:0;z-index:1000;overflow:hidden;background:#f3efe7;animation:lv-out .6s ease-in 5.4s forwards}
.lv-stage{position:absolute;left:50%;top:50%;width:390px;height:844px;transform:translate(-50%,-50%) scale(var(--k,1))}
.lv-scene{position:absolute;left:0;right:0;top:110px;height:480px;overflow:hidden;animation:lv-in .5s ease both;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 16%,#000 84%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 16%,#000 84%,transparent 100%)}
.lv-world{position:absolute;left:0;top:0;width:390px;height:1800px;animation:lv-world 4.4s cubic-bezier(.45,.05,.55,.95) .3s both;will-change:transform}
.lv-world svg{display:block;width:390px;height:1800px;max-width:none}
.lv-cart{position:absolute;left:195px;top:240px;width:0;height:0;animation:lv-cart 4.4s cubic-bezier(.45,.05,.55,.95) .3s both;will-change:transform}
.lv-cart svg{position:absolute;left:-29px;top:-45px;width:58px;height:90px;max-width:none;overflow:visible;filter:drop-shadow(0 10px 7px rgba(10,30,15,.4));animation:lv-bump .28s ease-in-out .3s 16}
.lv-brand{position:absolute;left:24px;right:24px;top:600px;text-align:center}
.lv-brand b{display:block;font:700 46px/1 'Playfair Display',Georgia,serif;letter-spacing:.02em;color:var(--pal-barre);animation:lv-up .7s cubic-bezier(.2,.8,.2,1) 3.6s both}
.lv-brand b span{color:#b88d45}
.lv-brand p{margin:12px auto 0;max-width:290px;font:500 15.5px/1.5 'Plus Jakarta Sans',system-ui,sans-serif;color:#5f655f;animation:lv-up .7s cubic-bezier(.2,.8,.2,1) 4s both}
@keyframes lv-in{from{opacity:0}to{opacity:1}}
@keyframes lv-out{to{opacity:0;visibility:hidden}}
@keyframes lv-world{from{transform:translateY(-1320px)}to{transform:translateY(0)}}
@keyframes lv-cart{0%{transform:translateX(0) rotate(0)}10%{transform:translateX(-33px) rotate(-14deg)}19.7%{transform:translateX(-65px) rotate(0)}31%{transform:translateX(-2px) rotate(22deg)}42.4%{transform:translateX(60px) rotate(0)}54%{transform:translateX(-2px) rotate(-22deg)}65.2%{transform:translateX(-65px) rotate(0)}77%{transform:translateX(-5px) rotate(21deg)}87.9%{transform:translateX(55px) rotate(0)}95%{transform:translateX(25px) rotate(-12deg)}100%{transform:translateX(5px) rotate(0)}}
@keyframes lv-bump{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.5px)}}
@keyframes lv-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.lance3{display:none}}
