/* GÉNÉRÉ par scripts/build-onboarding-v3.mjs — ne pas éditer à la main.
   Source : docs/onboarding-v3/whv-onboarding-{iphone,tablette,pc}.html
   Seule retouche : les six logos base64 identiques deviennent --whv-logo. */
:root{--whv-logo:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAB7CAYAAAAxBs9FAAA5l0lEQVR42u19+bdc1ZXed+6tek8DYEaDGQwC22AwGGOMmY3txu22O3G6VyedZK38kj8rP2WtrJXETnfHHdOmHRswZtLAIAkxCQGSACFACND4Xg335Iezd93v7jrnDlX1niQ6tdZbeqpXw73nnL33t789Oe/99QDuB3AfgC8DcAByABnCw8m/hfyM5V9Pz8G81v7f0e8+8rmrAD4H8A6AVwC8DeBd59xp730OoG/eq7+PARTOOY+WD++9M9fnnXPee78BwK0A7gXwFflOXQNdD31vlvj4sVyXpzXS3x29j9egJ5+vz50EsBvALgCHAXwGYCSv0/XK5L7Hej9t1sDce7kIifemXt/0PvN+XmO79hndy8h7nwH4OoBvArgGwKUAzgewgdbfnjm73qg5k7zu/HpP53oFwH4AzwPY1wPwPQD/QYRkSV6YRw67vSBHv1cOXOTC+PciITAFgOMAXgfwJwC/997vdM4dIyEp6IB4Fo62B4Ven4X/ukI+/+sA/hOAvwWwWT4/M/ftatbFCnDdczEF4mnj3gPwDIAnADwN4F1at8nh8t53Ug78Wj6sXQWnSZjofapsx+bMqJLp6Z567/sAbgLwNwB+CuA6ABvl/ahRwkgoT0TOpSfBLMw1jem63gXwSwC/7AG4C8CdAM6TF+Z0EHzkgpoWzbX4uzefrb9vFK2xBcB3ATzivf+Vc+6I935JLn5kr0U1lXOuaLORtIGZLMzFAP4NgL8WK3qmHzeKFfsugBsA/ArAm2w9IgfurHhYhUXCAVI6bI1H8vwDAP4zgHsAXBsRjEU+Uudar+9mMRonegCuEI05FvM+kBflEXhUtNCSrkE4crIEzkCQPoBNYl6vBnAhgLe890/IQuYkJA6AIzOOGbSd/rtZNuYqMbEj+VFr2pPXjhNm2ycWu60isdffB3ABgG/LvwDwX5xzH4jl8wmBP9sePiIwmdyfl7MGsd5/Iwpqozw/lB8fgaa+peVghZzR2fFyDY6g1Ui+14uSvBHAPT0AHwu0+bIchFX6gJ4xPUXDxjfBCT04vQgOVBy+Kn/vycL9BYAPBZf3BAaOyNoBwJgxbosD44zg82bkxr9SPyGjNcg6bJBvaVVhzP1J2YMtAP49gFe894/I+mQEXeC9x9kiJLE9MMKRkV8y9t5fDODnAvGX5Z7GtPa58St0P7zxNVKKySrDvkFIGe3nSNZXBQYZgG0A9siTfZGiQUJy7eHq8gNzYXoY84iw6Hd+CcBfyuJlcogzEZKMFnOiSVseFPuaFSEHDhkrB/J3xmbDmg76PGuU0SZ5gVn/UeCwdTZdG4d60UIQ8WEqP977jIVF9qWC+eXvXwVwN4DrCZLx2ruEcsvMT07/9ugnp79lxnWIEVLq93wCYF8GYAeA54Qt6ZPjNDLM1YgOduoHLf6eGe3sDD7tk4boyeF4QKyJE+HVm1YntTPMKvfWOwCnAPxB1iIjAdHFHBlL2mUN7P+tkoi9f0mYm1yENwPwQwAPCeSKac+z7VERXllnvf+xc24gvt9dwlptjgi+VRp5hAhy5oBnNdeUJSyNIzh9ofxtD4CtGYD35WDsksN3sUhRYcwaIj6Ji0hxHpHaPPLjjF+yTHRuYW7kNgD/CsDlYgIn2lzYj2xGR60QIRwAeBbAkwJtlDVjS5JHaN+6n9xotTZrkhvfL6P1vhDAHbIWy+T8TvZI/JPOjNYChcElGMrM3Isqm5sBPGysxzhyxnJSnFnk/LnI70ic2YzOGcx5W5KfwwD+CGBnJhrqRQC/BXCAHGXFZBldWExKM7MwWeI5jiX0CCbx5/sItCuE8vtzAF+TjR3TjU7gmTX9LYVE6d4VsaS/A3BM1qAXuT4Y3OpaHBCXWI88Imyx16iyugPATwBcIOuQtTST0XXpAEnbfq5LHNCCoPFI4NWFwtJ9R6zHyMDY3KwzItYkpZCyxJrCwCz25XpitU+LsdgG4LB++fvCub9ATnJuHKUsYjFigcCU5PKjR4cuN7jeappCLvxmAPd6778svsiYnP15NroQ7dsDsBfA/5CAJWNZFxGOzGitNo+s5Y9dC2VYrgHwIwA3RJi4Mwml6u4VJMw92bseQlD2bqGzC3keNcqjTrnkDQKSRfbJ+r8bRIDfFiTxOoBBBqAn8YMDAjNek8O3wVC7zmh519EphZF8iwVzEky2HkP591LRnvfKa4a8QB2ddGA6EyB3zn0q1nSnKIq+CXT1DKPVS1iHLAE/20LRLOKzafznawAeBHAlXVdmaO91Ja4S+51JMDMT5dMjn/FiAD+Q+Nsm8nPtZ+TmXLDjnTUQQa7GB3GEYEYE8Qey988IzAowRSLJn8kftsrhWyL2xhsasqhZmKafLBE08pF4iz6vwnCHHI5L5TUDg8EbD0cLIfpYHPZdZO1s/IOd6qIF/d2WBreWw6ZVDMRJ/zmA71BglNcQZ0BIkICXTDo4AEMRlq8hZHBcRb4HGvxdRPYgq1HGSLyXz9xABGSD/PuGyMAbzrkRgFw1VSZPvIGQ2nCQaF9vbmBRWsfSeJb1cYafLsRRvQvA94VIOE3WBzNoUBZIiKIYAHgKwOPCblmtbvOs3IICh3Vxo8wwWt8FcL/EEKLrGfM71lFwmLbvyTkaO+eGYvkeFOZqA7Gj2QznpyngmrJ2TN2rL3sUIcVpO4DPRJBzjSVk3vsl59xJhCSt/ysmZiPhRpt05xJBGddAfxaJm4k5T3nk/TcB+AWAqwnb9mekeq1F1Hyvd2Wh9sn6LJvXFuY6s8h9p0x/GxyvCoHZPg6YbRIl8SDKLAgYiFqBnvpcnbNuf1TI9D3ye5YgXywpAXLMPYBV+Zw7hHD5KlHoSHwOathTJCx3TOFyWsuYrFZOrsRbohjfFMu8DCCrYF25gXeFydmDMv0DEQ4/JbGLpg/7Jih4kfgh35UM3ILoWjeDJbMCpj7ZywAeFcjVI4gzpveOMX/6TZOWtD6crsO3JYh6BcWCLOM4ga0UqJt9M+LQNHUGckIgavm+JkHfW+QAFpFo9iIIgpQfwtkQp0nA3xf/eyeA42I9HABv6VQ14zvlDR/SjQ4xHaJ3HbDjrAdkSU00mcSvAPgzWeiBONRLqM9CRiTyC7q/icBIbEUVxZsRa8MCMjR+WixQ2HUt7IFxdOh0c1VR3CbXy45un6+VrEbU/7KWoksQMAEnOX7hJSh4vgQ776Fg5zgBUWdRHna9s4hC1/MxJAuyKqjpj7LnoPNWWAFRi/KRmJvn5AOW6TBwDUMMQmQ1AaS5IrJkLTbLYv8QwLJzboxqzlSTcFisPDKWYMk5tyq07w4AR+R+lyKOc1MsZBarmkXiTpxloMzelQB+LHhe70MPpuP0DvGvZtdWVXjVZn9ZoUGu9Qei1PrGv6pbN9+AUFL5V1mCglfHXFNKDsk53+mcO0UKuWABqUAOgRi7JTbycSRg5RYAIWZxyEB8+bWqkbz3m8XyAd3SpFnwKrhWDsNRAP8s1pSj7px20ktY07b+R1tNCeNrrIji+ilCCkpfFIVds5S/uNZOuh6yoff+IiFXbkfIr+O6nhzT5Q9rGa9R5nMZwAlhrf4E4LDsOWdPTOUVqS+iyVo7ALxqJG5oHNWY1NcFDttIf4rxAqqZnrcjZLp+Vcz4yLI4icKgVK4PQyfV1M8JafGpgVnjGsKiiepO+SzeBDAtZNDnlmijrxcB+YZs8JCCn5MgrFLCTTAqAbfaForx65Yl7rEqFu5HROt6s36YEY76ljSzrU1RSL1X9naPsLh9Ch8AgMvMYfelP+Y8QkT5j/KvasphCwepzgTPwjQxzVoQnLgCIZHxJmIpRhYKmA2PLeQ4Euvoi8N+AiHD4CWhfTebxfY1nHsd5ExttGX6OIjYw3TE3Yui+AWAy0VR2FLeoo7ujfglbTKxfersMHQV/+hWlEV5MaapyUn3M1oL/v+YfNVlgc1bZV9PyJlREkQhN7KGC1Fu+EWUddEZ04gLYh2atIRajCW5Bi1oygTb/sR7fxtpdhtp7RLg4rp7Fay9AP4OoVZZryFWl+8aoNYsfhdbLIYAPWKIrhRG6xa53qGxOuiSyNjScvgEAtDvOS3XeIs45tfQAfSGtp6VxaqzwDElqEFBL0TUExLzA9HRPnYzUzfsvc9EG70qUOsQypD8OMFktYUYbc3mVDoIaUW+4Z+IBj2fKM+21xGzUJze33POHRXK93lzUH2DmZ+V1YsJ7NhYAj1gSqLcIlDraoELI1RTNhzHODoqMdcgFFOWVM7OJQB+hpBztRnV1KFUwmcXCB6zarE1ZGiViV/9FIAdzrljxseuyMXEB5GFqxxG0UbHxYLsEIixJDc5mtNhqhMYe7M5wbshHQ6tDblWTPhNUrvelAoTs1BjE/zT61ySdTiMkGWgPtkSphsBNFmtNgcAEfjRp1iMNyyiauXzRFE85L3fKFFrjiMVKV+jxi+ZCviSgKWCwnyGbhDmaguqBWA2N68wRMmsNHNqfQsKCh6T87wNwCG59yxCFIxjLJbFwLkIzetyOI4yv93xpmYNIlozaRdWk81uRijPvVw0aB2j5Ro0oP1OXcAnJTYyJkcZET9jXmbP5qJxVrXNfO6TsrpVDuQVsvFja+VJIBbJGLHADIW5uhKhldTNKLvleExX8C2CYYtlVXtDOWu867BAq1dFiWhQcIRIO6GMTS6VSBYmyHRYLMheosgqjMkMGLatFmVOXfN6nImKDsWK/BzAtxq+27UQRG5FtErC9iZCjtbhhEJJpZnMY2ULCmxlRjnlFNQaiob8NkIi4IVkcTNCBGtJyzu6ru8jBHMvM0ggT6x1CjbVnZtxjcKzsFQVxmvCTH5grMfQWL9MWawKm0HNDyZ14yJAr0tMYB/d5MCwWraOGwmKM6WxYxAsVpXmDfQayEG5CcAD3vtrDeNmqVIg3ikj9uNQTdd4DcDvRUg20+HMI5R0UwloGyeYPyOWA8Yb7IVS/QVCcVlBh6hPfkjbbOzKtZieYjbOUgAYyWsuR4jyf4eCq6m4zKx+W12zuML4bpqS9Kr4Hm9ptq6+PuWbZTFcaiVYnvtUTNOOCKNlc5IWGfSx5tN+R04BxA0oa7dzCZzFip66WLaJJpeD8SGAf0TIfOYa/iKBh+eBDzZFwgoNp/3oGmwWaPMt7/1GtKtfb7R4nLwYUSI9hADz2Hu/SVir7yPUfXAti6th++Y9F3Z92CpofON58T0+kxgR7x3o3iZ7GStndM65wrBBGl3fJ19wEGUHiIycdpui7RpiBG1gV1PbUjXpKqTfRki/uMz4K7Gs2Dp/xEKtQtbhtHDnLwhpsQHVdkkZppvi+ZZkRBffjZ/rGRbmUjmgN5vgLqSAKWsQ3qnrIsWZMdqgmhRd1+vEF/wmx6YQL9W2/sss8bGYgDAjqd9zRKjdfXI9WgznpbvmBG7RPflYHCSmKXSBjiGkXTwuv2cU0c3RXJ9dLMCyuIiG5u/aiNDY4AHv/aV0fX3D/sSowaZuJY7iQ09TfGiJ1iBLQMy2PL7vqExi8ZKNwmg9LNR3jCXq5B9SXlcFaokm1qDgeQKrvicUL1uPDPF09kWkwFhrPyYhWELICvmTBAY/rlGUrhZiGRzmzAdk8re9ArX2N1BuiygaSn1WKhFND/41AP4KwDcEaxYECYs5HOmCkv62AfgNQiVmLNI/T6CwTYwiFuXOiUrdglAvcgNl+zIJ0xnaqJAYWjiXNfZCkPwIoSsmByx7SDfbc3Oei5hiGVPwr4dQTv4YgL0CuzMTH4GNAeqaRn0Qrh0wxTa5c+44QpO1bSKZmqO1gmp0ORa4ydpoqwTlmQr82djDSLDv/QDuEhzOFN6YaL885SuYZmc+Qn8fkkV/DWV+lKYzFB19EN9SOOpq/ZcoNqNa+xvik13JiiGSZ9V8gSU04ybVrAw2I6T9PICQ2j4g8qKXsMRdlEedgmVlPiTh0ArRVxHqe44TlBoxiSP7PbaOelZjzu3FM3/9tmjP3YTxhy2p06YD0tSlO2ZJsgglehko0xUh9aFvIFa0lT4vUoLd0P+/I8zeAVQLtnKCO20h1awWNsb4qZBcjdBP7EYSdpsilGQZTeR9KtNCrKkXC7VF/L9r6ABmFKj0NTRu1+wKn1Ca2u93lazpLnEJ9srftTp0pNnPiYRWH/NB7IusFu+RFdkquO4TitiOItFSYPbCoTaBNIttOdP2+whd2y8jGMAN4WbxiTwxWicQUlC2mc+2zS4WGZBroj0zgjfL4o/d7b3/Mmn8zrlPVmmYONQFCAmTW1AW13GD6PV4WLYuR8gCeQrAc5RS0sN02k5SeVkfpJBFrPgf1KwtR5l68RnKGRYnEeqktX+Ti/gws7I4DvUVbPZ1PdKgF4qQ3Om9XxbWydNr7EFJ5ilFnler+aqsw/uknQcmHuRr8HKd1Wzjw8SaO/BabVTo473X4jIfgacz1fPLupwn7NWlRDfb2pSUzwjEy5Z9R+HgYPJGeX4/Qm+BQ4bWHUcE3v7uUKNFJiaWsCfnyfckTL8LIZ/+EOLZvXWlkXVOvG8hCK6G9mPtcD1Ca/3bxIoMEG+a7dsO3+F7k6S8PyG0CjqNatMEN6M16BpU5Kg7B0LVIb1TWK2r6EDWteqM1p9TIDlmgYpIsG6EeAf2YgZF2bSOHtVOoAflbD4vlqSSk6bnuilxM0sdBCNJPCZgJA67ZkVul5jASTHpk/aSxnrM3TTAOPtZTeCID4zWQt8rTR7YSWcL1/XauCjpDQCPIEyGQiQwudaPWOFWRntwIUJG7f3e+4uo8nCeMmh+fI6QafERwW2H6RSctbhvb84a+x6PATgoZzk3yiFVL5SmeWMZnrKYdsaeQyjx9ESh7SKIM6iBGbNqU1/jmNp29rZQ6FLRorfK5nF5bl7je8V8M09QNEeoiddGF9tEUXDfpTpKclEHh3Ozeoa0UEh1vTjst5h5Ha3YrMiZGImC6IuAvIiQq7ZCjFolDcWcI2Y7Z6kH4esdUTwqR8h22IWQUjKkBucML4tI4z2bj+jr4iBWsuym5qI9NXj4PLEHjjS170jzerRjvXyN5eDqsKEIxb0IEd7zZYNVOGIKIHUwLAzjRT0M4J9Ek2YGdnBH+lgEeWw2r60/khovkZmDqCko90oQ7wLyE/pm3WAHbnJvLSMkCre93P9ugTZKe8MIgUN89IXNWo4xXTHlMjIWZBlll5KnEOrM+wbVgOluuZ+Cwxp6r8453yaRrg77cl/f7Sjn6G1ANYFu0enVbbE5Fz5p7fa1Jksga6tBI/8vzMb8CSFTdCXigLY5/ItiuayiUAr+cnHYb0dZc58ZgW6qPpwSUFmLgUDt7WRFXY0f6lrsaSrTgX/nRhYQf/gpALskLYj7K0fPTV0RWTbjBoCsSF8gxosSE/iILnZsMHsT5GiKg7R58Cy6wiyiRpe/IoyWUqE9gU5jExQD5aTl+hwFzHjGCMS0Py1wa0iOIQ8FYovF7TljY+m6KIlYTzBukK0Q7B6UdTMFBfMKITGmBt+Y8XYFTY+aQC157265/8MoS6QtaZIq1ebnU8OG+CxlBOed7OMxEdKdCAmJMUXou5ytrv1QbVSZs2n3iwbdZyKZIzTnO63Vo4/qvPPLBYffTr5V1qCp6gSXNaL6PVtFUZzAdGoLK4ksYmHaOs51LKBHfBaJRravEKh1vVRfTvwX7UfLWjVFh9L/C4QG6H2Jj+0S6vs04nlvPrF+QDqwXHe/Su3mcgYfl+/nBuyjWZXurIXyFSHx3vfEnL0uJvZjlBOjVjHdCcWvg7Bwq3zVdhsR+jM9JHNGxkwmsMaMULoVnGq+a0Ra7KCQFm+ZdRonYFWsq4qbY09iEJlpep15+GP5d4zq7Me8DcVt/p+TFd2P0AnnQOLQFy1o3jZkzoiuW7OpX0LZERSoTrIdd7UelUPRoi45JSBAiLA7AB9IPGArSTaP1001iZgVVrgG2pP9EO2btVkOx19IgGs1wv5M+R4JobHWdIkSOn8nwtKjAJWLOKRZDavVtdGDvf6CrJumWKyIJf1bCaI6iWlZSx8d1mn9E4FpA/FFtJ3O71BmOmfmkNr7stdd1ChLm3OlSm+IkGv1FIB35Jr6xg8qahz+JGu3iFYr3CFvRaR4G0JKuOJvO8tjvWIDMaewQFl1dw0nY7axqAllMrESckiOAfg/sg45qv2WvDkINqg4a5fBptSe3GD2rwujdbWwkeOUQjT36xNkiEc5uu8tlHVDIKs0jvgDvsXeIWKNeKjRSZTp7McFOmpzkYG5hjWHWCkeXy/giAjJbjkQmyjIWDRgy641FDEty5aNKc+egVrfA/CgzMrjmm+fonYj445tivVANDUEiz9FwTNHdG+dtZg3by3VxI2pVoW83xVm73xUM7HtrPPoWkRmovMcwu1y/ydRP+q7QP3YiNgZ4V7MHuXogrcJXnsAQ8rByxYtIE0+AUfJJ3BBLuhlMbPvoZrU1jZA1vT3OjhoE9G4jQuzaJcD+LcA7hWTPLLcfILujKXawwa8BLZsQ0h3OI6yqGoYgQs2DtJUcJUalGkngSHi5+Rkzb4tpIVaUqXle977HsfAYlDcQM4RyoFDPVEQ/0y+SJagvS37Fqv18WadRkTAHEDoEaC0rubIrSAklbJibG2Z9d7mhVhWWHpyqA4jJPDtQdmWpz+HvzELzRtr38l4uE8O+8WIT9JKwak6n0cjzMsIKSh/L45rZujvlPVc1J74CITj2Xxe4lW3IcxauZASGTNMN6to830Dee+yHNadgiY+p/u3c+fbKERgutWpQveXhBTRHlepeTbjWQ/TPBjf3lxPHNUhymmhb8pFL2M6y7NNpmtXJz3DdCMwdsLZmmwWqHUXQQNENDhrlRhErPSjRZmCckxw8TNC+25EmQ4+RLvOHrMECH0iTsKDMPXAXYxQmnsb+SJDJMaixdpERfpsZdTg4jGEAjtPMHcYQRRt4mNcHeokKPgsQvPpVVTn2DOsK+bRtrNqptRNqdZVNuMJYrQGNVRbHU8+K3GQahrBtOutAP61BM4qKeOqUSkwVmepuBE4H1IdobCdNDhfQ4F4dq3roKQc4gNQXcSSMlw5JUzen0kAcRPFNipKJZFmYy2MWhFVPicE/mxFGV2PlQDEanpiQq8weANCucVTonw+pnT2kVHEtsy4DQs6UQbzmnNuFu2IpcnNUFDtJLFE2js1ys1FDnFXAWkSLi7PvUQOx7eE/ZiwPtz9g9K8myYrqYUaUiDuWZR1M3nCKV0UrEoRF7G9U0j0ZYRs31sk4FegeQa8T8DsMUFY75x7X3yx18m6ZjWEj60jQiL4+Z74d2+Q1dAkRPZD54qvZbGhjdac1uSqxG5qksgotRIvI0Q3P0E5E3tgtFkXRqZuUKhLaCmrMTKzCVchpMTfQE5gztrTCBfjYTvW2pMGWxJL9DFCjtZulKW/qR5XdVDTN0CQWETaRXwc29e3EEv6U5RFT6zIUk6sT4yWmEBN0eyaev5JjS+W2mcYv0ODgi8jpJV8jjJiPkXOcPpQav1q091nmE9nYUaPcKt9XiOrT8q/jliGIR2ogWHEPNIj1Wbtko4E3i8Qph49LL6I475IpDh69Po2FX4TAZTNeRlhhMKHKPuJFTX+w1qWquZyDUsoMx2uRehIsoWuXTMlsg7ng1NAluXnbdL2hbGiWYSgyCJwcJUERKefHSJrMUEciYKumdZzHojlI+aVNZJ2QTkhbMZ2hO6MOgNugOkGc1O9Uedkb9rcv3aJvAkhR+lqWWAtDKtE2CNtkeoEk4dqHpFD8hrFXDLEywLW8mG7xjtyfG8EcJ80nmZfrtfirMRGWUPg9lDu+2mU1adZhPb2DSRQLn7TdoFtxykhEajWeEzOKPlVaycgCQ1ik++8YUE0ePiemNgd8vx5tDiZcVxRE1iahWVDCwui2u5OsSQXkm/FYwdisRHfhpGTjTsocPNNlI24CzT3Kp7nkaojmbBtJAwXIMww/z7K9BhlJ7ME0khNEJvMApE1Oyb3/gLKTGegmmHhjaPOrVUVnr+JkMZyQPzcLBJLmYqH1VHVi0x3R4KWA6a7bTP2G4jEPy7sQ91cuti8w5hzPE9PJRdhR8ZiRf4awBZqVMGpNKkx041CIlj8JIBfi7IA+SK9SCBtLSxmrI2T7tVxuY67EHqKXSxrMLJrFimki0W/mWLdKGfgeWG0jmK6wYbtJVYYv2JJrPDjZD16HF/jQieun+8IERcGsSx1aINMdtDlh+SorgpVB6IFPaaTy9ajZYx+36poqTsRUlAupo3rR5zetgeXnXnnnNuHkDd0iPA4M3brdc+ZiZGoMjhfGK27ZBDPCOkxA3UCyPevneU/l8DeK0RW9DBdEmCpckUiBwWmvSXCoBBxpP11W1i4xQhILOemhRWxzpXtGPKWxEb2o2zNshKh9MbGD2lKu5gHelmB/pLERX5I69NDPCU9lQfmE1pQX/+qaMKjoiiGEZ/Mr6FwWE2/TArLiyX9S3HcYTR82wPIFljTV3Te45OiMJmI8ZieQqXxsyWxvnsQ2oeucAqJaaVal4Izn4C0nGE3pSW56s6au9KF8Q4hce9xcdoV9+eJQ9U6oIPmSUV1fbU4DUWH5dwpAnIR9fblpnBtxqxZ+ll9mJ7EhX4pCoNTMGJjJNBxLbq8lhWZavIVABdJbOhWad3KyY5t/BuLJLgF6XvCQO0jgiSPKBLuxebF8jwO4F3DeNrRBbGirpljIYvI+7GO1dgW/avwCJuxFyH6+RbKJl82tWG9uvFZyKHCcJ4Iyd2SU3WaNNm8zFouJco7xNk8RQ77WldY1gkzz1lxCI3gHgZwEx0yZ5RK0z3zWDYgdMJRRmsryjZJnEDpTdhAOyQ+B2Crc+4Y0bgjIQFS2catu7aspYBwFd6IhCMj9mbi3Mlhe0YcVR0KyiY8X9Dm+4YDEXsdO8pfQ2g49w3i2q2jnoR73NOW3u8RakacQIanxHEtiMmb1wnvGifiunXV5qsIqSIPiz+2KdIip27eOxMfXLveE7Lic9n/7XIeeADQUL5/RGfjNWG/3idyIzPwqo59Ta5LE1rK2r6wwURXgknKO9NnFhQPgNzwkwgViJlxEnmUwKz1IXVNsy30iVHXA4QkvgdRJvFpRWKG9GyS6AaYJg+eYgBPIuQqnTaM0iwEhZtRcTgDc1VANHh4N8IIhR6mWxelFI43DCEH/LTjzYvicH9ITJ6+nyf0fiRr9BKAFYpLFVYZRWpULLpZXwsS68AYKaKZ2kRJhX5ZzOwxgTTaOmYR47m6PoqIL+AQxgb8AKECkduWdk1Nt8mD2oDuA1mDt1GNMK81oxUbGackRGZiULcjtC29mKYHW7o4VQzFXWFU8fSE0Tom1vMlsaZcP+7IJ3pdLO1++awJNdy2VWxHv7oqIE1vtvlYscZy0mlwTKPbYBgwTWQckdl7D6Fd5ysoi180E7NAuyZpKcq2bcePmCblscA5QvrFTwFspLY4QLUro08xJmbeiovg+X0CNz5EdcjPuIY6ZSo8lt5fN1YODVofouWdQOAbEDrk35SId1nr6Og+QV0NmaVStLFPrANXAgJlWcAhgWFvO+cGxFxFIXTsLDeNsmiKj3SyIF1ztkyXusIcrOMS8NlBGkTztDJj9oH62eZd/RJbwbZEf7eQbwtCCsp1ArV4vl2lqpJxuml2MNGyxLaMqSPjb4T6RURIUwG0Lr5XDIJmEYreYboTS18s6EPe++tQ7eXlyNeoCCo50oVhKRU+8Wi0bYIkNsiPDmXaLX//gNZmrUZLrJmT3kZwLG2rmuKwmM8XUBb9Nw2eWSsmJ6ah9SB9S2DGpSj7+mZon64+GY5q14H6+mqEmRM9U8U+XcqXm2hxbxQXwyWdwX6eWNEHhZovIgIVs2RIQDlOUnxHkARnWawIsngUwEvOuVM0+m69ctYqJg2LEpRU23z5d+y911LPvpjNZ8WM34hQJ+5Rtu7sJ/wRH8H38+LxGJbWzd4C4N8B2O2c+9B7rwwLVyhCIEBl/oQ4j2NeHyoNzeWzTiHUjNyJ0JKoF7kmF/FjbEFUl3WIQTI73139hiUAd0hsaJtQ9asRetobIfERkoLXXDuPPC57fhShkcQhhFHb/wzgI4FpsVjJuSUgbRwhSQkYy+Hoi/ncKnGRy0RDDQjKLEJrNF0X8/rsA6i2W0aol7jPe/+K0JQjgmI+4pjCEhYmf6mSCChQ8/ciJJdEFMJUrfgcDJeP0No+wcytyOuWRUjuB3DUOcdVfBzDcIjPW0n5SN45d0IU5XFZgyNC4nxkEIcNKHdW4GcEYs1wkRNKkVJQnhDNsQFl5eF6NHmIze+20V2d1PQTcdpzOji+zkmvOcyVYT5SVLVVKHDO0RqhvoBqEfByjGoUvzD+mGr86wD8DMCNso8jVIueHB16nhgbqxzUOMZYBG0FwHbn3P90zv3BOfchyjHOU5TtrKzUugvIDOkpsfFshwH8VrC4I7M9TDhkbcpAu6QYFKgW3bCznBGk+R5CR8YvUY1BpTw1Yj0K0wQ6ViuvzvtB0aDaLslW9Y2N4mAWyy3gLMQ6HC6RpbwAMtIOwCXUVdERE+mMcGSGEubYiNbbqELKvPdL+mOcciYSMEeRX6dzu+4WxDAkYymqGgmL8wJCURUX4I+xtikYsUo+DpqxptSakful4ZyWDvfrFEFNTMiZg3hEGK2XCH7lmC5Om4Izc+yDN8JhJ3jlxC56hObXDwO4x3u/2QwGlbM7Obw+wsLlETZKWTFFD/qj94oE1Dy7LMg8ARfjp7Bm7FGtxA5xAgcCaQrE65bbOJ9d/m4Ph3UG2cJchdDX9mbJKwJqplRFAqexDAEtXFL25jmEBuDcT2wcYbGyGQTEJz6HmbteROgLIk/uFlbrGoKL0T0ymbYckB1L7GxsYiQaxeeYGMjPqSifNpZkHmuT2bFrbWrUZ4BVqcAZN0YYSlDoUZQFNW2qCtvMYq8TsEnwiqwF5yjx3IohQr3EQwjN1nq0mVxQlNOYNkQSN4Hpdjdcl/E8QhrKccTb+cSc3TZ1D3YqV27W2Zb/ckqHdupfQUjDuRMh2/cCsiJ1Q2m4ScQgMqNcfSAeeOMMLCsa6O8poZgHhp0piBXbMO2CokNB36QgFde5r6UldZGDFuP3IQfkR+KTaMXkLJaULZNSx8viiz0qkAsJ6AekazS6WFmmiuvGpNk5f18X0uIGc8Bjmb5TviFl23LBnY2vxPZoXTOe111AOD6Aaqc8NekHEeZLvI+ywcNoDgFsQ/HmRou7BOfOz9+DUJ57UaRRQFEzawQoc9YYQk4GwTjnPhFGaxfK/KUc062GkrMVO/gfTO3mCYjJKSjaducihDy128UXqUAg7rpomiZkqJb7WgEa0efYQU3ZWgpHDB63GQO9lsLCDqc2avtIGK0XjIm1i2dnbbSe/RCBOzGTbRsR5KimTlwO4D6ESU22xWVd07VYTlisWOwgwgiF11Df52oW1i52LTFBsbR0Zhz2qwB8B8AWGaJU8WlkXfLEPPLClAHo/cdmlRRYcICwRTPuhXRWXFRMRBekRx0Zt4kVUVw6QDV1ug3tO4vjGvvcmIAAoWbkZwCuokzXLCJgbR/K7G0UrP8YQoR9gOl0+EXEP7q8JjPwaSD78qD8bDb33UsoCS6RcCYtvTA/TUrszECsRTg3Lc1YZvCrWpEVclRXUI2up5ibeeq4Xcf362svQch0vYs/p6mIpwYGclAyQygv/RPK5s99jiEk7mHWktymMuKeoX5XZN9uRUiPuTJhhax1n5qNLoilwFn4WBcLYsxZXW4VD5zciRBd/6QF780dVDAnTk2lxjtzjZrBeiOAe73316ifYJqZdfk+1ZIDlNHorQI5P8V0ygUSFqVN+9KUtXCJH5C/tESsXgbgGwDukNjQ2FDzBQVIGcpE68cNvK/NpJiHTT1XWKwi8nsmh+MTsSIvSIxkA+Ffi59nnv8wB+Ol0HAZIYnvJwijH9iJbpo5jkhMYjJnQ3LVtNncAZQBNduvar0YR+uX6RpcBeDnAG40ca46i7XWKUSL2ew6CZwXZqWgWqLp2GTmNsoWMQcRUqF3o5yaOzTahZ3ilLPelMs0K03Kk5p+AeDqmEaOzNFoE6voi0+mVXXPIBRVcepHilZdE07FWE/NdtAuKA8BuDMSXc9iSiI1zi3lMM/DRrVhVWe2IGvgj3jjoFlt5GnxjwkG3050J/P2tqpujOaZ3PMcEP4MpaV1Su5tAH7svb8c01F4JBqaNQkgD6L5O7GoOcpUe014HNcQDm0GFTVVGtp11GvokaBehpCnpWMkCuO7FDVrgQY2daGWpgs0O5MQy0UizHZalRdH9SmUvbQ2EhUYKzVd68zf2OEeIxRT/RWA2yKR5a7CyTlImnKjpMUhctjXtboO1eIqnkGvgdK7xGG/hKDWhEZu2fj77HTSY7Xn8zpBNTXCqdLX3PgjOaWg/IPQvjwmzPLkbdJOUgRBqglaygdRzamTszbIAblL2uTYIZVtoBU769ywri+Vh1tFWZwga5qKMLdtHDdLFrZNPlQr9nWBWjfKIB4uGV7EyPFWs827Wou6NKt1sSA1F2kX3Qb/nCQyvo8QE+BaCaA673DUwOb4mu9s2pCUQPeMsFyAEGG/R2IZI0xH6uv6SbFfBpQJe7ppOjn2CNINLYB2TRtS15NitGxNhq5Bn9Y/Q2ju8ABCANWOw+jFFM8imKiUYMz7PWeqYArGh7CF/Xx9OhLsLWFz3kbZ9WIV1UIfP4d26vI3TrT0hmq+A2G08iUmk7XLWrOGHpA1PS6s3msoi60yrF9+UqqSr0cCfSlCOvy3hGSYqiRcr2Knc5XmnYJBkcQ91lqa1HYCYQDNkygTGXlarB0E6dfwkFhtysNgvoJQlnqLXHfbNkYWYqX26hDKGSPKaLWhTGMWtAskq7O8CiNPi/K6XX4uEwQwFRlfy2D0uS4gbR01xuIKY94QHP4uaXHbaGyM+qbPdVjd1/gksToK/btmuq7K8zegjAvwoNO6w2r9tMJQyU7Yoc8B/JOsA6/BKuIjtttCxqa9YH/CfobtkH8+QqukewGcTxajEj1HfCBRZyp2LVwAFeAzls3LB6SmXqLSUkYc1RcQIuyfo8z/GUac9Fms2iyv5xQMZXR0tPJ9NOm29XfQethu50sIQVRtAH4A1Y6MBdLTdxeRZcCfU0SsiNbHjFF2ZLQpKK6BzTwbHpPrzHD2PmL9miBW5DdyOBSDrxAm7zWwNa7BwW26Ju5lW6CaHr5EFm0LQgsbTUEZtXB8K03cRJnkqHZP0SDqSwj16zrltZ+AqIvIgnUJf4ctqZIWWhV4sQjJDd77DSYdXpWlZvQ2CknKwV50kNHuRXaWSW0MCkwOkhRVnRIr8gJCxV0WgVeu4eA3JealcpFgYF8WoZj1/xuE0bkNwCahq9vGRLhLI/fMVQjVFx/kUVEUMQbQEh+xtjt+Bq3qY8KM6ZaoQEjmvE6EBUhn5La+Dju2fNFs2Nngg3R9cF6P4viPxVnfLcKxGdXYAWY4AG0PCRfxZAQBexGYc5lYkOUucM70ky2MgBTCDp0UK6LTg1MdGblibyFaFdPJpUA19aVH8PMiAOdxAqf6HQ1FZf8ynfRIRm8TtVqxCvL+gTipWivRJ+HwLbRgW+Ymdl02/qEEQY7peo1JZm5k3WMwKwUfnFEU+vzHwuztxHSg1Ta2tuSHn1FB2PZAdc5/IczWaiRwek7QvWfKgsSYpBT1abW3vvYAwoyJ91AWFKVMuJvzOmOa076OoVBGlu5dAKe7OKKmE0oPZSGZfrdmEY8QIutPI2Q8M5OUuu9540U+At148BHv0XGEhNOjEQs8sZbzTKFtu551n59q8HDGKwrncNodjfJ6ViDGZpTN5rBAIUFCGPggcGdCbdUzRAhq7hUSIZ/nvsmS6PcvIQQPPxJGayfKmX9tRkXMuw8xloxHZq8iZCHvdc4d5wYNDRkVZ68F6RK8WcNATyyzlAuimNF6GyH14l2UGa6F0WRt+tm6BqsRm1YUG7SpwjFGSI95WTQoj5KOad86KlzZH4ZwE5pV9mAngP8t38WsV6xVTuNUrMRaWGo7N8SFBm214fgrCHT8QUOHx5qbj9eqonDWM6p7MFPJ7QIFo0vVGwuKl0YAxxGazb0sWrpPdCcf/LqhOU0wxNcwN/b1OlL5BEK0+znn3Cqms4ybku4yhR2RgTv6fvVtNpEv8hLKsoAs4pj7OfbF1/gy3B1Rred2gX+fpybQzs2YmABfl95ubenkcwViaa33WKAV94b6AKFmZI9sjiYJLiK1OkUR58Ya8MwLvaZHAeyRBL0c6ZqLWjKBBqLaYUITyle079sICZ1voDoPsliDvbYKQ69N5w8eEMX1FsGuyti3tfY7/iXRvNpKv7AskGjYVdFUT5L2HEesiF+QgLD25IbXym4dF8izR2YxZhEBcRHLY5t6TzVz026EBKMKAKuS77QqAvIk+TyOhHfexEYXURJ6frjQTadG7ZKYlSPWr9Bm3ljH/rpfaAFJlGZOfBL5/36hffcTDu5FnMiUBuwiHLFAIae17wHwawDvi2OaY/5CLo9qtJmDcnq/uWhszVUbY7oJ3qzDhiwxwYLNdTFOfK/HAezjceCYTk5d75nwM/nRvZhjYmqo0eBEdj7wkc/1bW4G5XTYwrAiY+/9a2JJLkEI0I3p8ADxKLDrKCB82BhmqSCckmv4g/ghywaCAN3nfMRSZArjX2VqYWTAzzMI0etLUZ0LyDGMJn/KWg5uC6r3o/UqPSFJVhCCty855z6nkc2w7BVZQzRMRu7kVLf1kyPxuGiw8kzXg7R5fcVZJQHLjJl/R3D/uyhjBUNMNzWwjZtT+NolHHbbUNmJozxEKIt9TmhntjaLGOlcV2vOArgXoU3QOxHI5hNwqc339iIsmpY+axugF4UseM+8p/I965EiMqMvdU76ICkt4Ql6aI7Wi8LknCJHNVaMtYgGDpxpnCO0TP1HcU45BT6lkRf50GYIy7IOO0STn0B1hJmdpOU63nNmBC4j5lCt5zMATtLQzXP60ak37xmSdDvfT6+Ds0P78vePELj3nXJoldEaYDq4hxqhcWju/KEwa0k+/wUAf3DOad18H+l68Xnxt32/WrIN1AXlWYShRDpjMU8wZW2zmJk0KMg662Ti1xHaxb6L6Z7KUB/qXGCuWlsQO4R9PZzxmoYRLuG7cH7UACHt4jGEHCBuJzRGfUOGptY3MadV4dvrCEVMbxO0iE1XilYLNqxtKiXeMnwK5frE7GmDB9vszgYMmwQjZgG5Fewhuf8XJSXmrGaougjpuZhqYm+Sp1Vlgn+fFQxeoJrhOq/2jlUirpJQrnjvl8kxXpfuh7QWA4R6kZ7c/7OG0WorGE1s1tjQ168Kc3UowtydFYzVmtG8i4JVdea16fMTXVEmQzJJe2qb/TcEan2Mat0242egXVeTmEPnUBZHvYoQe9hPvseINHUrerXFOtdZNdXYmofWFwiq49yOoJpx7GZUFp7ubRNCYPADgVZvShCX01DWRDhmhWqzZIisW/PqWYWPb4qmEiEytCZD6A6vXPwjKGdrcAVggfoiKtdCUHTtjiDM8NhB3D5n3bZuIsH3WbMutb6MCMWQ1vwAQq7am6hmAIyNRW2jIOzzqiCeQxh4dJReYzvNLExIFuHDdOn5dk6xWHZDifJlOjN3zml3+BeI0ephuphq1o1TmLFXDuB7Aq2A9W8qPbkXml0+QmikvSKM1i6U1ZdWWXT5Dm4nOhIBfEyYwyHFPQpjsT3OoW6K5zTNm2h4zKZfZ4x8hhBVfhFlCWwswQ411qTOMd8vuPsNgRZcD+8T1ir6vTNAzxRxwIHMvqzDEfFFdqFsl+Q6CAgXbClztSzw9QkA25xzn6JKbdd91sIswVqhnXXvrDiPX8P1xzEYQgFEHjav8Y9nEIJmJ80m1/XNbZpDonlQTyOkmB+j3k9W07aZ0ju35QBFgU2PMYVBT4ilO4bpeIavO8jGOqt1zMV6/BbAXtmTHtG/KQp51l7F/9+CzCtw5hBnAjE+MIxWZrStS2j6WOcTFY4xQo2DTn5SjWpHKHP6hMcajg8j4eDv0OKpnqzDM+KLcNNvIB7MtI0oxiirNjPxN7YLrat9gmNs4Tn/6K23Y85/68KOtXytQq0+OaQHRYNegdD1MEe1kGhMa+Ew3aGE/90gkEXrwC1lylZsInQEC6P3UzdIcsa1sLlWEEj4R4Q+VV9FtZiMs3EryaCoJiRuRlnm+3sAR3RQJ6opPE1O/lqfg+j6pt4be62mN30hLEjEKjqEYZgaVX4EoajKduFIDau3qewMmQ4KXHkD1SbTU+1F1yvrQKBnbnwyhZNeIOAhhFy111FNQR9G/DIe1DmgNcoR+nDpzJYVWrsB0czrMYpiXeD/F1FAQAdbc7ReEjbnGN33GPF+Vh7VHlucb6W1Hi9K2x3ubD7VoX0di4ImCYHURqegw78kzN5uWYePjXUYG6EaE/TSArVNwghuBbBVauGB6jAfnrx1zjJXa+qDtAnizBp8bPps+cwROYo9sSInETJtdVJVnw4GHwrr/Op3LctBe1Hg2ofkmNqZfYWBN2suJNShEIin0/TEipwQX+RZhFSczAjJmNhAjXUUBL9eA/C/xPcCqlnRHPdJjar285ypectpu7yvtiZ9nouPCcIippHyZzcJCU148uSP7EDIF/qULMgqwQLuTDIyfkouQvaYULtDlLUeMaecHftky8xFKA2z8RoP4RKBMTFaDiHqrS1LrXA7ep2ugR5+jS09Lcxdj2DY0DB2TTUmCz/Qi/KPv5AsVgMF6gRqfYAQ9X0TZZcRLpd1EZiljQhWxed4Tj5HkyOHMLUippBrPSe52g6Flp7VSVWfijVVRovzptTXUAt7CuXw1FfEOf+AegarDzNCNQZzTpTTnpUCsh6OKzErQDXKfEiswH6EVPiNZCU4h4gZmWWEBMjfy6ECadjJuAETh3GxVvqxqrfY8zM6ltyMraB7BqabSvBoaQ5wjknoHVmeUwB+JwIyMHPgY62VkikmMVRxNqfBZ7OYnTPFLszgtNqeVUcEZm1DWSehQ26GtKFD43u8IszVYZldzocuZrkKbd2zKP+rpWLItVDJzOSY3JOkxByV+9nDvhJd/4rcn/Y81nLmA6gWYI2NxVVlMYr1uTpbWo12uY4vMsSydeCZdBl5WazIW7LR56GsiluSn2VhbTIRjt8BeEXqLLj0NJryIYdjXWFGi04h6lNtEL9hj/gTH8g9bSAqNxPrukms5yMAXhUryf1+Czps6wkn18+CzGvezpRWiF03O6uymQVhcCeO5VCYnL8XujMnwcjNYTkE4JcIGbsn5f0TCpgqG0Gau+ga+OsIpVIO/wT2aUyE0k6skPSExXoSIeh5CtX6/o2iJAYIwcVfIyRk5kTpjsjnsiPzemw9Z7GaTRngs6xrl/fp9/fWQautqRBFFtIZFomfU8dyP4Bfyd/vQ4iyb0Q5iGYFIT3lMQD/4Jx7T4SjR2wXpLtjRXPa6VDrAV0Fx3N2c5FACuywQ6DTf5PnHgBwNQmPkhr/HcDrzrmRwDMHYKTfyQTFPIzV2aKI7X718MV7VFIFZBcZXytl+SqA/yrU5TcR5uptFkE5ihBcfFZwd8Xx5DT7SK+q2Px1rDX84HZKkdZKdgBQLpDzhPd+K0IA9B2ECb3LQgG/Io78HufckCxCEaG0K2k0WMO8s/V+/D+yWlJ3wQGQ4wAAAABJRU5ErkJggg==)}
/* ===== commun aux trois démos (CSS 1 → 993) ===== */

:root{--bg:#F4F4F2;--ink:#111;--mut:#86867F;--line:#E4E4E0;--g:#ECF3E0;--gi:#1E330C;box-sizing:border-box}
*{box-sizing:inherit}html,body{margin:0;height:100%;overflow:hidden;font-family:Inter,-apple-system,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;color:#000}
#vp{position:fixed;inset:0;background:#EDEDEA;user-select:none;-webkit-user-select:none;touch-action:none;overflow:hidden}
#vp.pan{cursor:grabbing}
#world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
svg#edges{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
.nd{position:absolute;width:270px;cursor:pointer}
.nd.sel .ph{box-shadow:0 0 0 4px #000,0 20px 40px rgba(0,0,0,.18)}
.elab{position:absolute;width:180px;background:#000;color:#fff;font-size:13px;font-weight:700;line-height:1.3;border-radius:10px;padding:7px 10px;pointer-events:none}
.lane{position:absolute;white-space:nowrap;pointer-events:none}
.lane b{display:block;font-size:40px;font-weight:800;letter-spacing:-.035em;line-height:1}
.lane span{display:block;font-size:18px;font-weight:600;color:#5F5F5A;margin-top:8px}
/* ===== iPhone ===== */
.ph{width:270px;height:560px;border-radius:40px;background:var(--bg);box-shadow:0 0 0 8px #0B0B0B,0 18px 40px rgba(0,0,0,.16);overflow:hidden;position:relative;display:flex;flex-direction:column;font-size:13px;color:var(--ink)}
.ph.dark{background:#000;color:#fff}
.sb{height:34px;flex:none;display:flex;justify-content:space-between;align-items:center;padding:6px 22px 0 26px;font-size:12px;font-weight:700}
.sb i{width:42px;height:10px;border-radius:3px;background:linear-gradient(90deg,currentColor 0 60%,transparent 60% 68%,currentColor 68% 100%);opacity:.9}
.pg{height:3px;margin:4px 20px 0;background:#E1E1DD;border-radius:2px;flex:none;overflow:hidden}.pg i{display:block;height:100%;background:#111;border-radius:2px}
.ph.dark .pg{background:#2A2A2A}.ph.dark .pg i{background:#fff}
.pc{flex:1;display:flex;flex-direction:column;padding:12px 18px 18px;min-height:0}
.pbk{height:22px;display:flex;align-items:center;margin-bottom:8px}
.prc{align-self:flex-start;background:var(--g);color:var(--gi);font-size:10.5px;font-weight:700;border-radius:999px;padding:4px 9px;margin-bottom:8px}
.pht{font-size:21px;font-weight:800;letter-spacing:-.03em;line-height:1.14}
.pht.big{font-size:27px;margin-top:8px}.pht.xl{font-size:24px}.pht.c{text-align:center;font-size:16px;margin-top:10px}.pht.w{color:#fff;font-size:22px}
.phb{font-size:12.5px;line-height:1.42;color:#5F5F5A;margin-top:7px;font-weight:500}.phb.dk{color:#333}
.phn{font-size:11px;line-height:1.35;color:#5F5F5A;margin-top:6px;font-weight:600}
.pq{font-size:12px;font-weight:700;color:#5F5F5A;margin:16px 0 0}
.po{display:grid;gap:7px;margin-top:12px}.po.g{grid-template-columns:1fr 1fr}
.pop{background:#fff;border-radius:14px;padding:11px 12px;font-size:12.5px;font-weight:650;line-height:1.25;color:#111;min-height:40px;display:flex;align-items:center}
.po.g .pop{justify-content:center;text-align:center;padding:9px 6px;min-height:34px;font-size:12px}
.pop.on{background:#111;color:#fff}
.pop.ck{gap:9px}.pop .bx{width:17px;height:17px;border-radius:5px;border:1.5px solid #CFCFCA;display:grid;place-items:center;flex:none}.pop.on .bx{background:#fff;border-color:#fff}.pop.on .bx svg path{stroke:#111}
.pfl{flex:1}.pfl.s{flex:.35}
.pcta{height:44px;border-radius:999px;background:#111;color:#fff;font-size:13px;font-weight:700;display:grid;place-items:center;flex:none;margin-top:10px}
.pcta.w{background:#fff;color:#000}
.pcta2{height:44px;border-radius:999px;background:#fff;color:#111;font-size:13px;font-weight:700;display:grid;place-items:center;margin-top:8px}
.plink{text-align:center;font-size:12px;font-weight:700;color:#5F5F5A;margin-top:12px}
.plogo{width:34px;height:34px;background:var(--whv-logo) center/contain no-repeat;filter:brightness(0);margin-top:10px}
.plogo.sm{width:30px;height:30px;margin:0}
.pwh{position:relative;display:grid;grid-template-columns:1fr 1.5fr 1fr;margin-top:22px;background:#fff;border-radius:18px;padding:10px 6px}
.pwr{position:absolute;left:8px;right:8px;top:50%;height:30px;margin-top:-15px;background:#F1F1EE;border-radius:9px}
.pwc{position:relative;display:grid;gap:8px;text-align:center}.pwc i{font-style:normal;color:#C4C4BF;font-size:12px}.pwc b{font-size:15px;font-weight:700}
.psl{margin-top:16px}.psll{display:flex;justify-content:space-between;align-items:baseline}.psll span{font-size:11.5px;font-weight:600;color:#5F5F5A}.psll b{font-size:22px;font-weight:800;letter-spacing:-.03em}
.pslt{position:relative;height:5px;background:#E1E1DD;border-radius:3px;margin-top:10px}.pslt i{position:absolute;left:0;top:0;bottom:0;background:#111;border-radius:3px}.pslt u{position:absolute;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;background:#fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.psrc{display:flex;align-items:center;gap:7px;margin-top:16px;font-size:11px;font-weight:700;color:var(--gi);background:var(--g);align-self:flex-start;padding:5px 10px;border-radius:999px}
.pnum{font-size:64px;font-weight:800;letter-spacing:-.05em;line-height:1}
.pia{display:grid;gap:7px;margin-top:16px}.pia div{background:#fff;border-radius:13px;padding:9px 11px;display:flex;flex-direction:column}.pia b{font-size:12.5px}.pia span{font-size:11px;color:#5F5F5A;font-weight:600;margin-top:2px}
.pstack{position:relative;height:150px;margin:10px 0 14px}.pstack i{position:absolute;left:50%;top:10px;width:110px;height:140px;margin-left:-55px;background:#fff;border-radius:12px;box-shadow:0 6px 16px rgba(0,0,0,.08)}
.pstack i:nth-child(1){transform:rotate(-9deg) translateX(-26px)}.pstack i:nth-child(2){transform:rotate(7deg) translateX(26px)}.pstack i:nth-child(3){background:#fff linear-gradient(#E6E6E2,#E6E6E2) 14px 22px/60px 6px no-repeat,linear-gradient(#EFEFEC,#EFEFEC) 14px 40px/82px 5px no-repeat,linear-gradient(#EFEFEC,#EFEFEC) 14px 54px/70px 5px no-repeat,linear-gradient(#EFEFEC,#EFEFEC) 14px 68px/82px 5px no-repeat,linear-gradient(#111,#111) 14px 110px/46px 8px no-repeat}
.pld{position:relative;width:170px;height:170px;margin:0 auto}
.pdisc{position:absolute;left:50%;top:50%;width:66px;height:66px;margin:-33px 0 0 -33px;border-radius:50%;background:#fff;box-shadow:0 8px 22px rgba(0,0,0,.07);display:grid;place-items:center}
.pbub{position:absolute;width:12px;height:12px;border-radius:999px;background:#fff;box-shadow:0 3px 9px rgba(0,0,0,.06);font-size:0}
.pbub.on{width:auto;height:22px;padding:0 9px;font-size:10px;font-weight:800;display:grid;place-items:center}
.pbub.b0{left:78px;top:2px}.pbub.b1{left:150px;top:52px}.pbub.b2{left:140px;top:134px}.pbub.b3{left:70px;top:156px}.pbub.b4{left:6px;top:116px}.pbub.b5{left:12px;top:34px}
.pbub.on.b2{left:110px}.pbub.on.b1{left:118px}
.plines{display:grid;gap:7px;margin-top:14px}.plines div{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:650}
.plines span{width:17px;height:17px;border-radius:50%;background:#111;display:grid;place-items:center;flex:none}.plines .go{color:#86867F}.plines .go span{background:#E1E1DD}
.pkick{font-size:11px;font-weight:700;color:#5F5F5A}.pkick.w{color:#9A9A94}
.phero{font-size:30px;font-weight:800;letter-spacing:-.04em;line-height:1.05;margin-top:6px}
.pins{display:grid;gap:7px;margin-top:14px}.pins div{display:flex;gap:8px;align-items:flex-start;font-size:12px;font-weight:650;background:#fff;border-radius:12px;padding:9px 10px;line-height:1.3}
.pins span{width:16px;height:16px;border-radius:50%;background:#111;display:grid;place-items:center;flex:none;margin-top:1px}
.pnote{margin-top:10px;align-self:flex-start;font-size:10.5px;font-weight:700;color:var(--gi);background:var(--g);border-radius:999px;padding:4px 9px}
.parg{background:#fff;border-radius:20px;padding:13px 13px 12px;margin-top:2px}
.pargh{font-size:14px;font-weight:800;margin-bottom:8px}
.pbars{display:flex;align-items:flex-end;gap:5px;height:92px;margin-top:12px}.pbars i{flex:1;border-radius:4px 4px 2px 2px}.pbars i.r{background:#111}.pbars i.e{background:repeating-linear-gradient(135deg,#D8D8D3 0 3px,#EDEDEA 3px 6px)}.pbars i.z{background:#EDEDEA}
.pbars.sm{height:62px}
.psheet{margin:auto -18px -18px;background:#fff;border-radius:24px 24px 0 0;padding:10px 16px 18px;box-shadow:0 -8px 24px rgba(0,0,0,.08)}
.psheet .pop{background:#F4F4F2}.psheet .pop.on{background:#111}
.pgrab{width:34px;height:4px;border-radius:2px;background:#DDDDD8;margin:0 auto 10px}.pshq{font-size:14.5px;font-weight:800;letter-spacing:-.02em}
.pvis{margin-top:14px}
.vrow{display:flex;align-items:center;gap:8px;background:#fff;border-radius:12px;padding:9px 10px;margin-bottom:6px;font-size:11px}.vrow span{color:#5F5F5A;font-weight:700;width:38px}.vrow b{flex:1;font-size:12px}.vrow em{font-style:normal;font-weight:700;font-size:10.5px;background:var(--g);color:var(--gi);padding:3px 8px;border-radius:999px}.vrow em.g{background:#111;color:#fff}
.vtodo{background:#fff;border-radius:16px;padding:6px 10px}.vtodo div{display:flex;align-items:center;gap:9px;padding:8px 0;font-size:12px;font-weight:650;border-top:1px solid #F0F0ED}.vtodo div:first-child{border-top:0}
.vtodo span{width:17px;height:17px;border-radius:50%;border:1.5px solid #CFCFCA;display:grid;place-items:center;flex:none}.vtodo .dn span{background:#111;border-color:#111}.vtodo .dn{color:#86867F;text-decoration:line-through}
.vtodo em{margin-left:auto;font-style:normal;font-size:10.5px;font-weight:700;background:#F1F1EE;border-radius:999px;padding:3px 8px;color:#333}.vtodo .dn em{background:var(--g);color:var(--gi);text-decoration:none}
.vmon{background:#fff;border-radius:16px;padding:10px 12px}.vml{display:flex;justify-content:space-between;margin-top:8px;font-size:11.5px;font-weight:700}.vml span{color:#5F5F5A}
.vpay{display:grid;gap:6px}.vpay div{display:flex;gap:8px;align-items:center;background:#fff;border-radius:12px;padding:9px 10px;font-size:12px;font-weight:650}.vpay span{width:16px;height:16px;border-radius:50%;background:#111;display:grid;place-items:center;flex:none}
.v88{display:flex;gap:12px;align-items:center}.v88 .ring{width:96px;height:96px;border-radius:50%;border:10px solid #111;display:grid;place-content:center;text-align:center;background:#fff}.v88 .ring b{font-size:24px;line-height:1}.v88 .ring span{font-size:10px;color:#5F5F5A;font-weight:600}
.v88 .pdf{position:relative;flex:1;height:96px}.v88 .pdf i{position:absolute;left:10px;top:4px;width:66px;height:80px;background:#fff;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.v88 .pdf i:nth-child(2){left:18px;top:8px}.v88 .pdf i:nth-child(3){left:26px;top:12px}
.v88 .pdf b{position:absolute;left:0;bottom:-4px;font-size:10.5px;background:var(--g);color:var(--gi);border-radius:999px;padding:3px 8px}
.vrec{background:#fff;border-radius:16px;padding:12px}.vrec span{font-size:11px;font-weight:700;color:#5F5F5A}.vrec b{display:block;font-size:26px;font-weight:800;letter-spacing:-.04em;margin-top:4px}.vrec div{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.vrec em{font-style:normal;font-size:10.5px;font-weight:700;background:var(--g);color:var(--gi);border-radius:999px;padding:3px 8px}
.vbar{height:6px;background:#EDEDEA;border-radius:3px;margin-top:8px}.vbar i{display:block;height:100%;background:#111;border-radius:3px}
.palert{margin:18px 10px 0;background:#fff;border-radius:16px;text-align:center;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.12)}.palert b{display:block;font-size:12px;padding:14px 14px 0;line-height:1.3}.palert p{font-size:10.5px;color:#5F5F5A;margin:6px 12px 12px}.palert div{display:flex;border-top:1px solid #E5E5E2}.palert div span{flex:1;padding:10px;font-size:12.5px;color:#0A84FF}.palert div span.y{font-weight:700;border-left:1px solid #E5E5E2}
.ptl{display:grid;gap:9px;margin-top:16px}.ptl div{display:flex;gap:9px;align-items:center;font-size:12px;font-weight:600;color:#D7D7D2}.ptl i{width:7px;height:7px;border-radius:50%;background:#fff;flex:none}
.ptl .fin{margin-top:4px;background:var(--g);color:var(--gi);border-radius:12px;padding:9px 10px;font-weight:800;font-size:13px}.ptl .fin i{background:var(--gi)}
.pben{display:grid;gap:7px;margin-top:12px}.pben div{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:650}.pben span{width:16px;height:16px;border-radius:50%;background:#111;display:grid;place-items:center;flex:none}
.pplan{background:#fff;border-radius:14px;padding:10px 12px;margin-top:9px;display:flex;justify-content:space-between;align-items:center;border:2px solid transparent}.pplan.on{border-color:#111}
.pplan div{display:flex;flex-direction:column}.pplan div:last-child{text-align:right}.pplan b{font-size:13px}.pplan span{font-size:10px;color:#5F5F5A;font-weight:600}
.pplan em{font-style:normal;font-size:10px;font-weight:800;color:var(--gi);background:var(--g);border-radius:999px;padding:2px 7px;margin-top:3px;align-self:flex-start}
.psm{text-align:center;font-size:10.5px;color:#5F5F5A;font-weight:600;margin-top:7px}.pav{margin-top:8px;font-size:10.5px;font-weight:700;color:#86867F;text-align:center;border:1.5px dashed #CFCFCA;border-radius:10px;padding:7px}
/* notes sous l'écran */
.ann{margin-top:22px;background:#fff;border-radius:18px;padding:13px 14px;font-size:12.5px;line-height:1.42;color:#2A2A27;height:300px;overflow:hidden;position:relative}
.ann::after{content:'';position:absolute;left:0;right:0;bottom:0;height:40px;background:linear-gradient(transparent,#fff)}
.ann>div{margin-top:7px}.ann b{font-weight:800;color:#000;margin-right:4px}
.ax,.an{display:inline-block;font-size:11px;font-weight:800;border-radius:999px;padding:3px 9px}.ax{background:#000;color:#fff}.an{border:1.5px dashed #9E9E98;color:#333}
.note{position:absolute;width:460px;background:#fff;border-radius:26px;padding:24px 26px;font-size:14px;line-height:1.5}
.note h3{margin:0 0 12px;font-size:24px;font-weight:800;letter-spacing:-.03em}.note p{margin:6px 0}.note .k{display:flex;justify-content:space-between;gap:14px;border-top:1px solid #EFEFEC;padding:8px 0;font-size:13.5px}.note .k span{color:#444}.note .k b{text-align:right;max-width:62%}
.note.dk{background:#000;color:#fff}.note.dk .k{border-color:#2A2A2A}.note.dk .k span{color:#BDBDBD}
/* interface */
.ui{position:fixed;z-index:10;background:#fff;border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.1)}
#tb{left:16px;top:16px;display:flex;align-items:center;gap:6px;padding:6px}
#tb h1{font-size:14.5px;font-weight:800;margin:0 8px;letter-spacing:-.01em;white-space:nowrap}
.btn{border:0;background:#F1F1EE;border-radius:10px;height:34px;min-width:34px;padding:0 11px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;color:#000}.btn:hover{background:#E6E6E2}.btn.dk{background:#000;color:#fff}
#zl{font-size:13px;font-weight:700;width:52px;text-align:center}
#jump{left:16px;bottom:16px;padding:8px;display:flex;gap:6px;flex-wrap:wrap;max-width:calc(100% - 300px)}
#jump .btn{height:30px;font-size:12px}
#mm{right:16px;bottom:16px;width:240px;height:170px;overflow:hidden}#mm canvas{width:100%;height:100%;display:block;cursor:pointer}
#pn{right:16px;top:16px;bottom:200px;width:420px;overflow-y:auto;padding:20px 22px;display:none}#pn.on{display:block}
#pn .x{float:right}#pn h2{font-size:21px;font-weight:800;letter-spacing:-.025em;line-height:1.2;margin:10px 0 0}
#pn h5{font-size:12px;font-weight:800;color:#5F5F5A;margin:18px 0 7px}#pn p{font-size:14.5px;line-height:1.55;margin:0}
#pn .op{display:grid;gap:6px}#pn .op span{background:#F1F1EE;border-radius:10px;padding:9px 11px;font-size:14px;font-weight:600}
#pn .src{border:1px solid var(--line);border-radius:14px;padding:12px 13px;margin-bottom:8px}#pn .src b{display:block;font-size:13.5px}#pn .src p{font-size:13px;color:#333;margin-top:5px}#pn .src a{font-size:12.5px;color:#000;font-weight:700}
@media (max-width:800px){#mm{display:none}#pn{left:8px;right:8px;width:auto;bottom:8px;top:auto;max-height:60vh}#jump{display:none}}

.ph{background:linear-gradient(180deg,#F6F6F4,#F1F1EE)}
.pop,.pia div,.pins div,.vrow,.vtodo,.vmon,.vpay div,.vrec,.parg,.pplan,.pres,.pstats div,.palert{box-shadow:0 1px 1px rgba(0,0,0,.02),0 6px 18px rgba(0,0,0,.045)}
.pop.on{box-shadow:0 6px 16px rgba(0,0,0,.18)}
.porb{position:absolute;inset:0;border-radius:50%}
.porb i{position:absolute;width:11px;height:11px;border-radius:50%;background:#fff;box-shadow:0 3px 9px rgba(0,0,0,.08)}
.porb i:nth-child(1){left:79px;top:4px}.porb i:nth-child(2){left:150px;top:48px}.porb i:nth-child(3){left:144px;top:128px}.porb i:nth-child(4){left:78px;top:154px}.porb i:nth-child(5){left:10px;top:120px}.porb i:nth-child(6){left:14px;top:40px}
.pbub{display:none}
.pprf{margin-top:12px;font-size:11.5px;font-weight:700;color:#1E330C;background:#ECF3E0;border-radius:12px;padding:8px 10px;line-height:1.35}
.pstats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px}.pstats div{background:#fff;border-radius:14px;padding:10px}.pstats b{display:block;font-size:22px;font-weight:800;letter-spacing:-.04em}.pstats span{font-size:10.5px;color:#5F5F5A;font-weight:600;line-height:1.25;display:block;margin-top:2px}
.pia div{flex-direction:row!important;align-items:center;gap:8px;font-size:12px;font-weight:650;padding:8px 10px!important}.pia span{width:16px;height:16px;border-radius:50%;background:#111;display:grid;place-items:center;flex:none}
.pslt em{position:absolute;top:12px;transform:translateX(-50%);font-style:normal;font-size:9.5px;font-weight:700;color:#5F5F5A;white-space:nowrap}
.pslt em::before{content:'';position:absolute;left:50%;top:-9px;width:1.5px;height:6px;background:#9E9E98}
.psl{margin-top:14px;padding-bottom:12px}
.pres{margin-top:12px;background:#fff;border-radius:14px;padding:10px 12px;display:flex;flex-direction:column}.pres b{font-size:15px;font-weight:800;letter-spacing:-.02em}.pres span{font-size:11.5px;font-weight:700;color:#1E330C}
.vpay .hd{background:transparent!important;box-shadow:none!important;padding:0 2px 2px!important;font-size:11px;color:#5F5F5A;font-weight:700}
.play{position:absolute;top:-14px;right:-14px;width:38px;height:38px;border-radius:50%;background:#000;color:#fff;display:grid;place-items:center;z-index:3;box-shadow:0 6px 16px rgba(0,0,0,.25);cursor:pointer}
.play svg{margin-left:2px}
.pgoal{height:10px;background:#EDEDEA;border-radius:5px;margin-top:14px;overflow:hidden}.pgoal i{display:block;height:100%;background:#111;border-radius:5px}
.pgl{display:flex;justify-content:space-between;margin-top:8px;font-size:11.5px;font-weight:700}.pgl span{color:#5F5F5A}
.pwhen{margin-top:10px;font-size:12px;font-weight:800;color:#1E330C;background:#ECF3E0;border-radius:10px;padding:8px 10px}
.pframe{margin-top:6px;font-size:10.5px;font-weight:700;color:#1E330C;text-align:right;padding-right:4px}

/* ===== v7, style Apple ===== */
.ph{background:#F2F2F0;font-feature-settings:'tnum' 1;box-shadow:0 0 0 8px #0B0B0B,0 24px 50px rgba(0,0,0,.18)}
.pc{padding:12px 18px 18px}
.pht{font-size:20.5px;font-weight:700;letter-spacing:-.025em;line-height:1.16}
.pht.sm{font-size:17px}.pht.big{font-size:28px;font-weight:700}.pht.xl{font-size:23px}.pht.c{text-align:center;font-size:15.5px;margin-top:14px;font-weight:700}
.phb{font-size:12.5px;line-height:1.42;color:#6C6C70;margin-top:6px;font-weight:500}.phb.c{text-align:center;margin-top:4px}
.phn{color:#6C6C70}
.pop{background:#fff;border-radius:14px;padding:11px 12px;font-size:12.5px;font-weight:600;min-height:42px;gap:10px;border:1.5px solid transparent;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.pop .rd{width:17px;height:17px;border-radius:50%;border:1.5px solid #C7C7CC;flex:none;display:grid;place-items:center}
.pop.on{background:#fff;color:#111;border-color:#111;box-shadow:0 4px 14px rgba(0,0,0,.08)}.pop.on .rd{background:#111;border-color:#111}
.po.g .pop.on{background:#111;color:#fff}
.pop.ck .bx{border-radius:6px}.pop.ck.on{background:#fff;color:#111}.pop.ck.on .bx{background:#111;border-color:#111}.pop.ck.on .bx svg path{stroke:#fff}
.pcta{height:46px;border-radius:23px;font-size:13.5px;font-weight:600;letter-spacing:-.01em}
.pcta2{height:46px;border-radius:23px;font-weight:600}
.phero{font-size:32px;font-weight:700;letter-spacing:-.04em;line-height:1.05;margin-top:4px}
/* liste groupée façon iOS */
.grp{background:#fff;border-radius:16px;margin-top:12px;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.03),0 8px 22px rgba(0,0,0,.04)}
.gr{display:flex;align-items:center;gap:9px;padding:9px 12px;border-top:.5px solid #E5E5EA;min-height:36px}.gr:first-child{border-top:0}
.gr p{margin:0;font-size:12px;font-weight:600;line-height:1.3;flex:1;color:#111}
.gr .ci{width:17px;height:17px;border-radius:50%;background:#111;display:grid;place-items:center;flex:none}
.gr em{font-style:normal;font-size:10.5px;font-weight:600;color:#6C6C70;background:#F2F2F0;border-radius:999px;padding:3px 8px;white-space:nowrap}
.gr em.nx{background:#111;color:#fff}
.gr .bl{width:26px;height:26px;border-radius:8px;background:#F2F2F0;display:grid;place-items:center;flex:none}
.grp.rc .gr{flex-direction:column;align-items:flex-start;gap:4px;padding:11px 12px}.grp.rc em{background:#ECF3E0;color:#1E330C}.grp.rc p{font-size:12.5px}
.grp.of .gr{align-items:flex-start;padding:8px 11px}.grp.of b{display:block;font-size:12px;font-weight:700}.grp.of em{display:block;background:none;padding:0;color:#8E8E93;font-size:10.5px;font-weight:500;white-space:normal;margin-top:1px}
.grp.of .ci{margin-top:1px}
/* chargement, système solaire */
.sol{position:relative;width:180px;height:180px;margin:0 auto}
.sun{position:absolute;left:50%;top:50%;width:70px;height:70px;margin:-35px 0 0 -35px;border-radius:50%;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.9);box-shadow:0 10px 30px rgba(0,0,0,.06),inset 0 1px 0 rgba(255,255,255,.9);backdrop-filter:blur(8px);display:grid;place-items:center}
.sun .plogo{opacity:.55}
.orb{position:absolute;left:50%;top:50%;border-radius:50%;transform:rotate(var(--a))}
.orb i{position:absolute;left:50%;top:0;border-radius:50%;background:#fff;box-shadow:0 3px 10px rgba(0,0,0,.08);transform:translate(-50%,-50%)}
.o1{width:110px;height:110px;margin:-55px 0 0 -55px;--a:0deg}.o1 i{width:10px;height:10px}
.o2{width:136px;height:136px;margin:-68px 0 0 -68px;--a:60deg}.o2 i{width:14px;height:14px}
.o3{width:150px;height:150px;margin:-75px 0 0 -75px;--a:120deg}.o3 i{width:8px;height:8px}
.o4{width:170px;height:170px;margin:-85px 0 0 -85px;--a:180deg}.o4 i{width:12px;height:12px}
.o5{width:124px;height:124px;margin:-62px 0 0 -62px;--a:240deg}.o5 i{width:7px;height:7px}
.o6{width:178px;height:178px;margin:-89px 0 0 -89px;--a:300deg}.o6 i{width:9px;height:9px}
.pprf{background:#ECF3E0;color:#1E330C;border-radius:14px;font-weight:600}
/* widget argent, style Santé */
.wdg{background:#fff;border-radius:20px;padding:13px 14px 12px;box-shadow:0 1px 2px rgba(0,0,0,.03),0 10px 26px rgba(0,0,0,.05)}
.wh{display:flex;flex-direction:column}.wh b{font-size:13px;font-weight:700}.wh span{font-size:10.5px;color:#8E8E93;font-weight:600;margin-top:1px}
.chart{position:relative;height:118px;display:flex;align-items:flex-end;gap:4px;margin-top:10px;padding-bottom:16px}
.chart .grid{position:absolute;left:0;right:0;top:0;bottom:16px;background:repeating-linear-gradient(to bottom,#ECECEE 0 1px,transparent 1px 34px)}
.cb{position:relative;flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.cb i{display:block;width:72%;border-radius:999px;transform-origin:bottom;min-height:4px}
.cb i.r{background:#1C1C1E}.cb i.e{background:#D8D8DC}.cb i.z{background:#F0F0F2}
.cb i.hl{background:#000;box-shadow:0 0 0 3px #fff,0 0 0 4px #1C1C1E}
.cb span{position:absolute;bottom:-15px;font-size:8.5px;font-weight:600;color:#AEAEB2}
.pgoal{height:8px;background:#E5E5EA;border-radius:4px}
.pwhen{border-radius:12px}
/* guide pas à pas */
.gwin{margin-top:12px;background:#fff;border-radius:18px;padding:13px;box-shadow:0 1px 2px rgba(0,0,0,.03),0 10px 26px rgba(0,0,0,.05)}
.gtop{display:flex;justify-content:space-between;align-items:baseline}.gtop b{font-size:13px}.gtop span{font-size:10.5px;color:#8E8E93;font-weight:600}
.gdots{display:flex;gap:4px;margin-top:8px}.gdots i{flex:1;height:3px;border-radius:2px;background:#E5E5EA}.gdots i.on{background:#111}
.gtx{font-size:12.5px;font-weight:600;line-height:1.38;margin:10px 0 0}
.glink{display:flex;justify-content:space-between;align-items:center;margin-top:10px;border:1.5px solid #E5E5EA;border-radius:12px;padding:8px 10px;font-size:11.5px;font-weight:700}
.gpit{margin-top:8px;background:#F2F2F0;border-radius:12px;padding:8px 10px;font-size:11px;line-height:1.35;color:#3A3A3C;font-weight:500}.gpit b{display:block;font-size:10.5px;color:#111;margin-bottom:2px}
.gnext{margin-top:10px;height:36px;border-radius:18px;background:#111;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600}
/* pack preuves */
.pk{position:relative;height:190px;margin-top:10px}
.pk>div:not(.pfile){position:absolute;left:50%;top:6px;width:120px;height:140px;margin-left:-60px;background:#fff;border-radius:12px;box-shadow:0 8px 22px rgba(0,0,0,.08);padding:10px}
.pk>div b{display:block;font-size:10px;margin-bottom:8px}.pk>div i{display:block;height:5px;border-radius:3px;background:#EDEDEF;margin-bottom:6px}.pk>div i:nth-child(odd){width:70%}
.pg1{transform:translateX(-34px) rotate(-8deg)}.pg3{transform:translateX(34px) rotate(8deg)}
.pfile{position:absolute;left:0;right:0;bottom:0;background:#fff;border-radius:16px;padding:10px 11px;display:flex;align-items:center;gap:9px;box-shadow:0 1px 2px rgba(0,0,0,.03),0 10px 26px rgba(0,0,0,.06)}
.pfile>span{width:30px;height:30px;border-radius:9px;background:#F2F2F0;display:grid;place-items:center;flex:none}.pfile div{flex:1}.pfile b{display:block;font-size:11px}.pfile em{font-style:normal;font-size:10px;color:#8E8E93;font-weight:600}
.pfile u{text-decoration:none;background:#111;color:#fff;font-size:10.5px;font-weight:700;border-radius:999px;padding:6px 10px}
/* fiche lue */
.slip{position:relative;background:#fff;border-radius:16px;padding:12px;box-shadow:0 1px 2px rgba(0,0,0,.03),0 12px 30px rgba(0,0,0,.07);overflow:hidden}
.sh{display:flex;align-items:center;gap:7px;margin-bottom:8px}.sh b{font-size:12px;flex:1}.sh em{font-style:normal;font-size:9.5px;color:#8E8E93;font-weight:600}
.sf{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-top:.5px solid #EFEFF1;font-size:10.5px}.sf span{color:#8E8E93;font-weight:600}.sf b{font-weight:700;border-radius:6px;padding:2px 6px;background:#ECF3E0;color:#1E330C}
.sline{position:absolute;left:0;right:0;top:40%;height:28px;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(30,51,12,.10),rgba(255,255,255,0));pointer-events:none;opacity:0}
/* IA */
.iag{margin-top:12px;display:grid;gap:7px}.iar{display:flex;gap:10px;align-items:center;background:#fff;border-radius:14px;padding:9px 10px;box-shadow:0 1px 2px rgba(0,0,0,.03),0 6px 18px rgba(0,0,0,.04)}
.mono{width:32px;height:32px;border-radius:10px;background:#111;color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;flex:none;letter-spacing:.02em}
.iar b{display:block;font-size:12px}.iar em{font-style:normal;font-size:10.5px;color:#8E8E93;font-weight:600}
/* notification exemple */
.nban{margin-top:14px;display:flex;gap:9px;align-items:flex-start;background:rgba(255,255,255,.85);border-radius:16px;padding:10px;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.nlogo{width:30px;height:30px;border-radius:8px;background:#111 var(--whv-logo) center/60% no-repeat;flex:none}
.nban b{font-size:11.5px}.nban p{margin:2px 0 0;font-size:11px;line-height:1.3;color:#3A3A3C}.nban em{font-style:normal;font-size:9.5px;color:#8E8E93;margin-left:auto}
.palert{margin-top:12px}
.psheet .pop.on{background:#fff;color:#111;border-color:#111}.psheet{border-radius:22px 22px 0 0;box-shadow:0 -10px 30px rgba(0,0,0,.08)}
.pk>div:not(.pfile){width:104px;height:128px;margin-left:-52px;padding:9px}.pk>div b{font-size:9.5px}
.grp.ia .gr{padding:10px 12px}.grp.ia b{display:block;font-size:12.5px}.grp.ia em{display:block;background:none;padding:0;font-size:10.5px;color:#8E8E93;font-weight:600}
.perso{margin-top:12px;background:#ECF3E0;border-radius:18px;padding:12px}.perso b{font-size:15px;font-weight:700;color:#1E330C;letter-spacing:-.02em}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chips span{background:#fff;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:700;color:#111}
.nban{margin-top:4px;align-items:center}.nbt{flex:1}.nbt>div{display:flex;align-items:center;gap:5px}.nbt i{font-style:normal;font-size:9px;font-weight:800;color:#fff;background:#111;border-radius:4px;padding:1px 5px}.nbt em{margin-left:auto}
.palert u{text-decoration:none;display:inline-block;border:2px solid #111;border-radius:10px;padding:3px 12px}
.sf s{text-decoration:none;width:15px;height:15px;border-radius:50%;background:#111;display:grid;place-items:center;margin-left:6px}.sf b{margin-left:auto}
.okick{font-size:10.5px;font-weight:700;color:#1E330C;background:#ECF3E0;border-radius:999px;padding:3px 9px;display:inline-block;margin-bottom:6px}
.pplan>div:last-child{text-align:right}.pplan span{display:block;font-size:10px;color:#6C6C70;font-weight:600}
.dbig{display:grid;gap:6px;margin-top:12px}.dbig.n2{grid-template-columns:1fr 1fr}.dbig.n3{grid-template-columns:repeat(3,minmax(0,1fr))}.dbig.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.dbig div{background:#1C1C1E;border-radius:14px;padding:9px 10px}.dbig b{display:block;color:#fff;font-size:19px;font-weight:700;letter-spacing:-.03em;white-space:nowrap}.dbig.n3 b{font-size:15.5px}.dbig span{display:block;color:#8E8E93;font-size:9.5px;font-weight:600;margin-top:2px;line-height:1.25}
.dtl{--fill:100%;position:relative;margin-top:14px;padding-left:2px;display:grid;gap:11px}
.dtl:before{content:'';position:absolute;left:5px;top:6px;bottom:6px;width:1.5px;background:#2C2C2E}
.dtl:after{content:'';position:absolute;left:5px;top:6px;width:1.5px;height:calc(var(--fill) - 12px);background:#fff}
@property --fill{syntax:'<percentage>';inherits:true;initial-value:100%}
.ds{position:relative;display:flex;gap:12px;align-items:flex-start}.ds i{position:relative;z-index:1;width:8px;height:8px;margin-top:4px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px #000;flex:none}
.ds em{display:block;font-style:normal;font-size:9.5px;font-weight:700;color:#8E8E93}.ds b{display:block;font-size:12px;font-weight:600;color:#fff;line-height:1.3}
.grp.of{margin-top:8px}.grp.of .gr{padding:6px 10px;min-height:0}.grp.of b{font-size:11.5px}.grp.of em{font-size:10px}
.ph .pplan{padding:7px 11px;margin-top:6px}.pav{margin-top:6px;padding:6px}.psm{margin-top:5px}
.dsh{padding:13px 14px 12px}.wh2{display:flex;justify-content:space-between;align-items:center}.wh2 b{font-size:15px;font-weight:700;letter-spacing:-.02em}
.seg{display:flex;background:#EFEFF1;border-radius:8px;padding:2px}.seg i{font-style:normal;font-size:9.5px;font-weight:700;color:#6C6C70;padding:3px 8px;border-radius:6px}.seg i.on{background:#fff;color:#111;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.lbl{font-size:10.5px;color:#8E8E93;font-weight:600;margin-top:9px}.dsh .phero{font-size:33px;margin-top:2px}.hsub{font-size:10.5px;color:#6C6C70;font-weight:600;margin-top:2px}
.ch2{position:relative;display:flex;gap:6px;margin-top:12px;height:112px}
.yax{position:absolute;right:0;top:-4px;bottom:16px;display:flex;flex-direction:column;justify-content:space-between;font-size:8.5px;color:#AEAEB2;font-weight:600}
.bars{position:relative;flex:1;display:flex;gap:4px;align-items:flex-end;padding-bottom:16px;margin-right:18px;background:linear-gradient(#EDEDEF,#EDEDEF) 0 0/100% 1px no-repeat,linear-gradient(#EDEDEF,#EDEDEF) 0 calc(50% - 8px)/100% 1px no-repeat,linear-gradient(#D8D8DC,#D8D8DC) 0 calc(100% - 16px)/100% 1px no-repeat}
.b2{position:relative;flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.b2 i{display:block;width:100%;border-radius:5px 5px 2px 2px;background:#1C1C1E;transform-origin:bottom}.b2 i.z{background:#EFEFF1}
.b2.hl i{background:#1E330C}
.b2 em{position:absolute;left:50%;transform:translateX(-50%);font-style:normal;font-size:9px;font-weight:800;background:#1E330C;color:#fff;border-radius:6px;padding:2px 5px;white-space:nowrap}
.b2 span{position:absolute;bottom:0;font-size:8.5px;font-weight:700;color:#AEAEB2}
.sts{display:grid;grid-template-columns:repeat(3,1fr);margin-top:10px;border-top:.5px solid #E5E5EA;padding-top:9px}.sts div{padding-left:8px;border-left:.5px solid #E5E5EA}.sts div:first-child{border-left:0;padding-left:0}
.sts span{display:block;font-size:9.5px;color:#8E8E93;font-weight:600}.sts b{display:block;font-size:12.5px;font-weight:700;margin-top:1px;letter-spacing:-.01em}
.recb{margin-top:10px;background:#ECF3E0;border-radius:18px;padding:11px 13px}.recb span{display:block;font-size:10.5px;font-weight:700;color:#1E330C}.recb b{display:block;font-size:24px;font-weight:700;letter-spacing:-.03em;color:#1E330C;margin-top:1px}.recb em{display:block;font-style:normal;font-size:10.5px;color:#1E330C;font-weight:600;opacity:.8}
.rcard{margin-top:12px;background:#ECF3E0;border-radius:20px;padding:13px}.rcard>span{display:block;font-size:10.5px;font-weight:700;color:#1E330C}.rcard>b{display:block;font-size:30px;font-weight:700;letter-spacing:-.035em;color:#1E330C;margin:1px 0 6px}
.rr{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;border-radius:14px;padding:9px 11px;margin-top:6px}.rr em{display:block;font-style:normal;font-size:9.5px;color:#8E8E93;font-weight:700}.rr p{margin:1px 0 0;font-size:11.5px;font-weight:600;line-height:1.3}.rr strong{font-size:13px;font-weight:800;white-space:nowrap}
.phb.sm{font-size:11.5px;line-height:1.38}
.cover{margin-top:12px;background:#fff;border-radius:16px;padding:13px;box-shadow:0 1px 2px rgba(0,0,0,.03),0 14px 34px rgba(0,0,0,.08)}
.cvh{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1.5px solid #111;padding-bottom:7px}.cvh b{font-size:12.5px}.cvh span{font-size:9px;color:#8E8E93;font-weight:700}
.cvn{font-size:15px;font-weight:700;letter-spacing:-.02em;margin:9px 0 4px}
.cvr{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-top:.5px solid #EFEFF1}.cvr b{display:block;font-size:11px}.cvr em{display:block;font-style:normal;font-size:8.8px;color:#8E8E93;font-weight:600}.cvr strong{font-size:12px}
.cvt{display:flex;justify-content:space-between;align-items:center;background:#ECF3E0;border-radius:10px;padding:7px 9px;margin-top:6px}.cvt span{font-size:10px;font-weight:700;color:#1E330C}.cvt b{font-size:15px;color:#1E330C;letter-spacing:-.02em}
.cvf{display:flex;justify-content:space-between;align-items:center;margin-top:9px}.cvf span{font-size:9.5px;color:#6C6C70;font-weight:600}.cvf u{text-decoration:none;background:#111;color:#fff;font-size:10px;font-weight:700;border-radius:999px;padding:6px 10px}
.upv{position:relative;height:200px;display:grid;place-items:center;margin-top:6px}
.ups{width:150px;background:#fff;border-radius:12px;padding:11px;box-shadow:0 14px 34px rgba(0,0,0,.10);transform:rotate(-3deg)}
.uph{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #111;padding-bottom:5px;margin-bottom:7px}.uph b{font-size:10.5px}.uph span{font-size:7.5px;color:#8E8E93;font-weight:600}
.upl{display:flex;justify-content:space-between;margin-bottom:6px}.upl i{height:5px;width:46%;border-radius:3px;background:#EDEDEF}.upl i.s{width:28%}
.upt{display:flex;justify-content:space-between;align-items:center;margin-top:8px;background:#F2F2F0;border-radius:6px;padding:5px 6px}.upt span{font-size:8.5px;font-weight:700}.upt i{height:6px;width:34%;border-radius:3px;background:#1C1C1E}
.upb{position:absolute;right:52px;bottom:26px;width:38px;height:38px;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center;font-size:22px;font-weight:400;box-shadow:0 8px 20px rgba(0,0,0,.2)}
.upc{display:flex;gap:6px;justify-content:center;margin-bottom:6px}.upc span{background:#fff;border-radius:999px;padding:5px 11px;font-size:10.5px;font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.dhero{font-size:46px;font-weight:700;letter-spacing:-.05em;line-height:1;color:#ECF3E0;margin-top:14px;font-feature-settings:'tnum' 1}
.dherol{font-size:12px;font-weight:700;color:#ECF3E0;opacity:.75;margin-top:4px}
.ph.dark .dh{display:none}
.ph.dark .dbig b{font-size:22px}.ph.dark .dbig.n3 b{font-size:15px}.dbig.n3 div{padding:9px 8px}.dbig div{padding:10px 11px}
.ph.dark .ds b{font-size:12.5px}
.pcta.g{background:#ECF3E0;color:#1E330C}
/* ===== v7.3, carte Argent de l'app ===== */
.cardg{background:#ECECEA;border-radius:24px;padding:16px 14px 12px}
.eyeb{font-weight:600;font-size:9.5px;letter-spacing:.14em;color:#A6A6A0;text-transform:uppercase}
.bign{font-weight:800;letter-spacing:-.035em;line-height:1;font-size:34px;margin-top:8px;font-variant-numeric:tabular-nums}
.mutl{color:#8A8A84;font-weight:500;font-size:11.5px;margin-top:5px}
.pills{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.pillg{background:#ECF3E0;color:#1E330C;font-weight:700;font-size:10.5px;padding:5px 9px;border-radius:100px;white-space:nowrap}.pillm{background:#E4E4E1;color:#6B6B66;font-weight:600;font-size:10.5px;padding:5px 9px;border-radius:100px;white-space:nowrap}
.abw{margin-top:14px}.abars{display:flex;align-items:flex-end;gap:3px;height:96px;border-bottom:1px dashed rgba(15,15,13,.12)}
.abars i{flex:1;border-radius:4px 4px 2px 2px;background:#0f0f0d;opacity:.45;transform-origin:bottom}
.abars i.plan{background:repeating-linear-gradient(135deg,#B9B9B4 0 4px,#E3E3DF 4px 8px);opacity:1}
.abars i.best{opacity:.75}.abars i.sel{opacity:1}.abars i.plan.sel{background:repeating-linear-gradient(135deg,#8E8E89 0 4px,#C9C9C4 4px 8px)}
.abars i.estb{height:3px!important;background:rgba(15,15,13,.05);border:.75px dashed rgba(15,15,13,.08);opacity:1;border-radius:2px}
.mlab2{display:flex;gap:3px;margin-top:6px}.mlab2 span{flex:1;text-align:center;font-size:6.6px;color:#A6A6A0;font-weight:500;white-space:nowrap;letter-spacing:-.02em}
.mlab3{display:flex;justify-content:space-between;margin-top:6px;font-size:9px;color:#6C6C70;font-weight:600}
.abw.dk .abars{border-bottom-color:#2C2C2E;height:70px}.abw.dk .abars i{background:#fff;opacity:.35}.abw.dk .abars i.best,.abw.dk .abars i.sel{background:#ECF3E0;opacity:1}
.fcw{margin-top:10px;background:#fff;border-radius:22px;padding:15px 16px;box-shadow:0 1px 8px rgba(0,0,0,.05)}
.pillbig{display:inline-block;margin:9px 0 2px;background:#ECF3E0;color:#1E330C;font-size:30px;font-weight:800;letter-spacing:-.04em;padding:6px 13px;border-radius:16px;line-height:1.1;font-variant-numeric:tabular-nums}
.rc2{margin-top:14px}.rc2 .pillbig{font-size:34px}
.rl{margin-top:10px;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 1px 8px rgba(0,0,0,.04)}
.rli{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;border-top:.5px solid #EDEDEB}.rli:first-child{border-top:0}
.rli em{display:block;font-style:normal;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#A6A6A0;font-weight:600}.rli b{display:block;font-size:12px;font-weight:600;margin-top:2px;line-height:1.3}.rli strong{font-size:14px;font-weight:800;letter-spacing:-.02em;white-space:nowrap}
/* IA */
.aiw{display:flex;flex-direction:column}.aih{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.aig{position:relative;width:46px;height:46px;flex:none}.aig span{position:absolute;inset:0;border-radius:14px;background:#0f0f0d;display:grid;place-items:center;box-shadow:0 8px 20px rgba(0,0,0,.18)}
.aig i{position:absolute;inset:0;border-radius:16px;border:1.5px solid #1E330C;opacity:0}
.ain{font-size:13px;font-weight:700;letter-spacing:-.01em}.aist{font-size:11px;color:#8A8A84;font-weight:600;margin-top:2px}
.aist.shim{background:linear-gradient(90deg,#8A8A84 0%,#0f0f0d 45%,#8A8A84 90%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shm 1.2s linear infinite}
@keyframes shm{from{background-position:120% 0}to{background-position:-80% 0}}
.air{margin-top:12px;background:#fff;border-radius:18px;padding:4px 0;box-shadow:0 1px 8px rgba(0,0,0,.04)}
.ar{display:flex;gap:10px;align-items:center;padding:9px 13px;border-top:.5px solid #EDEDEB}.ar:first-child{border-top:0}
.ac{width:18px;height:18px;border-radius:50%;background:#111;display:grid;place-items:center;flex:none}.ar b{display:block;font-size:12px}.ar em{display:block;font-style:normal;font-size:10px;color:#A6A6A0;font-weight:600;margin-top:1px}
.aiw .perso{margin-top:10px}
/* pack 88, le film */
.pkst{position:relative;height:420px;margin-top:6px;perspective:900px}
.pk1,.pk2{position:absolute;left:0;right:0;top:110px;text-align:center;opacity:0}.pk1 b,.pk2 b{font-size:21px;font-weight:700;letter-spacing:-.03em;line-height:1.2}
.pkt{font-size:24px;font-weight:800;letter-spacing:-.035em;line-height:1.1}
.pkz{position:absolute;left:0;right:0;top:78px;height:250px}
.pgc,.pgp{position:absolute;left:50%;top:6px;width:150px;height:200px;margin-left:-75px;background:#fff;border-radius:12px;box-shadow:0 18px 40px rgba(0,0,0,.12);padding:13px;opacity:0}
.pgh{font-size:8.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#A6A6A0}.pgn{font-size:13px;font-weight:700;margin-top:8px}
.pgk{margin-top:14px;background:#ECF3E0;border-radius:12px;padding:10px;text-align:center}.pgk b{display:block;font-size:34px;font-weight:800;letter-spacing:-.04em;color:#1E330C;line-height:1}.pgk span{font-size:9px;font-weight:700;color:#1E330C}
.pgl{margin-top:12px;display:grid;gap:5px}.pgl span{font-size:8.5px;font-weight:600;color:#6B6B66;border-top:.5px solid #EDEDEB;padding-top:5px}
.pgp{width:118px;height:160px;margin-left:-59px;top:26px;padding:11px}.pph{font-size:9px;font-weight:700;border-bottom:1px solid #111;padding-bottom:5px;margin-bottom:9px}.pgp i{display:block;height:5px;border-radius:3px;background:#EDEDEF;margin-bottom:8px}.pgp i.s{width:60%}
.pdfw{position:absolute;left:0;right:0;top:40px;margin:auto;width:210px;background:#fff;border-radius:22px;padding:14px;display:flex;gap:12px;align-items:center;box-shadow:0 1px 2px rgba(0,0,0,.03),0 16px 36px rgba(0,0,0,.08)}
.pdft{position:relative;width:58px;height:74px;border-radius:9px;background:#0f0f0d;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;overflow:hidden}.pdft b{color:#ECF3E0;font-size:22px;font-weight:800;letter-spacing:-.04em;line-height:1}.pdft span{color:#ECF3E0;font-size:8px;font-weight:700;opacity:.8}
.pdfc{position:absolute;right:0;top:0;width:14px;height:14px;background:linear-gradient(225deg,#F2F2F0 50%,#3A3A3C 50%)}
.pdfi b{display:block;font-size:12px;font-weight:700;letter-spacing:-.01em}.pdfi em{display:block;font-style:normal;font-size:10px;color:#8A8A84;font-weight:600;margin-top:3px;line-height:1.3}
.pkn{position:absolute;left:0;right:0;bottom:0}
/* fin */
.dtop{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.dtop .dhero{margin-top:0}
.dring{position:relative;width:76px;height:76px;flex:none}.dring svg{width:100%;height:100%}.dring div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.dring b{color:#fff;font-size:22px;font-weight:800;letter-spacing:-.04em;line-height:1}.dring span{color:#8E8E93;font-size:7.5px;font-weight:700}
.dtop.r .dhero{font-size:38px}
.dchart2{margin-top:12px}
.dtlh{margin-top:14px;font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#6C6C70}
.ph.dark .dtl{margin-top:9px;gap:9px}
.aig2{position:relative;width:50px;height:50px;flex:none}
.aig2 i{position:absolute;inset:-7px;border-radius:50%;background:rgba(255,255,255,.45);border:1px solid rgba(255,255,255,.9);box-shadow:0 6px 18px rgba(0,0,0,.05);animation:brR 2.6s ease-in-out infinite}
.aig2 span{position:absolute;inset:0;border-radius:50%;background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.95);box-shadow:0 8px 22px rgba(0,0,0,.07),inset 0 1px 0 #fff;display:grid;place-items:center;animation:brC 2.6s ease-in-out infinite}
.aig2 .plogo{opacity:.6}
@keyframes brC{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes brR{0%,100%{transform:scale(.94);opacity:.9}50%{transform:scale(1.1);opacity:.45}}
.aih{gap:16px;padding-left:6px}
.abars i{opacity:.45}.abars i.best{opacity:.75}
.pk3{position:relative;margin-top:20px;display:flex;flex-direction:column;align-items:center}
.pkbook{position:relative;width:104px;height:134px;border-radius:14px;background:#fff;box-shadow:0 18px 40px rgba(0,0,0,.12);perspective:600px}
.pkin{position:absolute;inset:0;display:grid;place-items:center}.pkin svg{width:34px;height:34px;background:#111;border-radius:50%;padding:8px}
.pkcov{position:absolute;inset:0;border-radius:14px;background:#0f0f0d;display:flex;flex-direction:column;align-items:center;justify-content:center;transform-origin:left center;backface-visibility:hidden;overflow:hidden}
.pkcov b{color:#ECF3E0;font-size:38px;font-weight:800;letter-spacing:-.05em;line-height:1}.pkcov span{color:#ECF3E0;font-size:11px;font-weight:700;opacity:.8;margin-top:2px}.pkcov .pdfc{width:20px;height:20px}
.pkcap{margin-top:22px;text-align:center;font-size:16px;font-weight:700;letter-spacing:-.02em;line-height:1.25;padding:0 8px}
.pkfile{display:flex;align-items:center;gap:7px;margin-top:14px;background:#fff;border-radius:999px;padding:7px 13px 7px 10px;box-shadow:0 1px 8px rgba(0,0,0,.05)}.pkfile span{font-size:11.5px;font-weight:700}
.pk3+.pkn,.pkn{position:static;margin-top:14px}
.dprom{color:#fff;font-size:26px;font-weight:700;letter-spacing:-.035em;line-height:1.12;margin-top:12px}
.dnum{margin-top:14px}.dnum b{display:block;color:#ECF3E0;font-size:40px;font-weight:800;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}.dnum span{display:block;color:#8E8E93;font-size:11px;font-weight:600;margin-top:4px}
.dring2{position:relative;width:96px;height:96px;margin-top:14px}.dring2 svg{width:100%;height:100%}.dring2 div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.dring2 b{color:#fff;font-size:28px;font-weight:800;letter-spacing:-.04em;line-height:1}.dring2 span{color:#8E8E93;font-size:8px;font-weight:700;margin-top:2px}
.dfeel{margin-top:14px;color:#ECF3E0;font-size:15px;font-weight:700;letter-spacing:-.02em}
.ph.dark .ds b{font-size:12.5px}.ph.dark .ds em{font-size:9.5px}
.ph.dark{background:radial-gradient(120% 60% at 50% 18%,#1A2414 0%,#000 62%)}
.fk{display:flex;align-items:center;justify-content:center;gap:6px;font-size:10.5px;font-weight:600;color:#8E8E93;margin-top:6px}
.plogo.xs{width:16px;height:16px;border-radius:50%;background-color:rgba(255,255,255,.12);background-size:60%}
.fx{display:flex;flex-direction:column;align-items:center;margin-top:12px}
.fxn{font-size:44px;font-weight:800;letter-spacing:-.055em;line-height:1;color:#ECF3E0;font-variant-numeric:tabular-nums;text-shadow:0 0 32px rgba(236,243,224,.28);white-space:nowrap}
.fxl{font-size:11.5px;font-weight:600;color:#8E8E93;margin-top:6px}
.fxr{position:relative;width:92px;height:92px;filter:drop-shadow(0 0 18px rgba(236,243,224,.22))}.fxr svg{width:100%;height:100%}
.fxr div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.fxr b{font-size:30px;font-weight:800;letter-spacing:-.05em;color:#fff;line-height:1;font-variant-numeric:tabular-nums}.fxr span{font-size:9px;font-weight:700;color:#8E8E93;margin-top:3px}
.fp{margin-top:12px;text-align:center;color:#fff;font-size:19px;font-weight:700;letter-spacing:-.03em;line-height:1.16;text-wrap:balance;padding:0 6px}.fp span{display:inline-block}
.fc2{margin-top:14px;background:rgba(255,255,255,.07);border:.5px solid rgba(255,255,255,.08);border-radius:18px;padding:4px 0;backdrop-filter:blur(10px)}
.fch{font-size:8.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#6C6C70;padding:8px 13px 3px}
.fr{display:flex;align-items:center;gap:10px;padding:6px 13px;border-top:.5px solid rgba(255,255,255,.07)}.fr:first-of-type{border-top:0}
.fck{width:16px;height:16px;border-radius:50%;background:#ECF3E0;display:grid;place-items:center;flex:none}.fck svg{width:9px;height:9px}
.fr div{flex:1;min-width:0}.fr b{display:block;color:#fff;font-size:11.5px;font-weight:600;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}.fr em{display:block;font-style:normal;font-size:8.5px;font-weight:700;color:#8E8E93;letter-spacing:.02em}
.ff{margin-top:12px;text-align:center;color:#ECF3E0;font-size:15px;font-weight:700;letter-spacing:-.02em}
.fxk{font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#ECF3E0;opacity:.75;margin-bottom:6px}
.rcpt{margin-top:16px;background:#fff;border-radius:22px;padding:6px 16px 14px;box-shadow:0 1px 8px rgba(0,0,0,.05)}
.rq{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:.5px solid #EDEDEB}
.rq em{display:block;font-style:normal;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#A6A6A0;font-weight:600}.rq b{display:block;font-size:12px;font-weight:600;margin-top:2px;line-height:1.3}
.rq strong{font-size:17px;font-weight:800;letter-spacing:-.03em;white-space:nowrap;font-variant-numeric:tabular-nums}
.rtot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;border-top:2px solid #0f0f0d}
.rtot span{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#1E330C}
.rtot b{background:#ECF3E0;color:#1E330C;font-size:26px;font-weight:800;letter-spacing:-.04em;padding:5px 11px;border-radius:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
/* projection, le film */
.ph.dark{background:#000}
.dk1{font-size:10.5px;font-weight:600;color:#8E8E93;margin-top:4px}
.dh{font-size:21px;font-weight:700;letter-spacing:-.03em;line-height:1.14;color:#fff;margin-top:6px}
.dchart{height:96px;margin-top:12px}.dchart svg{width:100%;height:100%;overflow:visible}
.dl{display:grid;gap:7px;margin-top:10px}.dl div{display:flex;gap:8px;align-items:center;font-size:11.5px;font-weight:600;color:#D1D1D6}.dl i{width:6px;height:6px;border-radius:50%;background:#fff;flex:none}
.dfin{margin-top:12px;background:#ECF3E0;color:#1E330C;border-radius:14px;padding:10px 12px;font-size:13px;font-weight:700;letter-spacing:-.01em}
/* offre */
.pplan{border-radius:14px;padding:9px 12px;margin-top:8px}.pplan.on{border:2px solid #111}
.pframe{color:#1E330C}
.pav{border:0;background:#fff;color:#3A3A3C;border-radius:12px;font-weight:600}
/* CG */
.cgx .wrap{max-width:1500px;margin:0 auto;padding:32px 28px 60px}
.cgx h1{margin:0;font-size:28px;letter-spacing:-.03em}
.cgx .sub{margin:6px 0 0;color:var(--mut);font-size:14px;font-weight:500;line-height:1.45;max-width:780px}
.cgx .cfg{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:40px;margin-top:26px;align-items:start}
.cgx .ctl h3{margin:20px 0 9px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.cgx .ctl h3:first-child{margin-top:0}
.cgx .chips{display:flex;flex-wrap:wrap;gap:7px}
.cgx .chips button{border:1px solid var(--line);background:var(--card);color:var(--ink);font:600 13px Inter,system-ui;border-radius:999px;padding:9px 14px;cursor:pointer}
.cgx .chips button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.cgx .why{margin-top:24px;background:var(--card);border-radius:18px;padding:16px 18px;font-size:13.5px;line-height:1.55;color:var(--ink)}
.cgx .why b{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);margin-bottom:6px}
.cgx .play{margin-top:14px;border:0;background:var(--ink);color:var(--bg);font:600 14px Inter,system-ui;border-radius:999px;padding:11px 18px;cursor:pointer}
.cgx .gal{margin-top:54px}
.cgx .gal h2{margin:0;font-size:22px;letter-spacing:-.02em}
.cgx .lane{margin-top:30px}
.cgx .lane h4{margin:0 0 14px;font-size:15px}
.cgx .lane h4 span{color:var(--mut);font-weight:500}
.cgx .row{display:flex;gap:22px;overflow-x:auto;padding:4px 10px 26px;scroll-snap-type:x mandatory}
.cgx .cell{flex:none;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:10px}
.cgx .cell small{font-size:12px;font-weight:700;color:var(--mut)}
.cgx .cgp{position:relative;width:300px;height:640px;border-radius:44px;overflow:hidden;background:radial-gradient(120% 50% at 50% 10%,#1A2414 0%,#000 62%);box-shadow:0 0 0 9px #0B0B0B,0 30px 60px rgba(0,0,0,.22);color:#fff;font-feature-settings:'tnum' 1;flex:none}
.cgx .sb{display:flex;justify-content:space-between;padding:16px 26px 0;font-size:12px;font-weight:600}
.cgx .sb i{width:40px;height:10px;border-radius:3px;background:#fff;opacity:.9}
.cgx .in{position:absolute;inset:42px 18px 20px;display:flex;flex-direction:column}
.cgx .kk{display:flex;align-items:center;justify-content:center;gap:6px;font-size:10.5px;font-weight:600;color:#8E8E93}
.cgx .W{width:16px;height:16px;border-radius:50%;background:rgba(255,255,255,.9) var(--whv-logo) center/60% no-repeat}
.cgx .hk{margin-top:20px;text-align:center;font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#ECF3E0;opacity:.8}
.cgx .hero{margin-top:8px;text-align:center;font-size:54px;font-weight:800;letter-spacing:-.055em;line-height:1;color:#ECF3E0;text-shadow:0 0 40px rgba(236,243,224,.3);white-space:nowrap;font-variant-numeric:tabular-nums}
.cgx .hs{text-align:center;font-size:11.5px;font-weight:600;color:#8E8E93;margin-top:7px}
.cgx .t3{display:grid;gap:7px;margin-top:18px}
.cgx .t3.n1{grid-template-columns:1fr}
.cgx .t3.n2{grid-template-columns:1fr 1fr}
.cgx .t3.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cgx .t3 div{background:rgba(255,255,255,.07);border-radius:14px;padding:10px 8px;text-align:center}
.cgx .t3 b{display:block;font-size:19px;font-weight:800;letter-spacing:-.04em;white-space:nowrap}
.cgx .t3 span{display:block;font-size:9.5px;color:#8E8E93;font-weight:600;margin-top:3px;line-height:1.25}
.cgx .pr{margin-top:14px;text-align:center;font-size:17px;font-weight:700;letter-spacing:-.03em;line-height:1.2}
.cgx .pr span{display:block;text-wrap:balance}
.cgx .st{margin-top:16px;display:grid;gap:2px}
.cgx .s{display:flex;align-items:center;gap:11px;padding:5px 2px}
.cgx .cc{width:20px;height:20px;border-radius:50%;border:1.5px solid #3A3A3C;display:grid;place-items:center;flex:none}
.cgx .cc svg{width:11px;height:11px}
.cgx .cc path{stroke:#0f0f0d;stroke-dasharray:14;stroke-dashoffset:0}
.cgx .s.on .cc,.cgx .cgp.done .cc{background:#ECF3E0;border-color:#ECF3E0}
.cgx .s div{flex:1;min-width:0}
.cgx .s em{display:block;font-style:normal;font-size:9px;font-weight:700;color:#8E8E93}
.cgx .s b{display:block;font-size:12.5px;font-weight:600;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cgx .fear{margin-top:6px;background:#ECF3E0;color:#1E330C;border-radius:13px;padding:7px 10px;display:flex;align-items:center;gap:10px}
.cgx .fear .cc{background:#1E330C;border-color:#1E330C}
.cgx .fear .cc path{stroke:#ECF3E0}
.cgx .fear em{display:block;font-style:normal;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.75}
.cgx .fear b{display:block;font-size:12.5px;font-weight:700;line-height:1.25}
.cgx .fe{margin-top:9px;text-align:center;color:#ECF3E0;font-size:14px;font-weight:700;letter-spacing:-.02em}
.cgx .cta{margin-top:auto;height:44px;border-radius:23px;background:#ECF3E0;color:#1E330C;display:grid;place-items:center;font-weight:700;font-size:14px}
.cgx .tick{position:absolute;left:50%;top:10px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#ECF3E0;opacity:0}
.cgx [data-s]{opacity:0}
.cgx .cgp.done [data-s]{opacity:1}
.cgx .cfg{grid-template-columns:minmax(0,1fr) auto}
.cgx #main{display:flex;gap:26px;flex-wrap:wrap;justify-content:center}
.cgx .blk{display:grid;gap:8px;margin-top:16px}
.cgx .rcb{background:rgba(255,255,255,.07);border-radius:16px;padding:11px 14px;display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.cgx .rcb b{font-size:22px;font-weight:800;letter-spacing:-.04em;white-space:nowrap}
.cgx .rcb span{font-size:10.5px;color:#8E8E93;font-weight:600;text-align:right}
.cgx .y2b{background:linear-gradient(135deg,rgba(236,243,224,.16),rgba(236,243,224,.06));border:1px solid rgba(236,243,224,.22);border-radius:20px;padding:12px 14px;display:flex;align-items:center;gap:14px}
.cgx .y2b em{display:block;font-style:normal;font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#ECF3E0;opacity:.8}
.cgx .y2b b{display:block;font-size:17px;font-weight:800;letter-spacing:-.03em;color:#fff;margin-top:3px;line-height:1.15}
.cgx .y2b span{display:block;font-size:10.5px;color:#C7C7CC;font-weight:600;margin-top:4px}
.cgx .y2s{background:rgba(255,255,255,.05);border-radius:16px;padding:8px 12px;display:flex;align-items:center;gap:11px}
.cgx .y2s b{display:block;font-size:12.5px;font-weight:700}
.cgx .y2s span{display:block;font-size:10px;color:#8E8E93;font-weight:600;margin-top:2px}
.cgx .rg2{flex:none}
.cgx .cgp.lt{background:#F4F4F2;color:#0f0f0d}
.cgx .cgp.lt .sb i{background:#0f0f0d}
.cgx .cgp.lt .tick{background:#0f0f0d}
.cgx .of .ok{align-self:flex-start;margin-top:10px;font-size:10.5px;font-weight:700;color:#1E330C;background:#ECF3E0;border-radius:999px;padding:4px 10px}
.cgx .of .ot{margin-top:10px;font-size:22px;font-weight:800;letter-spacing:-.035em;line-height:1.12;text-wrap:balance}
.cgx .orows{margin-top:14px;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 1px 8px rgba(0,0,0,.05)}
.cgx .orw{display:flex;align-items:center;gap:10px;padding:9px 12px;border-top:.5px solid #EDEDEB}
.cgx .orw:first-child{border-top:0}
.cgx .orw .cc{border-color:#0f0f0d;background:#0f0f0d}
.cgx .orw .cc path{stroke:#fff}
.cgx .orw div{flex:1;min-width:0}
.cgx .orw b{display:block;font-size:12.5px;font-weight:700;letter-spacing:-.01em}
.cgx .orw em{display:block;font-style:normal;font-size:10px;color:#8A8A84;font-weight:500;margin-top:1px}
.cgx .orw strong{font-size:13px;font-weight:800;color:#1E330C;background:#ECF3E0;border-radius:8px;padding:3px 7px;white-space:nowrap}
.cgx .opl{margin-top:9px;background:#fff;border-radius:16px;padding:10px 13px;display:flex;justify-content:space-between;align-items:center;border:2px solid transparent}
.cgx .opl.on{border-color:#0f0f0d}
.cgx .opl b{display:block;font-size:14px;font-weight:800}
.cgx .opl i{display:inline-block;font-style:normal;font-size:10px;font-weight:800;color:#1E330C;background:#ECF3E0;border-radius:6px;padding:2px 6px;margin-top:3px}
.cgx .opl>div:last-child{text-align:right}
.cgx .opl span{display:block;font-size:10px;color:#8A8A84;font-weight:600;margin-top:2px}
.cgx .ofr{margin-top:5px;text-align:right;font-size:10.5px;font-weight:700;color:#1E330C}
.cgx .cta.dk{background:#0f0f0d;color:#fff}
.cgx .osm{margin-top:7px;text-align:center;font-size:10.5px;color:#8A8A84;font-weight:600}
.cgx .cgp.lt .s.on .cc,.cgx .cgp.lt.done .cc{background:#0f0f0d;border-color:#0f0f0d}
.cgx .rgw{position:relative;flex:none}
.cgx .rgw svg{width:100%;height:100%;overflow:visible}
.cgx .rgt{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:7%}
.cgx .rgt b{font-size:26px;font-weight:800;letter-spacing:-.05em;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.cgx .rgt span{font-size:9px;font-weight:700;color:#C7C7CC;margin-top:1px;line-height:1}
.cgx .y2s .rgt b{font-size:15px}
.cgx .y2s .rgt span{font-size:7px}
.cgx .y2b{padding:14px 16px;gap:16px}
.cgx .y2b b{font-size:17px;line-height:1.2;margin-top:5px}
.cgx .osc{position:absolute;inset:40px 0 0;overflow-y:auto;scrollbar-width:none}
.cgx .osc::-webkit-scrollbar{display:none}
.cgx .in2{padding:6px 18px 0;display:flex;flex-direction:column}
.cgx .in2 .ok{align-self:flex-start;margin-top:6px;font-size:10.5px;font-weight:700;color:#1E330C;background:#ECF3E0;border-radius:999px;padding:4px 10px}
.cgx .in2 .ot{margin-top:14px;font-size:23px;font-weight:800;letter-spacing:-.035em;line-height:1.12;text-wrap:balance}
.cgx .orh,.cgx .orh2{margin-top:14px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8A8A84}
.cgx .orows{margin-top:16px}
.cgx .orh2{margin-top:18px}
.cgx .opl{position:relative;padding-right:48px}
.cgx .rad{position:absolute;right:14px;top:50%;margin-top:-10px;width:20px;height:20px;border-radius:50%;border:2px solid #C7C7CC}
.cgx .rad.on{border-color:#0f0f0d;background:radial-gradient(circle,#0f0f0d 0 4.5px,transparent 5px)}
.cgx .opl .tab{position:absolute;left:12px;top:-11px;margin:0;background:#ECF3E0!important;color:#1E330C!important;border:2px solid #0f0f0d;border-radius:8px;padding:2px 8px;font-size:10px;font-weight:800;white-space:nowrap}
.cgx .opl.on{margin-top:16px}
.cgx .opl>div:first-of-type{flex:none}
.cgx .opl>div:nth-of-type(2){flex:1;text-align:right;margin-right:2px}
.cgx .opl span{white-space:nowrap}
.cgx .oav{margin-top:18px}
.cgx .oavh{font-size:15px;font-weight:800;letter-spacing:-.02em;margin-bottom:8px}
.cgx .ocard{background:#fff;border-radius:16px;padding:11px 12px;margin-top:7px;box-shadow:0 1px 6px rgba(0,0,0,.04)}
.cgx .ost{font-size:11px;letter-spacing:1px;color:#0f0f0d}
.cgx .ocard i{display:block;height:6px;border-radius:3px;background:#EDEDEB;margin-top:7px}
.cgx .ocard i.s{width:65%}
.cgx .ocard em{display:block;font-style:normal;font-size:9.5px;color:#A6A6A0;font-weight:600;margin-top:8px}
.cgx .obar{position:absolute;left:0;right:0;bottom:0;padding:26px 18px 16px;background:linear-gradient(rgba(244,244,242,0),#F4F4F2 34%)}
.cgx .obar .cta{margin-top:0}
.cgx .opl{padding:11px 13px;gap:11px;border:1.5px solid transparent;margin-top:8px!important}
.cgx .opl.on{border-color:#0f0f0d;box-shadow:0 4px 14px rgba(0,0,0,.08)}
.cgx .opl .rad{position:static;margin:0;flex:none;width:19px;height:19px;border-radius:50%;border:1.5px solid #C7C7CC;background:none;display:grid;place-items:center}
.cgx .opl .rad.on{border-color:#0f0f0d;background:#0f0f0d}
.cgx .opl>div:first-of-type{flex:none}
.cgx .opl>div:nth-of-type(2){flex:1;text-align:right}
.cgx .opl .pc{display:inline-block;margin-top:3px;background:#ECF3E0!important;color:#1E330C!important;border:0!important;border-radius:6px;padding:2px 7px;font-size:10px;font-weight:800;font-style:normal;white-space:nowrap}
.cgx .opl{padding-right:13px!important}
.cgx .opl{display:flex!important;align-items:center;gap:5px!important;padding:11px 10px!important;min-width:0;box-sizing:border-box;width:100%;border-radius:16px!important;background:#fff;border:1.5px solid #E5E5E2!important;box-shadow:none!important;margin-top:8px!important}
.cgx .opl.on{border-color:#0f0f0d!important;box-shadow:0 4px 14px rgba(0,0,0,.07)!important}
.cgx .opl .pn{font-size:13px;font-weight:700;white-space:nowrap}
.cgx .opl .sp{flex:1;min-width:4px}
.cgx .opl .pp{font-size:13px;font-weight:800;white-space:nowrap;letter-spacing:-.01em}
.cgx .opl .pc{font-size:9px!important;padding:2px 5px!important;letter-spacing:-.01em}
.cgx .opl .rad{width:18px!important;height:18px!important}
.cgx .opl .pc{margin:0!important}
.cgx .ofr{font-size:11px!important;color:#1E330C!important;font-weight:700!important;margin-top:6px!important;text-align:left!important;padding-left:4px}
.cgx .ofr.n{color:#8A8A84!important}
.cgx .ofaq{margin-top:20px}
.cgx .fq{border-top:.5px solid #E5E5E2}
.cgx .fq:last-child{border-bottom:.5px solid #E5E5E2}
.cgx .fqq{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:10px;width:100%;padding:13px 2px;font-size:13.5px;font-weight:700;cursor:pointer;letter-spacing:-.01em}
.cgx .fqp{position:relative;margin-left:auto;width:12px;height:12px;flex:none}
.cgx .fqp::before,.cgx .fqp::after{content:'';position:absolute;left:0;top:5px;width:12px;height:2px;border-radius:1px;background:#0f0f0d;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.cgx .fqp::after{transform:rotate(90deg)}
.cgx .fq.op .fqp::after{transform:rotate(0)}
.cgx .fqa{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.2,.8,.2,1)}
.cgx .fqa>p{overflow:hidden;margin:0;font-size:12.5px;line-height:1.5;color:#6C6C70;font-weight:500}
.cgx .fq.op .fqa{grid-template-rows:1fr}
.cgx .fq.op .fqa>p{padding-bottom:13px}
.cgx .ck,.cgx .cc,.cgx .opl .rad{width:19px!important;height:19px!important;border-radius:50%!important;display:grid!important;place-items:center!important;flex:none!important;box-sizing:border-box}
.cgx .cc{background:#0f0f0d!important;border:1.5px solid #0f0f0d!important}
.cgx .cgp .ck.g,.cgx .cgp .s .ck{background:#fff!important;border:1.5px solid #fff!important}
.cgx .cgp .ck.g svg path,.cgx .cgp .s .ck svg path{stroke:#0f0f0d!important}
.cgx .ck svg,.cgx .cc svg,.cgx .opl .rad svg{width:11px!important;height:11px!important}
.cgx .ck svg path,.cgx .cc svg path,.cgx .opl .rad svg path{stroke-width:2.3!important;stroke-dasharray:12;animation:ckdraw .62s cubic-bezier(.3,0,.2,1) both}
.cgx .cc svg path,.cgx .opl .rad svg path{stroke:#fff!important}
.cgx .opl .rad{border:1.5px solid #C7C7CC!important;background:transparent!important}
.cgx .opl .rad.on{background:#0f0f0d!important;border-color:#0f0f0d!important;animation:ckpop .62s cubic-bezier(.2,.8,.2,1)}
.cgx .opl{border:1.5px solid #DADAD6!important;min-height:52px}
.cgx .opl.on{border:2px solid #0f0f0d!important}
.cgx .orows{box-shadow:0 1px 3px rgba(0,0,0,.03)!important}
.cgx .cgp:not(.lt){isolation:isolate}
.cgx .cgp:not(.lt)::before{content:'';position:absolute;width:440px;height:440px;left:50%;top:-260px;margin-left:-220px;border-radius:50%;background:conic-gradient(from 200deg,rgba(236,243,224,0),rgba(236,243,224,.55),rgba(107,127,90,.5),rgba(255,255,255,.14),rgba(236,243,224,0));filter:blur(52px);z-index:-1;pointer-events:none}
.cgx .opl{position:relative;min-height:64px!important;padding:14px 16px!important;align-items:center}
.cgx .opl .tag{position:absolute;top:-10px;right:14px;background:#ECF3E0;color:#1E330C;border-radius:999px;padding:3px 10px;font-size:10.5px;font-weight:800;font-style:normal;letter-spacing:.01em;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.cgx .opl .pnw{display:flex;flex-direction:column;margin-left:10px}
.cgx .opl .pnw .pn{font-size:16px}
.cgx .opl .pt{font-style:normal;font-size:11.5px;color:#8A8A84;font-weight:600;margin-top:2px}
.cgx .opl .ppw{display:flex;flex-direction:column;align-items:flex-end}
.cgx .opl .ppw .pp{font-size:19px;letter-spacing:-.02em}
.cgx .opl .pd{font-style:normal;font-size:11px;color:#8A8A84;font-weight:700}
.cgx .orows{margin-top:18px!important}
.cgx .orw .cc{background:#ECF3E0!important;border:1.5px solid #ECF3E0!important;width:24px!important;height:24px!important}
.cgx .orw .cc svg path{stroke:#1E330C!important}
.cgx .orw strong{font-size:15.5px!important;font-weight:800;color:#1E330C;background:#ECF3E0;border-radius:10px!important;padding:6px 11px!important;letter-spacing:-.02em}
.cgx .orw b{font-size:13.5px!important}
.cgx .osc .ot{margin-bottom:22px!important}
.cgx .cgp.done [data-s]{opacity:1}
.ph.ext{background:#000;overflow:hidden}
.ph.ext .cgx{position:absolute;left:0;top:0;width:300px;height:640px;transform:scale(.875);transform-origin:0 0}
.ph.ext .cgp{border-radius:0!important;box-shadow:none!important;margin-left:4px}
.aiorb{position:relative;width:60px;height:60px;flex:none;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.95) 0%,rgba(255,255,255,.55) 16%,rgba(255,255,255,.18) 38%,rgba(255,255,255,.06) 60%,rgba(255,255,255,0) 72%),radial-gradient(circle at 62% 74%,rgba(15,15,13,.07) 0%,rgba(15,15,13,0) 46%);box-shadow:inset 0 -4px 10px rgba(15,15,13,.06),inset 0 3px 8px rgba(255,255,255,.7),0 6px 18px rgba(15,15,13,.06);border:1px solid rgba(255,255,255,.6);animation:drop 3.2s cubic-bezier(.45,0,.55,1) infinite,morph 7s ease-in-out infinite}
.aiorb::after{content:'';position:absolute;inset:-6px;border-radius:inherit;border:1px solid rgba(15,15,13,.08);animation:halo 3.2s cubic-bezier(.2,.8,.2,1) infinite;pointer-events:none}
.aiorb .plogo{opacity:.7;position:relative;z-index:1}
@keyframes hb{0%{transform:scale(1)}12%{transform:scale(1.15)}24%{transform:scale(.98)}36%{transform:scale(1.08)}52%,100%{transform:scale(1)}}
@keyframes morph{0%,100%{border-radius:50% 50% 50% 50% / 50% 50% 50% 50%}20%{border-radius:56% 44% 52% 48% / 46% 55% 45% 54%}45%{border-radius:46% 54% 57% 43% / 55% 46% 54% 45%}70%{border-radius:53% 47% 44% 56% / 48% 57% 43% 52%}}
@keyframes drop{0%,100%{transform:scale(1) translateY(0)}45%{transform:scale(1.07,1.05) translateY(-1px)}60%{transform:scale(1.05,1.07) translateY(0)}}
@keyframes halo{0%{transform:scale(.95);opacity:0}30%{opacity:.7}100%{transform:scale(1.35);opacity:0}}
.psrc2{position:relative;display:flex;align-items:center;gap:8px;margin-top:16px;height:22px}
.aimini{position:absolute;left:-4px;top:-4px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 46% 40%,rgba(15,15,13,.18) 0%,rgba(15,15,13,.09) 42%,rgba(15,15,13,0) 72%);animation:drop 3.2s cubic-bezier(.45,0,.55,1) infinite,morph 7s ease-in-out infinite;opacity:0}
.plogo.xs2{width:15px;height:15px;opacity:.85}
.fck2{width:22px;height:22px;border-radius:50%;background:#ECF3E0;display:grid;place-items:center;flex:none}.fck2 svg{width:12px;height:12px}.fck2 path{stroke-dasharray:14}
.fsl{font-size:12px;font-weight:700;color:#1E330C}
.nban.pre{opacity:0}
.gwin{position:relative}.gnext{cursor:pointer;user-select:none}
.gdone{display:none;position:absolute;inset:0;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;border-radius:inherit;background:radial-gradient(120% 90% at 50% 30%,#F4F9EC 0%,#fff 70%)}
.gdc{width:62px;height:62px;border-radius:50%;background:#ECF3E0;display:grid;place-items:center;margin-bottom:8px;box-shadow:0 10px 26px rgba(30,51,12,.16)}.gdc svg{width:48px;height:48px}
.gdc circle{stroke-dasharray:151}.gdc path{stroke-dasharray:40}
.gdone b{font-size:17px;font-weight:800;letter-spacing:-.03em;color:#0f0f0d}.gdone span{font-size:11px;font-weight:600;color:#1E330C}
.gwin.fin{box-shadow:0 0 0 1.5px #1E330C inset,0 12px 30px rgba(30,51,12,.12)}

/* ===== COCHE UNIQUE (réponses, choix multiples, lignes, to-do, étapes, offre) ===== */
.rd,.bx,.ci,.ac,.ck:not(.pop),.cc{width:19px!important;height:19px!important;border-radius:50%!important;flex:none!important;display:grid!important;place-items:center!important;box-sizing:border-box}
.rd,.bx{background:transparent!important;border:1.5px solid #C7C7CC!important}
.pop.on .rd,.pop.on .bx,.pop.ck.on .bx,.ci,.ac,.ck:not(.pop),.cc{background:#0f0f0d!important;border:1.5px solid #0f0f0d!important}
.rd svg,.bx svg,.ci svg,.ac svg,.ck:not(.pop) svg,.cc svg{width:11px!important;height:11px!important}
.rd svg path,.bx svg path,.ci svg path,.ac svg path,.ck:not(.pop) svg path,.cc svg path{stroke:#fff!important;stroke-width:2.3!important;stroke-dasharray:12;animation:ckdraw .62s cubic-bezier(.3,0,.2,1) both}
.pop.on .rd,.pop.on .bx{animation:ckpop .62s cubic-bezier(.2,.8,.2,1)}
@keyframes ckdraw{0%,20%{stroke-dashoffset:12}45%,60%{stroke-dashoffset:7.9}100%{stroke-dashoffset:0}}
@keyframes ckpop{0%{transform:scale(.6)}38%{transform:scale(1.12)}55%{transform:scale(1)}80%{transform:scale(1.07)}100%{transform:scale(1)}}
.dark .ci,.dark .ck:not(.pop){background:#fff!important;border-color:#fff!important}.dark .ci svg path,.dark .ck:not(.pop) svg path{stroke:#0f0f0d!important}
/* guide terminé : cercle très transparent, coche plus grosse et plus grasse, sans sous-titre */
.gdone span{display:none!important}
.gdc{width:74px!important;height:74px!important;background:rgba(236,243,224,.5)!important;box-shadow:none!important}
.gdc svg{width:50px!important;height:50px!important}.gdc circle{display:none}
.gdc path{stroke-width:5!important}
.gdone{background:#fff!important}
.gwin.fin{box-shadow:0 12px 30px rgba(30,51,12,.08)!important}


/* ===== écran IA : globule transparent qui réfléchit (C1 + C2) ===== */
.aiw2{display:flex;flex-direction:column}
.aihd{display:flex;flex-direction:column;align-items:center;text-align:center;margin:2px 0 10px}
.aiorb.aiglob{position:relative;width:74px!important;height:74px!important;overflow:hidden;border-radius:50%;background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.98) 0%,rgba(255,255,255,.55) 15%,rgba(255,255,255,.16) 38%,rgba(255,255,255,.05) 60%,rgba(255,255,255,0) 74%)!important;box-shadow:inset 0 -6px 14px rgba(15,15,13,.06),inset 0 4px 10px rgba(255,255,255,.75),0 10px 26px rgba(15,15,13,.07)!important;border:1px solid rgba(255,255,255,.7)!important;animation:drop 3.4s cubic-bezier(.45,0,.55,1) infinite,morph 6s ease-in-out infinite!important}
.aiorb.aiglob::after{display:none}
.aiglob i{position:absolute;border-radius:50%;filter:blur(9px);mix-blend-mode:multiply;pointer-events:none}
.aiglob .g1{width:46px;height:46px;left:-4px;top:16px;background:rgba(236,243,224,.95);animation:gl1 5.5s ease-in-out infinite}
.aiglob .g2{width:40px;height:40px;right:-6px;bottom:2px;background:rgba(200,204,194,.6);animation:gl2 6.5s ease-in-out infinite}
.aiglob .g3{width:28px;height:28px;left:24px;top:6px;background:rgba(244,249,236,.9);animation:gl3 4.5s ease-in-out infinite}
.aiglob .plogo{position:relative;z-index:2;opacity:.75}
@keyframes gl1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(18px,-10px) scale(1.15)}}
@keyframes gl2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-16px,-14px) scale(.9)}}
@keyframes gl3{0%,100%{transform:translate(0,0)}33%{transform:translate(-14px,12px)}66%{transform:translate(12px,16px)}}
.aihd .ain{font-size:14px;margin-top:10px}
.aihd .aist{font-size:11px;margin-top:2px}
.aiw2 .pht{text-align:center;margin-top:2px}
.aiw2 .air{margin-top:10px}
.aiw2 .perso{margin-top:10px;background:#fff!important;border-radius:18px;padding:11px 13px 12px;box-shadow:0 1px 8px rgba(0,0,0,.04);border:0}
.aiw2 .perso b{display:block;font-size:10px!important;font-weight:800!important;letter-spacing:.12em;text-transform:uppercase;color:#8A8A84!important}
.aiw2 .chips{margin-top:8px;gap:6px}
.aiw2 .chips span{background:#ECF3E0!important;color:#1E330C!important;border-radius:8px!important;padding:5px 9px!important;font-size:11px!important;font-weight:700!important}
/* ===== chargement : le même, plus fin ===== */
.sun{background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.98) 0%,rgba(255,255,255,.6) 18%,rgba(255,255,255,.22) 44%,rgba(255,255,255,.08) 66%,rgba(255,255,255,.02) 76%)!important;border:1px solid rgba(255,255,255,.75)!important;box-shadow:inset 0 -6px 14px rgba(15,15,13,.05),inset 0 4px 10px rgba(255,255,255,.8),0 12px 30px rgba(15,15,13,.07)!important;animation:morph 6s ease-in-out infinite}
.orb i{background:radial-gradient(circle at 35% 30%,#fff 0%,#F3F3F0 55%,#DCDCD7 100%)!important;box-shadow:0 4px 12px rgba(15,15,13,.10),inset 0 1px 1px rgba(255,255,255,.9)!important}
.dvi.dk{isolation:isolate}.dvi.dk::before{content:'';position:absolute;width:1100px;height:900px;left:50%;top:-560px;margin-left:-550px;border-radius:50%;background:conic-gradient(from 200deg,rgba(236,243,224,0),rgba(236,243,224,.5),rgba(107,127,90,.45),rgba(255,255,255,.12),rgba(236,243,224,0));filter:blur(90px);z-index:-1;pointer-events:none}

/* ===== lumière verte : toujours en haut, bouge légèrement ===== */
.ph{isolation:isolate}
.lmesh{position:absolute;left:0;right:0;top:0;height:320px;z-index:-1;pointer-events:none}
.lmesh::before{content:'';position:absolute;left:50%;top:-130px;width:300px;height:260px;margin-left:-150px;border-radius:50%;background:radial-gradient(ellipse at 50% 50%,rgba(196,218,168,.95) 0%,rgba(214,230,192,.7) 35%,rgba(236,243,224,0) 70%);filter:blur(10px);animation:lc0 7s ease-in-out infinite}
.lmesh i{position:absolute;border-radius:50%;filter:blur(40px)}
.lmesh .m1{width:230px;height:190px;left:20px;top:-120px;background:rgba(206,224,180,.95);animation:lc1 7s ease-in-out infinite}
.lmesh .m2{width:190px;height:160px;left:40px;top:-80px;background:rgba(236,243,224,.7);animation:lc2 9s ease-in-out infinite}
.lmesh .m3{width:160px;height:140px;left:55px;top:-50px;background:rgba(186,206,160,.7);animation:lc3 8s ease-in-out infinite}
.lmesh .m4{width:120px;height:100px;left:75px;top:-10px;background:rgba(255,255,255,.9);animation:lc4 6s ease-in-out infinite}
.lmesh.fast::before{animation-duration:3.5s}.lmesh.fast .m1{animation-duration:3.6s}.lmesh.fast .m2{animation-duration:4.2s}.lmesh.fast .m3{animation-duration:3.9s}.lmesh.fast .m4{animation-duration:3.2s}
@keyframes lc0{0%,100%{transform:scale(1)}50%{transform:scale(1.08,1.05)}}
@keyframes lc1{0%,100%{transform:translate(-8px,0) scale(1)}50%{transform:translate(8px,8px) scale(1.06)}}
@keyframes lc2{0%,100%{transform:translate(8px,0) scale(1)}50%{transform:translate(-8px,8px) scale(1.06)}}
@keyframes lc3{0%,100%{transform:translate(0,0)}50%{transform:translate(6px,-8px)}}
@keyframes lc4{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-6px,6px) scale(.94)}}
/* chargement */
.ldw{display:flex;flex-direction:column;align-items:center;text-align:center}
.aiorb.aiglob.big{width:104px!important;height:104px!important}
.ldw .pht.c{margin-top:22px;max-width:230px}
.lph{margin-top:10px;font-size:14px;font-weight:700;letter-spacing:-.015em;color:#3A3A3C;min-height:20px;max-width:230px}
/* page de l'IA */
.aiw3{display:flex;flex-direction:column;padding-top:30px}
.aiw3 .aihd{display:flex;flex-direction:column;align-items:center;text-align:center}
.aiw3 .aiorb.aiglob{width:84px!important;height:84px!important}
.aiw3 .ain{font-size:14px;font-weight:700;margin-top:10px}
.aiw3 .aist{font-size:11px;margin-top:2px;min-height:14px}
.aitk{position:relative;height:22px;width:230px;margin-top:8px;display:none}
.aitk span{position:absolute;left:0;right:0;text-align:center;font-size:13.5px;font-weight:700;opacity:0}
.aiw3 .aiti{text-align:center;margin:16px 0 10px}
/* frappe */
.pc.typing>*:not(.pht):not(.pbk):not(.lmesh):not(.pfl){opacity:0!important}
/* ===== CSS validé (démos v4) ===== */
.xgl{position:relative;border-radius:50%;overflow:hidden;flex:none;display:grid;place-items:center;
 background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.98) 0%,rgba(255,255,255,.55) 15%,rgba(255,255,255,.16) 38%,rgba(255,255,255,.05) 60%,rgba(255,255,255,0) 74%);
 box-shadow:inset 0 -6px 14px rgba(15,15,13,.06),inset 0 4px 10px rgba(255,255,255,.75),0 10px 26px rgba(15,15,13,.07);border:1px solid rgba(255,255,255,.7);
 animation:xdrop 3.4s cubic-bezier(.45,0,.55,1) infinite,xmorph 6s ease-in-out infinite}
.xgl i{position:absolute;border-radius:50%;filter:blur(9px);pointer-events:none}
.xgl .g1{width:62%;height:62%;left:-6%;top:22%;background:rgba(236,243,224,.95);animation:xgl1 5.5s ease-in-out infinite}
.xgl .g2{width:54%;height:54%;right:-8%;bottom:2%;background:rgba(200,204,194,.6);animation:xgl2 6.5s ease-in-out infinite}
.xgl .g3{width:38%;height:38%;left:32%;top:8%;background:rgba(244,249,236,.9);animation:xgl3 4.5s ease-in-out infinite}
.xgl .W{position:relative;z-index:2;width:34%;height:34%;background:var(--whv-logo) center/contain no-repeat;opacity:.78}
.dark .xgl{background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.55) 0%,rgba(255,255,255,.18) 18%,rgba(255,255,255,.06) 44%,rgba(255,255,255,0) 74%);border-color:rgba(255,255,255,.16);box-shadow:inset 0 -6px 14px rgba(0,0,0,.4),inset 0 4px 10px rgba(255,255,255,.12),0 0 40px rgba(236,243,224,.12)}
.dark .xgl .g1{background:rgba(236,243,224,.55)}
.dark .xgl .g2{background:rgba(107,127,90,.55)}
.dark .xgl .g3{background:rgba(255,255,255,.35)}
.dark .xgl .W{filter:invert(1);opacity:.9}
.xgl.calm{animation:xdrop 4.2s cubic-bezier(.45,0,.55,1) infinite,xmorph 8s ease-in-out infinite}
.xgl.done{animation-duration:6s,10s}
@keyframes xdrop{0%,100%{transform:scale(1)}50%{transform:scale(1.06,1.04)}}
@keyframes xmorph{0%,100%{border-radius:50%}20%{border-radius:59% 41% 54% 46%/44% 58% 42% 56%}45%{border-radius:43% 57% 60% 40%/58% 43% 57% 42%}70%{border-radius:55% 45% 41% 59%/46% 60% 40% 54%}}
@keyframes xgl1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(28%,-14%) scale(1.15)}}
@keyframes xgl2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-24%,-20%) scale(.9)}}
@keyframes xgl3{0%,100%{transform:translate(0,0)}33%{transform:translate(-30%,26%)}66%{transform:translate(24%,32%)}}
.xgl{animation:xdrop 3s cubic-bezier(.45,0,.55,1) infinite,xmorph 5s ease-in-out infinite,xflt 6s ease-in-out infinite!important}
.xgl .g1{animation-duration:4s}
.xgl .g2{animation-duration:4.8s}
.xgl .g3{animation-duration:3.4s}
.xgl.done{animation-duration:4.6s,8s,8s!important}
@keyframes xflt{0%,100%{translate:0 0}50%{translate:0 -4px}}
.xmesh{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.xmesh i{position:absolute;border-radius:50%;filter:blur(38px);will-change:transform}
.xmesh .m1{width:260px;height:260px;left:-70px;top:-90px;background:rgba(206,224,180,.95);animation:xm1 9s ease-in-out infinite}
.xmesh .m2{width:220px;height:220px;right:-80px;top:-40px;background:rgba(236,243,224,1);animation:xm2 11s ease-in-out infinite}
.xmesh .m3{width:200px;height:200px;left:20px;top:60px;background:rgba(186,206,160,.75);animation:xm3 13s ease-in-out infinite}
.xmesh .m4{width:180px;height:180px;right:-40px;top:140px;background:rgba(255,255,255,.95);animation:xm4 8s ease-in-out infinite}
@keyframes xm1{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(90px,40px) scale(1.15)}66%{transform:translate(30px,90px) scale(.9)}}
@keyframes xm2{0%,100%{transform:translate(0,0) scale(1)}40%{transform:translate(-110px,60px) scale(1.2)}75%{transform:translate(-40px,-10px) scale(.95)}}
@keyframes xm3{0%,100%{transform:translate(0,0) scale(1)}30%{transform:translate(80px,-50px) scale(1.1)}70%{transform:translate(-30px,40px) scale(1.25)}}
@keyframes xm4{0%,100%{transform:translate(0,0)}50%{transform:translate(-120px,-60px)}}
.xmesh.full .m1{top:-40px}
.xmesh.full .m3{top:220px;left:-30px}
.xmesh.full .m4{top:330px}
.xmesh.full .m2{top:120px}
.xmesh.fast i{animation-duration:6s,7s}
.xmesh.fast .m1{animation-duration:6s}
.xmesh.fast .m2{animation-duration:7s}
.xmesh.fast .m3{animation-duration:8s}
.xmesh.fast .m4{animation-duration:5.5s}
.xmesh.hue{animation:xhue 10s ease-in-out infinite}
@keyframes xhue{0%,100%{filter:none}50%{filter:hue-rotate(14deg) saturate(1.35) brightness(1.04)}}
.xmesh.swirl{animation:xswl 24s linear infinite;inset:-30%}
@keyframes xswl{to{transform:rotate(360deg)}}
.xmesh.top{bottom:auto;height:62%;-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}
.dark .xmesh .m1{background:rgba(120,150,90,.65)}
.dark .xmesh .m2{background:rgba(236,243,224,.4)}
.dark .xmesh .m3{background:rgba(90,120,70,.55)}
.dark .xmesh .m4{background:rgba(255,255,255,.18)}
.xmesh.think i{animation-duration:4s,5s}
.xmesh.think .m1{animation-duration:4.5s}
.xmesh.think .m2{animation-duration:5s}
.xmesh.think .m3{animation-duration:6s}
.xmesh.think .m4{animation-duration:4s}
.xmesh.ctr::before{content:'';position:absolute;left:50%;top:-120px;width:300px;height:260px;margin-left:-150px;border-radius:50%;background:radial-gradient(ellipse at 50% 50%,rgba(196,218,168,.95) 0%,rgba(214,230,192,.7) 35%,rgba(236,243,224,0) 70%);filter:blur(10px);animation:xc0 7s ease-in-out infinite}
@keyframes xc0{0%,100%{transform:scale(1)}50%{transform:scale(1.08,1.04)}}
.xmesh.ctr i{filter:blur(40px)}
.xmesh.ctr .m1{width:230px;height:200px;left:20px;top:-110px;background:rgba(206,224,180,.95);animation:xc1 7s ease-in-out infinite}
.xmesh.ctr .m2{width:190px;height:170px;left:40px;right:auto;top:-70px;background:rgba(236,243,224,.7);animation:xc2 9s ease-in-out infinite}
.xmesh.ctr .m3{width:160px;height:150px;left:55px;top:-40px;background:rgba(186,206,160,.7);animation:xc3 8s ease-in-out infinite}
.xmesh.ctr .m4{width:120px;height:110px;left:75px;right:auto;top:10px;background:rgba(255,255,255,.9);animation:xc4 6s ease-in-out infinite}
@keyframes xc1{0%,100%{transform:translate(-8px,0) scale(1)}50%{transform:translate(8px,6px) scale(1.06)}}
@keyframes xc2{0%,100%{transform:translate(8px,0) scale(1)}50%{transform:translate(-8px,6px) scale(1.06)}}
@keyframes xc3{0%,100%{transform:translate(0,0)}50%{transform:translate(12px,-10px)}}
@keyframes xc4{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-10px,6px) scale(.94)}}
.xmesh.ctr.more .m1{animation-duration:5s}
.xmesh.ctr.more .m2{animation-duration:6s}
.xmesh.pulse{animation:xpls 1s ease-in-out}
@keyframes xpls{50%{filter:brightness(1.06) saturate(1.3)}}
.xmesh.sat .m1{background:rgba(186,214,150,1)}
.xmesh.sat .m3{background:rgba(160,192,128,.85)}
.xmesh.conc .m1{left:10px;top:-60px}
.xmesh.conc .m2{left:40px;right:auto;top:20px}
.xmesh.conc .m3{left:60px;top:80px}
.xmesh.conc .m4{left:70px;right:auto;top:40px}
.xmesh{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.xmesh.ctr.fast::before{animation-duration:3.6s}
.xmesh.ctr.fast .m1{animation:xc1f 3.8s ease-in-out infinite}.xmesh.ctr.fast .m2{animation:xc2f 4.4s ease-in-out infinite}.xmesh.ctr.fast .m3{animation:xc3f 4s ease-in-out infinite}.xmesh.ctr.fast .m4{animation:xc4 3.2s ease-in-out infinite}
@keyframes xc1f{0%,100%{transform:translate(-14px,0) scale(1)}50%{transform:translate(14px,12px) scale(1.1)}}
@keyframes xc2f{0%,100%{transform:translate(14px,0) scale(1)}50%{transform:translate(-14px,10px) scale(1.1)}}
@keyframes xc3f{0%,100%{transform:translate(-6px,4px)}50%{transform:translate(8px,-12px)}}


.xmesh.ctr.fast::before{width:380px;height:330px;margin-left:-190px;top:-150px}
.xmesh.ctr.fast .m1{width:300px;height:260px;left:-15px;top:-140px}
.xmesh.ctr.fast .m2{width:260px;height:220px;left:5px;top:-95px}
.xmesh.ctr.fast .m3{width:230px;height:200px;left:20px;top:-50px;background:rgba(186,206,160,.85)}
.xmesh.ctr.fast .m4{width:170px;height:150px;left:50px;top:10px}
.ldw .xgl{margin:0 auto}.aiw3 .aihd .xgl{margin:0 auto}
.pc.typing-open>.po,.pc.typing-open>.pop{opacity:0!important}
/* ===== I1 J1 exacts ===== */
.v5s header{max-width:1440px;margin:0 auto;padding:40px 32px 10px}
.v5s h1{margin:0;font-size:32px;letter-spacing:-.04em;font-weight:800}
.v5s .sub{margin-top:8px;color:#6C6C70;font-size:15px;font-weight:500;max-width:780px;line-height:1.5}
.v5s .grid{max-width:1440px;margin:0 auto;padding:24px 32px 80px;display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:34px 22px}
.v5s .card{display:flex;flex-direction:column;align-items:center}
.v5s{position:relative;width:270px;height:560px;border-radius:40px;background:linear-gradient(180deg,#F6F6F4,#F1F1EE);overflow:hidden;box-shadow:0 0 0 8px #0B0B0B,0 18px 40px rgba(0,0,0,.16);isolation:isolate}
.v5s.dk{background:#000;color:#fff}
.v5s .lab{margin-top:18px;text-align:center;max-width:270px}
.v5s .lab b{font-size:14px;letter-spacing:-.01em}
.v5s .lab>span{display:block;font-size:12px;color:#8A8A84;font-weight:600;margin-top:3px;line-height:1.4}
.v5s .tag{display:inline-block;font-size:10px;font-weight:800;background:#0f0f0d;color:#fff;border-radius:6px;padding:2px 6px;margin-right:6px;vertical-align:1px}
.v5s .in{position:absolute;inset:0;padding:38px 16px 0;display:flex;flex-direction:column}
.v5s .cta{position:absolute;left:18px;right:18px;bottom:20px;height:44px;border-radius:22px;background:#0f0f0d;color:#fff;display:grid;place-items:center;font-size:13.5px;font-weight:700}
.v5s.dk .cta{background:#ECF3E0;color:#0f0f0d}
.v5s .nm{font-size:14px;font-weight:700;letter-spacing:-.01em}
.v5s .st{font-size:11px;color:#8A8A84;font-weight:600;margin-top:2px;min-height:14px}
.v5s .shim{background:linear-gradient(90deg,#8A8A84 0%,#8A8A84 40%,#D9D9D4 50%,#8A8A84 60%,#8A8A84 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:v5sh 1.8s linear infinite}
.v5s.dk .shim{background-image:linear-gradient(90deg,#6C6C70 0%,#6C6C70 40%,#fff 50%,#6C6C70 60%,#6C6C70 100%)}
@keyframes v5sh{from{background-position:120% 0}to{background-position:-120% 0}}
.v5s .ti{font-size:19px;white-space:nowrap;font-weight:800;letter-spacing:-.035em;line-height:1.12}
.v5s .box{background:#fff;border-radius:18px;box-shadow:0 1px 3px rgba(0,0,0,.04),0 10px 24px rgba(0,0,0,.05)}
.v5s.dk .box{background:rgba(255,255,255,.07);box-shadow:none}
.v5s .rw{display:flex;align-items:center;gap:10px;padding:8px 13px;border-top:.5px solid #EFEFED}
.v5s .rw:first-child{border-top:0}
.v5s.dk .rw{border-color:rgba(255,255,255,.07)}
.v5s .rw b{display:block;font-size:12.5px;font-weight:700;letter-spacing:-.01em}
.v5s .rw em{display:block;font-style:normal;font-size:10.5px;color:#A6A6A0;font-weight:600;margin-top:1px}
.v5s .pk{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#8A8A84}
.v5s .chip{display:inline-block;white-space:nowrap;background:#ECF3E0;color:#1E330C;border-radius:8px;padding:5px 9px;font-size:11px;font-weight:700}
.v5s.dk .chip{background:rgba(236,243,224,.14);color:#ECF3E0}
.v5s .ck{width:19px;height:19px;border-radius:50%;flex:none;display:grid;place-items:center;border:1.5px solid #C7C7CC;background:transparent}
.v5s .ck svg{width:11px;height:11px}
.v5s .ck svg path{stroke:#fff;stroke-width:2.3;stroke-dasharray:12;stroke-dashoffset:12}
.v5s .ck.on{background:#0f0f0d;border-color:#0f0f0d;animation:v5ckpop .62s cubic-bezier(.2,.8,.2,1) both}
.v5s .ck.on svg path{animation:v5ckdraw .62s cubic-bezier(.3,0,.2,1) both}
.v5s.dk .ck{border-color:#48484A}
.v5s.dk .ck.on{background:#fff;border-color:#fff}
.v5s.dk .ck svg path{stroke:#0f0f0d}
@keyframes v5ckdraw{0%,20%{stroke-dashoffset:12}45%,60%{stroke-dashoffset:7.9}100%{stroke-dashoffset:0}}
@keyframes v5ckpop{0%{transform:scale(.6)}38%{transform:scale(1.12)}55%{transform:scale(1)}80%{transform:scale(1.07)}100%{transform:scale(1)}}
.v5s .gl{position:relative;border-radius:50%;overflow:hidden;flex:none;display:grid;place-items:center;
 background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.98) 0%,rgba(255,255,255,.55) 15%,rgba(255,255,255,.16) 38%,rgba(255,255,255,.05) 60%,rgba(255,255,255,0) 74%);
 box-shadow:inset 0 -6px 14px rgba(15,15,13,.06),inset 0 4px 10px rgba(255,255,255,.75),0 10px 26px rgba(15,15,13,.07);border:1px solid rgba(255,255,255,.7);
 animation:v5drop 3.4s cubic-bezier(.45,0,.55,1) infinite,v5morph 6s ease-in-out infinite}
.v5s .gl i{position:absolute;border-radius:50%;filter:blur(9px);pointer-events:none}
.v5s .gl .g1{width:62%;height:62%;left:-6%;top:22%;background:rgba(236,243,224,.95);animation:v5gl1 5.5s ease-in-out infinite}
.v5s .gl .g2{width:54%;height:54%;right:-8%;bottom:2%;background:rgba(200,204,194,.6);animation:v5gl2 6.5s ease-in-out infinite}
.v5s .gl .g3{width:38%;height:38%;left:32%;top:8%;background:rgba(244,249,236,.9);animation:v5gl3 4.5s ease-in-out infinite}
.v5s .gl .W{position:relative;z-index:2;width:34%;height:34%;background:var(--whv-logo) center/contain no-repeat;opacity:.78}
.v5s.dk .gl{background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.55) 0%,rgba(255,255,255,.18) 18%,rgba(255,255,255,.06) 44%,rgba(255,255,255,0) 74%);border-color:rgba(255,255,255,.16);box-shadow:inset 0 -6px 14px rgba(0,0,0,.4),inset 0 4px 10px rgba(255,255,255,.12),0 0 40px rgba(236,243,224,.12)}
.v5s.dk .gl .g1{background:rgba(236,243,224,.55)}
.v5s.dk .gl .g2{background:rgba(107,127,90,.55)}
.v5s.dk .gl .g3{background:rgba(255,255,255,.35)}
.v5s.dk .gl .W{filter:invert(1);opacity:.9}
.v5s .gl.calm{animation:v5drop 4.2s cubic-bezier(.45,0,.55,1) infinite,v5morph 8s ease-in-out infinite}
.v5s .gl.done{animation-duration:6s,10s}
@keyframes v5drop{0%,100%{transform:scale(1)}50%{transform:scale(1.06,1.04)}}
@keyframes v5morph{0%,100%{border-radius:50%}20%{border-radius:59% 41% 54% 46%/44% 58% 42% 56%}45%{border-radius:43% 57% 60% 40%/58% 43% 57% 42%}70%{border-radius:55% 45% 41% 59%/46% 60% 40% 54%}}
@keyframes v5gl1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(28%,-14%) scale(1.15)}}
@keyframes v5gl2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-24%,-20%) scale(.9)}}
@keyframes v5gl3{0%,100%{transform:translate(0,0)}33%{transform:translate(-30%,26%)}66%{transform:translate(24%,32%)}}
@keyframes v5ring{0%{transform:scale(.8);opacity:0}25%{opacity:.5}100%{transform:scale(1.7);opacity:0}}
.v5s .light{position:absolute;width:440px;height:440px;left:50%;top:-250px;margin-left:-220px;border-radius:50%;background:conic-gradient(from 200deg,rgba(220,232,204,0),rgba(214,229,192,1),rgba(186,204,160,.8),rgba(255,255,255,.6),rgba(220,232,204,0));filter:blur(44px);z-index:-1;pointer-events:none}
.v5s.dk .light{background:conic-gradient(from 200deg,rgba(236,243,224,0),rgba(236,243,224,.55),rgba(107,127,90,.5),rgba(255,255,255,.14),rgba(236,243,224,0));filter:blur(52px)}
.v5s .fade{opacity:0}
.v5s .gl{animation:v5drop 3s cubic-bezier(.45,0,.55,1) infinite,v5morph 5s ease-in-out infinite,v5flt 6s ease-in-out infinite!important}
.v5s .gl .g1{animation-duration:4s}
.v5s .gl .g2{animation-duration:4.8s}
.v5s .gl .g3{animation-duration:3.4s}
.v5s .gl.done{animation-duration:4.6s,8s,8s!important}
@keyframes v5flt{0%,100%{translate:0 0}50%{translate:0 -4px}}
.v5s .mesh{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.v5s .mesh i{position:absolute;border-radius:50%;filter:blur(38px);will-change:transform}
.v5s .mesh .m1{width:260px;height:260px;left:-70px;top:-90px;background:rgba(206,224,180,.95);animation:v5m1 9s ease-in-out infinite}
.v5s .mesh .m2{width:220px;height:220px;right:-80px;top:-40px;background:rgba(236,243,224,1);animation:v5m2 11s ease-in-out infinite}
.v5s .mesh .m3{width:200px;height:200px;left:20px;top:60px;background:rgba(186,206,160,.75);animation:v5m3 13s ease-in-out infinite}
.v5s .mesh .m4{width:180px;height:180px;right:-40px;top:140px;background:rgba(255,255,255,.95);animation:v5m4 8s ease-in-out infinite}
@keyframes v5m1{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(90px,40px) scale(1.15)}66%{transform:translate(30px,90px) scale(.9)}}
@keyframes v5m2{0%,100%{transform:translate(0,0) scale(1)}40%{transform:translate(-110px,60px) scale(1.2)}75%{transform:translate(-40px,-10px) scale(.95)}}
@keyframes v5m3{0%,100%{transform:translate(0,0) scale(1)}30%{transform:translate(80px,-50px) scale(1.1)}70%{transform:translate(-30px,40px) scale(1.25)}}
@keyframes v5m4{0%,100%{transform:translate(0,0)}50%{transform:translate(-120px,-60px)}}
.v5s .mesh.full .m1{top:-40px}
.v5s .mesh.full .m3{top:220px;left:-30px}
.v5s .mesh.full .m4{top:330px}
.v5s .mesh.full .m2{top:120px}
.v5s .mesh.fast i{animation-duration:6s,7s}
.v5s .mesh.fast .m1{animation-duration:6s}
.v5s .mesh.fast .m2{animation-duration:7s}
.v5s .mesh.fast .m3{animation-duration:8s}
.v5s .mesh.fast .m4{animation-duration:5.5s}
.v5s .mesh.hue{animation:v5hue 10s ease-in-out infinite}
@keyframes v5hue{0%,100%{filter:none}50%{filter:hue-rotate(14deg) saturate(1.35) brightness(1.04)}}
.v5s .mesh.swirl{animation:v5swl 24s linear infinite;inset:-30%}
@keyframes v5swl{to{transform:rotate(360deg)}}
.v5s .mesh.top{bottom:auto;height:62%;-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}
.v5s.dk .mesh .m1{background:rgba(120,150,90,.65)}
.v5s.dk .mesh .m2{background:rgba(236,243,224,.4)}
.v5s.dk .mesh .m3{background:rgba(90,120,70,.55)}
.v5s.dk .mesh .m4{background:rgba(255,255,255,.18)}
.v5s .mesh.think i{animation-duration:4s,5s}
.v5s .mesh.think .m1{animation-duration:4.5s}
.v5s .mesh.think .m2{animation-duration:5s}
.v5s .mesh.think .m3{animation-duration:6s}
.v5s .mesh.think .m4{animation-duration:4s}
.v5s .bok{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.v5s .bok b{position:absolute;bottom:-20px;border-radius:50%;background:rgba(255,255,255,.75);box-shadow:0 0 12px rgba(236,243,224,.9);animation:v5bk linear infinite}
@keyframes v5bk{from{transform:translateY(0);opacity:0}15%{opacity:1}to{transform:translateY(-600px);opacity:0}}
.v5s .tk{position:relative;height:20px;overflow:hidden;margin-top:6px;width:220px}
.v5s .tk span{position:absolute;left:0;right:0;text-align:center;font-size:12.5px;font-weight:700;opacity:0}
.v5s .tkh{display:flex;gap:6px;justify-content:center;margin-top:8px;min-height:24px}
.v5s .mq{width:220px;overflow:hidden;margin-top:8px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
.v5s .mq div{display:flex;gap:16px;white-space:nowrap;font-size:12px;font-weight:700;animation:v5mq 5s linear infinite;width:max-content}
@keyframes v5mq{to{transform:translateX(-50%)}}
.v5s .after{opacity:0}
.v5s .ph1{font-size:15px;font-weight:700;letter-spacing:-.02em;text-align:center;min-height:22px;color:#3A3A3C}
.v5s.dk .ph1{color:#E5E5EA}
.v5s .row3{max-width:1440px;margin:0 auto;padding:18px 32px 10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:30px 22px}
.v5s .sec{max-width:1440px;margin:0 auto;padding:30px 32px 0}
.v5s .sec h2{margin:0;font-size:24px;letter-spacing:-.03em}
.v5s .sec p{margin:6px 0 0;color:#6C6C70;font-size:14px;font-weight:500}
.v5s .mesh.ctr::before{content:'';position:absolute;left:50%;top:-120px;width:300px;height:260px;margin-left:-150px;border-radius:50%;background:radial-gradient(ellipse at 50% 50%,rgba(196,218,168,.95) 0%,rgba(214,230,192,.7) 35%,rgba(236,243,224,0) 70%);filter:blur(10px);animation:v5c0 7s ease-in-out infinite}
@keyframes v5c0{0%,100%{transform:scale(1)}50%{transform:scale(1.08,1.04)}}
.v5s .mesh.ctr i{filter:blur(40px)}
.v5s .mesh.ctr .m1{width:230px;height:200px;left:20px;top:-110px;background:rgba(206,224,180,.95);animation:v5c1 7s ease-in-out infinite}
.v5s .mesh.ctr .m2{width:190px;height:170px;left:40px;right:auto;top:-70px;background:rgba(236,243,224,.7);animation:v5c2 9s ease-in-out infinite}
.v5s .mesh.ctr .m3{width:160px;height:150px;left:55px;top:-40px;background:rgba(186,206,160,.7);animation:v5c3 8s ease-in-out infinite}
.v5s .mesh.ctr .m4{width:120px;height:110px;left:75px;right:auto;top:10px;background:rgba(255,255,255,.9);animation:v5c4 6s ease-in-out infinite}
@keyframes v5c1{0%,100%{transform:translate(-8px,0) scale(1)}50%{transform:translate(8px,6px) scale(1.06)}}
@keyframes v5c2{0%,100%{transform:translate(8px,0) scale(1)}50%{transform:translate(-8px,6px) scale(1.06)}}
@keyframes v5c3{0%,100%{transform:translate(0,0)}50%{transform:translate(12px,-10px)}}
@keyframes v5c4{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-10px,6px) scale(.94)}}
.v5s .mesh.ctr.more .m1{animation-duration:5s}
.v5s .mesh.ctr.more .m2{animation-duration:6s}
.v5s .mesh.pulse{animation:v5pls 1s ease-in-out}
@keyframes v5pls{50%{filter:brightness(1.06) saturate(1.3)}}
.v5s .mesh.sat .m1{background:rgba(186,214,150,1)}
.v5s .mesh.sat .m3{background:rgba(160,192,128,.85)}
.v5s .mesh.conc .m1{left:10px;top:-60px}
.v5s .mesh.conc .m2{left:40px;right:auto;top:20px}
.v5s .mesh.conc .m3{left:60px;top:80px}
.v5s .mesh.conc .m4{left:70px;right:auto;top:40px}
.v5s .inf{position:relative;height:44px;width:230px;margin-top:8px}
.v5s .inf>*{position:absolute;left:0;right:0;text-align:center;opacity:0}
.v5s .lv span{display:block;font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#A6A6A0}
.v5s .lv b{display:block;font-size:15px;font-weight:800;letter-spacing:-.02em;margin-top:2px}
.v5s.dk .lv b{color:#fff}
.v5s .flip{perspective:600px}
.v5s .flip .fc{width:150px;margin:0 auto;padding:9px 0;border-radius:12px;background:#fff;box-shadow:0 6px 18px rgba(15,15,13,.08);font-size:13px;font-weight:800;backface-visibility:hidden}
.v5s .orbw{position:absolute;left:50%;top:50%;width:0;height:0}
.v5s .orbw span{position:absolute;white-space:nowrap;font-size:11px;font-weight:700;background:rgba(255,255,255,.85);border-radius:999px;padding:4px 9px;box-shadow:0 4px 12px rgba(15,15,13,.06);transform:translate(-50%,-50%)}
.v5s .hl{font-size:13.5px;font-weight:600;line-height:1.55;color:#6C6C70;text-align:center;width:232px;margin-top:8px}
.v5s .hl mark{background:linear-gradient(transparent 0,transparent 0);color:#6C6C70;padding:1px 2px;border-radius:4px;transition:background .5s,color .5s}
.v5s .hl mark.on{background:#ECF3E0;color:#1E330C}
.v5s .stack{position:relative;width:230px;height:100px;margin-top:8px}
.v5s .stack .nt{position:absolute;left:0;right:0;top:0;background:rgba(255,255,255,.92);border-radius:14px;padding:9px 12px;display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:700;box-shadow:0 8px 22px rgba(15,15,13,.08);opacity:0}
.v5s .cur{display:inline-block;width:1.5px;height:14px;background:#0f0f0d;margin-left:1px;vertical-align:-2px;animation:v5blink 1s steps(2) infinite}
@keyframes v5blink{50%{opacity:0}}
.v5s .qph{position:absolute;inset:0;padding:60px 18px 0}
.v5s .qti{font-size:21px;font-weight:800;letter-spacing:-.035em;line-height:1.15;min-height:50px}
.v5s .qop{background:#fff;border-radius:16px;padding:14px;margin-top:9px;font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:11px;opacity:0;box-shadow:0 1px 3px rgba(0,0,0,.03)}
.v5s .qop i{width:19px;height:19px;border-radius:50%;border:1.5px solid #C7C7CC;flex:none}
.v5s .hap{position:absolute;right:16px;top:20px;font-size:10px;font-weight:800;color:#A6A6A0;letter-spacing:.06em}
.v5s .hap.on{color:#1E330C}
.v5s .gl .wv{position:absolute;left:-60%;width:220%;height:70%;bottom:-8%;z-index:1;pointer-events:none}
.v5s .gl .wv svg{width:100%;height:100%;display:block}
.v5s .gl .wv.a{animation:v5wvx 4.2s linear infinite}
.v5s .gl .wv.b{animation:v5wvx 6.4s linear infinite reverse;bottom:-14%;opacity:.8}
@keyframes v5wvx{from{transform:translateX(0)}to{transform:translateX(-27.27%)}}
.v5s .gl .wv.lvl{transition:bottom 1.2s cubic-bezier(.4,0,.2,1)}
.v5s .gl .bb{position:absolute;bottom:-10%;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.95),rgba(255,255,255,.35) 60%,rgba(255,255,255,0));border:.5px solid rgba(255,255,255,.7);z-index:2;animation:v5bub linear infinite;pointer-events:none}
@keyframes v5bub{0%{transform:translateY(0) translateX(0);opacity:0}15%{opacity:.95}50%{transform:translateY(-55%) translateX(3px)}100%{transform:translateY(-120%) translateX(-3px);opacity:0}}
.v5s .rgw2{position:relative;display:grid;place-items:center}
.v5s .rgw2 .rp{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(15,15,13,.12);animation:v5rp 2.8s cubic-bezier(.2,.8,.2,1) infinite;opacity:0}
@keyframes v5rp{0%{transform:scale(.9);opacity:0}20%{opacity:.7}100%{transform:scale(1.7);opacity:0}}
.v5s .tick2{position:relative;height:22px;width:230px;margin-top:8px}
.v5s .tick2 span{position:absolute;left:0;right:0;text-align:center;font-size:13.5px;font-weight:700;opacity:0}
.v5s .ldp{margin-top:10px;font-size:14px;font-weight:700;letter-spacing:-.015em;color:#3A3A3C;min-height:40px;max-width:230px;text-align:center;opacity:0}
.v5s.dk .ldp{color:#E5E5EA}
.v5s .pgb{position:absolute;left:20px;right:20px;top:44px;height:3px;border-radius:2px;background:#E1E1DD;overflow:hidden}
.v5s .pgb i{display:block;height:100%;background:#111;border-radius:2px}
.v5s .op1{position:absolute;inset:0;padding:70px 18px 0}
.v5s .op1 .lg{width:30px;height:30px;background:var(--whv-logo) center/contain no-repeat;opacity:0}
.v5s .op1 .h{font-size:27px;font-weight:800;letter-spacing:-.04em;line-height:1.08;margin-top:12px;min-height:58px}
.v5s .op1 .b{font-size:13px;color:#8A8A84;font-weight:500;margin-top:8px;min-height:18px}
.v5s .op1 .q{font-size:13px;font-weight:700;color:#6C6C70;margin-top:16px;min-height:18px}
.v5s .opx{background:#fff;border-radius:16px;padding:14px;margin-top:9px;font-size:13.5px;font-weight:700;display:flex;align-items:center;gap:11px;opacity:0;box-shadow:0 1px 3px rgba(0,0,0,.03)}
.v5s .opx i{width:19px;height:19px;border-radius:50%;border:1.5px solid #C7C7CC;flex:none}
.v5s .emo{position:absolute;inset:0;padding:64px 18px 0}
.v5s .emo .k{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#1E330C}
.v5s .emo .h{font-size:24px;font-weight:800;letter-spacing:-.035em;line-height:1.1;margin-top:8px}
.v5s .emo .b{font-size:13px;color:#6C6C70;font-weight:500;line-height:1.5;margin-top:10px}
.v5s{position:absolute!important;inset:0!important;width:auto!important;height:auto!important;border-radius:0!important;box-shadow:none!important;overflow:hidden;isolation:isolate;z-index:5;background:linear-gradient(180deg,#F6F6F4,#F1F1EE)!important}
.v5s .cta{cursor:pointer}
.v5s.done .ti,.v5s.done .box,.v5s.done .cta{opacity:1!important}
.v5s.done .st{color:#8A8A84}

.ph.mob:has(.v5s){height:560px}
.ph:has(.v5s) .sb{visibility:hidden}

/* ===== roue de dates ===== */
.whl{position:relative;display:flex;height:170px;margin-top:22px;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.03),0 10px 24px rgba(0,0,0,.04);user-select:none;-webkit-user-select:none}
.wsel{position:absolute;left:8px;right:8px;top:68px;height:34px;border-radius:10px;background:#F2F2F0;pointer-events:none}
.wcol{position:relative;flex:1;height:100%;overflow-y:scroll;scroll-snap-type:y mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;-webkit-mask-image:linear-gradient(transparent 0,#000 30%,#000 70%,transparent 100%);mask-image:linear-gradient(transparent 0,#000 30%,#000 70%,transparent 100%);touch-action:pan-y}
.wcol::-webkit-scrollbar{display:none}
.wpad{height:68px}
.wit{height:34px;line-height:34px;text-align:center;scroll-snap-align:center;font-size:17px;font-weight:600;color:#C7C7CC;font-variant-numeric:tabular-nums;transition:color .12s,transform .12s}
.wit.n1{color:#8A8A84}
.wit.on{color:#0f0f0d;font-weight:800;transform:scale(1.04)}
.wcol[data-k="m"] .wit{font-size:16px}
.ph:has(ag-screen) .sb,.ph:has(ag-screen) .pg,.ph:has(ag-screen) .pc>*:not(ag-screen){visibility:hidden}
.ph:has(ag-screen){position:relative}
ag-screen{position:absolute;inset:0;display:block}
.dvi:has(ag-screen)>.top{visibility:hidden}
.v5s .v5rb{background:#fff;border-radius:18px;box-shadow:0 1px 3px rgba(0,0,0,.04),0 10px 24px rgba(0,0,0,.05)}
.v5s.done .v5rb{opacity:1!important}
.pcta.dis{opacity:.25;pointer-events:none}
.v5s .ck.bl{background:#0f0f0d;border-color:#0f0f0d}
.orw b{white-space:nowrap}
.orw strong{margin-left:auto;flex:none}

.rvw{position:absolute;inset:0;background:rgba(0,0,0,.2);display:grid;place-items:center;z-index:5}
.rvc{width:74%;max-width:270px;background:rgba(246,246,246,.97);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:14px;text-align:center;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.18)}
.rvi{width:52px;height:52px;margin:18px auto 10px;border-radius:12px;background:#fff;box-shadow:0 0 0 .5px rgba(0,0,0,.12);display:grid;place-items:center}.rvi .plogo{width:30px;height:30px;margin:0;opacity:1}
.rvc b{display:block;font-size:15px;font-weight:700;letter-spacing:-.01em;padding:0 14px}.rvc>span{display:block;font-size:12.5px;color:#3C3C43;padding:4px 16px 0;line-height:1.35}
.rvs{display:flex;justify-content:center;gap:6px;padding:12px 0 14px}.rvs i{width:26px;height:26px;cursor:pointer}.rvs svg{width:100%;height:100%;fill:none;stroke:#0f0f0d;stroke-width:1.4;stroke-linejoin:round;transition:fill .15s}.rvs i.on svg{fill:#0f0f0d}
.rvb{border-top:.5px solid rgba(60,60,67,.29);padding:11px 0;font-size:15px;font-weight:600;cursor:pointer}
.rq strong{background:#ECF3E0;color:#1E330C;border-radius:10px;padding:6px 11px}
/* ===== téléphone : démo iPhone, CSS 994 → fin ===== */
@media (max-width:767px){
html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:#F1F1EE;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
body.dk{background:#000}
#app{position:fixed;inset:0;overflow:hidden}
.box{position:absolute;left:50%;top:50%;transform-origin:center center}
.box .ph{box-shadow:none!important;border-radius:0!important}
body.frame .box .ph{border-radius:40px!important;box-shadow:0 0 0 8px #0B0B0B,0 30px 70px rgba(0,0,0,.25)!important}
body.frame{background:#E4E4E1}body.frame.dk{background:#E4E4E1}
.box .pop,.box .pcta,.box .pcta2,.box .pbk,.box .plink,.box .gnext,.box .opl,.box .fqq{cursor:pointer}
.box.cg .cgp{border-radius:0!important;box-shadow:none!important}
body.frame .box.cg .cgp{border-radius:44px!important;box-shadow:0 0 0 8px #0B0B0B,0 30px 70px rgba(0,0,0,.25)!important}
.box.cg .cgp:not(.lt) .in{overflow:hidden}
.bk2{position:absolute;left:10px;top:40px;width:30px;height:30px;display:grid;place-items:center;font:400 26px/1 Inter,system-ui;color:#888;z-index:9;cursor:pointer}
.box.cg .cgp:not(.lt)~.bk2,.dk .bk2{color:rgba(255,255,255,.6)}
.sf b.wait{color:#B5B5B0!important;animation:shim 1s ease-in-out infinite}
@keyframes shim{50%{opacity:.35}}
#fin{position:fixed;left:-999px;top:0;opacity:0}

body.dk .box,body.dk .box .ph{background:#000}
body.dk #app{background:#000}
.palert span{cursor:pointer}
}
/* ===== tablette : démo tablette, CSS 994 → fin ===== */
@media (min-width:768px) and (max-width:1023px){
/* ===== mise en page PC et tablette ===== */
html,body{overflow:auto;height:auto;min-height:100%;background:#F4F4F2}
#app{position:relative;min-height:100vh;display:flex;flex-direction:column;background:#F4F4F2;font-family:Inter,-apple-system,system-ui,sans-serif}
.top{display:flex;align-items:center;gap:24px;padding:22px 48px}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:16px;letter-spacing:-.02em;flex:none}
.plogo.xs{width:22px;height:22px;border-radius:50%;background-color:#fff;background-size:62%;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.prog{flex:1;height:4px;border-radius:2px;background:#E4E4E1;overflow:hidden}.prog i{display:block;height:100%;background:#0f0f0d;border-radius:2px;transition:width .5s cubic-bezier(.2,.8,.2,1)}
.cnt{font-size:12px;font-weight:700;color:#8A8A84;flex:none}
.stage{flex:1;display:flex;align-items:center;justify-content:center;padding:10px 48px 90px}
.stage.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;max-width:1240px;margin:0 auto;width:100%}
.ph.mob{position:relative;width:300px;height:auto;min-height:0;border-radius:0;box-shadow:none;background:transparent;overflow:visible;zoom:1.6;margin:0}
.ph.mob .pc{position:static;height:auto;padding:0;display:block}
.ph.mob .pfl{display:none!important}.ph.mob .pbk{display:none}
.left.q{justify-self:end;width:480px}.left.q .ph.mob{zoom:1.6}
.left.q .pcta{margin-top:16px;cursor:pointer}.left.q .pop{cursor:pointer}
.ph.mob.cm .pht{font-size:26px}.ph.mob.cm .pcta2{margin-top:8px}
.keys{margin-top:18px;font-size:12px;color:#A6A6A0;font-weight:600}
.left.t{justify-self:end;width:480px}
.left.t .kick{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8A8A84;min-height:14px}
.left.t h1{margin:12px 0 0;font-size:46px;line-height:1.06;letter-spacing:-.04em;font-weight:800;text-wrap:balance}
.left.t p{margin:16px 0 0;font-size:18px;line-height:1.5;color:#6C6C70;font-weight:500;max-width:440px}
.go{margin-top:30px;height:54px;padding:0 34px;border:0;border-radius:27px;background:#0f0f0d;color:#fff;font:600 16px Inter,system-ui;cursor:pointer}
.right{justify-self:start;width:500px}
.right.v .ph.mob{zoom:1.55}
.right.v .ph.mob .pht,.right.v .ph.mob .phb,.right.v .ph.mob .pcta,.right.v .ph.mob .pcta2,.right.v .ph.mob .plink,.right.v .ph.mob .pkick:first-child{display:none}
.right.v .ph.mob.vis{background:transparent}
.right.v .ph.dark{background:radial-gradient(120% 60% at 50% 18%,#1A2414 0%,#000 62%);border-radius:28px;padding:18px;color:#fff}
.right.v .ph.dark .pht,.right.v .ph.dark .phb{display:block}
.right.v .ph.mob .sol{margin-top:6px}
.right.v .ph.mob .pt-load .pht,.right.v .ph.mob .pht.c{display:block}
.sum{background:#fff;border-radius:28px;padding:26px 26px 18px;box-shadow:0 1px 3px rgba(0,0,0,.04),0 20px 50px rgba(0,0,0,.06)}
.sumk{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8A8A84;margin-bottom:10px}
.sr{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:.5px solid #EDEDEB}.sr:first-of-type{border-top:0}
.sr .ci{width:20px;height:20px;border-radius:50%;background:#0f0f0d;display:grid;place-items:center;flex:none}
.sr em{display:block;font-style:normal;font-size:11.5px;color:#A6A6A0;font-weight:600}.sr b{display:block;font-size:15px;font-weight:700;margin-top:2px}
.sr0{font-size:14px;color:#A6A6A0;font-weight:500;padding:14px 0 8px}
/* dernière page : pleine largeur, deux colonnes */
.stage.fin{background:radial-gradient(90% 70% at 30% 20%,#1A2414 0%,#000 60%);margin:0 24px 80px;border-radius:32px;padding:56px}
.stage.fin .cgx,.stage.off .cgx{width:100%;max-width:1080px}
.stage.fin .cgp,.stage.off .cgp{width:100%!important;height:auto!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;overflow:visible!important}
.stage.fin .cgp .sb,.stage.off .cgp .sb,.cgp .tick{display:none!important}
.stage.fin .cgp .in{position:static!important;display:grid!important;grid-template-columns:1.1fr .9fr;column-gap:64px;row-gap:0;align-items:start;zoom:1.25}
.stage.fin .cgp .in>*{grid-column:1}
.stage.fin .cgp .in .hk{text-align:left;margin-top:0}.stage.fin .cgp .in .hero{text-align:left;font-size:78px}.stage.fin .cgp .in .hs{text-align:left}
.stage.fin .cgp .in .pr{text-align:left;font-size:22px}
.stage.fin .cgp .in .st{grid-column:2;grid-row:1 / span 6;margin-top:0;align-self:center;gap:10px}
.stage.fin .cgp .in .st .s b{font-size:15px}.stage.fin .cgp .in .st .s em{font-size:10.5px}
.stage.fin .cgp .in .cta{grid-column:2;margin-top:18px;max-width:320px}
.stage.off{padding:10px 48px 90px}
.stage.off .cgp .osc{position:static!important;overflow:visible!important}
.stage.off .cgp .in2{display:grid!important;grid-template-columns:1fr 1fr;column-gap:56px;align-items:start;zoom:1.3;padding:0}
.stage.off .cgp .in2>*{grid-column:2}
.stage.off .cgp .in2 .ot{grid-column:1;grid-row:1;font-size:30px;margin-top:0}
.stage.off .cgp .in2 .orows{grid-column:1;grid-row:2 / span 6;margin-top:16px}
.stage.off .cgp .in2 .orh2,.stage.off .cgp .in2 .orh2~.opl,.stage.off .cgp .in2 .orh2~.ofr,.stage.off .cgp .in2>div[style*="height:110px"]{display:none!important}
.stage.off .cgp .in2 .opl:first-of-type{margin-top:0!important}
.stage.off .cgp .obar{position:static!important;background:none!important;padding:14px 0 0!important;max-width:none;zoom:1.3;width:calc(50% - 28px);margin-left:auto}
.stage.off .cgp{display:flex;flex-direction:column}
/* barre de démo */
#bar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:8px;align-items:center;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-radius:999px;padding:7px 9px;box-shadow:0 8px 30px rgba(0,0,0,.12);z-index:50;font:600 13px Inter,system-ui}
#bar select{border:0;background:#F2F2F0;border-radius:999px;padding:8px 12px;font:600 13px Inter,system-ui;color:#0f0f0d}
#bar button{border:0;background:#0f0f0d;color:#fff;border-radius:50%;width:34px;height:34px;font-size:14px;cursor:pointer}
#pos{min-width:56px;text-align:center;color:#6C6C70}
/* ===== tablette ===== */
html[data-mode="tab"] body{background:#E4E4E1;overflow:hidden;height:100vh}
#dev{position:absolute;left:50%;top:20px;transform-origin:top center;margin-left:0}
#frame{position:relative;border-radius:46px;background:#F4F4F2;box-shadow:0 0 0 18px #0B0B0B,0 40px 90px rgba(0,0,0,.28);overflow:hidden}
html[data-mode="tab"] #app{min-height:100%;height:100%;overflow:auto}
html[data-mode="tab"] .top{padding:20px 34px}
html[data-mode="tab"] .stage{padding:6px 34px 40px}
html[data-mode="tab"] .stage.two{grid-template-columns:1fr;gap:28px;justify-items:center;align-content:start}
html[data-mode="tab"] .left.q,html[data-mode="tab"] .left.t{justify-self:center;width:560px}
html[data-mode="tab"] .left.q .ph.mob{zoom:1.85}
html[data-mode="tab"] .right{justify-self:center;width:560px}
html[data-mode="tab"] .right.v .ph.mob{zoom:1.7}
html[data-mode="tab"] .stage.two .right.v{order:-1}
html[data-mode="tab"] .left.t h1{font-size:40px}
html[data-mode="tab"] .sum{padding:20px 22px 12px}
html[data-mode="tab"] .stage.fin{margin:0 20px 30px;padding:40px 34px}
html[data-mode="tab"] .stage.fin .cgp .in{grid-template-columns:1fr;zoom:1.35}
html[data-mode="tab"] .stage.fin .cgp .in .st{grid-column:1;grid-row:auto;margin-top:18px}
html[data-mode="tab"] .stage.fin .cgp .in .cta{grid-column:1;max-width:none}
html[data-mode="tab"] .stage.off .cgp .in2{grid-template-columns:1fr;zoom:1.5}
html[data-mode="tab"] .stage.off .cgp .in2>*{grid-column:1!important;grid-row:auto!important}
html[data-mode="tab"] .stage.off .cgp .obar{width:auto;zoom:1.5}
body.land html[data-mode="tab"] .stage.two{}
body.land .stage.two{grid-template-columns:1fr 1fr!important;align-items:center}
body.land .stage.two .right.v{order:0!important}
body.land .left.q,body.land .left.t,body.land .right{width:440px!important}
body.land .left.q .ph.mob{zoom:1.45!important}body.land .right.v .ph.mob{zoom:1.4!important}
body.land .stage.fin .cgp .in{grid-template-columns:1.1fr .9fr!important;zoom:1.15!important}
body.land .stage.fin .cgp .in .st{grid-column:2!important;grid-row:1 / span 6!important;margin-top:0!important}
body.land .stage.off .cgp .in2{grid-template-columns:1fr 1fr!important;zoom:1.15!important}
body.land .stage.off .cgp .in2>*{grid-column:2!important}
body.land .stage.off .cgp .in2 .ot{grid-column:1!important;grid-row:1!important}
body.land .stage.off .cgp .in2 .orows{grid-column:1!important;grid-row:2 / span 6!important}
html[data-mode="tab"] #bar{bottom:12px}
#ori{border:0;background:#fff;border-radius:999px;padding:8px 13px;font:700 12px Inter,system-ui;cursor:pointer}

.bw{width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.1);flex:none;display:grid;place-items:center}.bw .plogo{width:15px;height:15px;opacity:.85;margin:0}
.stage.fact{flex-direction:column}
.fbox{max-width:760px;text-align:center}
.fbox h1{margin:0;font-size:56px;line-height:1.05;letter-spacing:-.045em;font-weight:800;text-wrap:balance}
.fbox p{margin:20px auto 0;font-size:20px;line-height:1.5;color:#6C6C70;font-weight:500;max-width:620px}
.fsrc{display:inline-flex;align-items:center;gap:9px;margin-top:22px;font-size:14px;font-weight:700;color:#1E330C;background:#ECF3E0;border-radius:999px;padding:8px 14px}
.fsrc .ci{width:18px;height:18px;border-radius:50%;background:#1E330C;display:grid;place-items:center}
.fbox .go{display:block;margin:34px auto 0}
.t-insight .right.v .pkick,.t-insight .right.v .phero,.t-insight .right.v .phb{display:none!important}
.t-load .right.v .pht.c{display:none!important}
html[data-mode="tab"] .fbox h1{font-size:44px}

/* ===== v2 épurée : le même écran que sur mobile, en grand, centré ===== */
.stage.one{display:flex;justify-content:center;align-items:flex-start;padding:28px 48px 110px}
.ph.mob.solo{width:300px;zoom:1.65;background:transparent}
.ph.mob.solo .pc{display:flex;flex-direction:column}
.ph.mob.solo .pfl{display:none!important}
.ph.mob.solo .pcta,.ph.mob.solo .pcta2{margin-top:18px;cursor:pointer}.ph.mob.solo .pop{cursor:pointer}
.ph.mob.solo.dark{background:radial-gradient(120% 60% at 50% 18%,#1A2414 0%,#000 62%);border-radius:24px;padding:16px;color:#fff}
.cgx.big{zoom:1.35}
.cgx.big .cgp{border-radius:28px!important;box-shadow:0 30px 80px rgba(0,0,0,.18)!important}
html[data-mode="tab"] .stage.one{padding:24px 34px 60px}
html[data-mode="tab"] .ph.mob.solo{zoom:1.9}
html[data-mode="tab"] .cgx.big{zoom:1.6}
body.land .ph.mob.solo{zoom:1.45!important}
body.land .cgx.big{zoom:1.15!important}

.cgx.big .cgp .sb{visibility:hidden}

/* ===== en-tête comme sur mobile : retour + barre ===== */
.top{padding:18px 40px;gap:18px}
.back{width:40px;height:40px;border:0;border-radius:50%;background:transparent;font:400 34px/1 Inter,system-ui;color:#0f0f0d;cursor:pointer;display:grid;place-items:center;padding:0 0 4px}
.back:hover{background:rgba(15,15,13,.06)}
.cnt{display:none}
#app.dk{background:#000}#app.dk .back{color:#fff}#app.dk .prog{background:rgba(255,255,255,.14)}#app.dk .prog i{background:#ECF3E0}
/* ===== dernière page et offre : tout l'écran ===== */
.stage.full{display:block;padding:0 40px 120px}
.cgx.wide{width:100%;max-width:1040px;margin:0 auto}
.cgx.wide .cgp{position:relative!important;width:100%!important;height:auto!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;overflow:visible!important}
.cgx.wide .cgp .sb,.cgx.wide .cgp .tick{display:none!important}
/* dernière page */
#app.dk{background:radial-gradient(70% 55% at 50% 0%,#1C2A12 0%,#0A0D08 55%,#000 100%)}
.fin2 .cgp .in{position:static!important;padding:28px 0 0!important;text-align:center}
.fin2 .cgp .hk{font-size:15px!important;letter-spacing:.16em!important}
.fin2 .cgp .hero{font-size:150px!important;margin-top:14px!important;line-height:1!important}
.fin2 .cgp .hs{font-size:20px!important;margin-top:16px!important}
.fin2 .cgp .blk{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;max-width:900px;margin:48px auto 0!important;text-align:left}
.fin2 .cgp .blk>*{margin:0!important}
.fin2 .cgp .y2b{padding:24px 26px!important;gap:24px!important;border-radius:26px!important}
.fin2 .cgp .y2b .rgw{width:124px!important;height:124px!important}.fin2 .cgp .y2b .rgt b{font-size:36px!important}.fin2 .cgp .y2b .rgt span{font-size:12px!important}
.fin2 .cgp .y2b em{font-size:13px!important}.fin2 .cgp .y2b b{font-size:24px!important}
.fin2 .cgp .y2s{padding:20px 22px!important;border-radius:22px!important}
.fin2 .cgp .rcb{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;gap:8px;padding:24px 26px!important;border-radius:26px!important}
.fin2 .cgp .rcb b{font-size:52px!important}.fin2 .cgp .rcb span{font-size:15px!important}
.fin2 .cgp .tiles,.fin2 .cgp .tl{font-size:15px}
.fin2 .cgp .pr{font-size:34px!important;margin-top:56px!important;letter-spacing:-.035em}
.fin2 .cgp .st{display:flex!important;flex-wrap:wrap;justify-content:center;gap:14px!important;max-width:1000px;margin:30px auto 0!important;text-align:left}.fin2 .cgp .st .s{flex:0 1 230px}.fin2 .cgp .st .s b,.fin2 .cgp .st .s em{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.fin2 .cgp .st .s{margin:0!important;background:rgba(255,255,255,.06);border-radius:18px;padding:18px 16px;align-items:flex-start!important}
.fin2 .cgp .st .s em{font-size:12px!important}.fin2 .cgp .st .s b{font-size:17px!important}
.fin2 .cgp .cta{display:flex!important;align-items:center;justify-content:center;width:380px!important;max-width:100%;margin:48px auto 0!important;height:58px!important;font-size:17px!important;border-radius:29px!important}
/* offre */
.off2 .cgp .osc{position:static!important;overflow:visible!important;inset:auto!important}
.off2 .cgp .in2{display:grid!important;grid-template-columns:1fr 1fr;column-gap:18px;padding:20px 0 0!important}
.off2 .cgp .in2>*{grid-column:1 / -1;margin-left:0!important;margin-right:0!important}
.off2 .cgp .ot{order:1;font-size:56px!important;line-height:1.05!important;text-align:center;max-width:860px;margin:10px auto 0!important}
.off2 .cgp .orows{order:2;display:grid!important;grid-template-columns:1fr 1fr;gap:14px;background:none!important;box-shadow:none!important;margin-top:40px!important;padding:0!important;border-radius:0!important}
.off2 .cgp .orw{background:#fff;border-radius:20px;padding:20px 22px!important;border:0!important;box-shadow:0 1px 3px rgba(0,0,0,.04),0 12px 30px rgba(0,0,0,.05)}
.off2 .cgp .orw b{font-size:17px!important}.off2 .cgp .orw em{font-size:13px!important}.off2 .cgp .orw strong{font-size:15px!important;padding:6px 12px!important}
.off2 .cgp .orows+.opl{order:3;grid-column:1 / -1!important}
.off2 .cgp .orows+.opl+.ofr+.opl{order:5;grid-column:1 / -1!important}
.off2 .cgp .orows+.opl+.ofr{order:4}
.off2 .cgp .oav{order:6}
.off2 .cgp .ofaq{order:7}.off2 .cgp .orh2{order:8}
.off2 .cgp .orh2+.opl{order:9;grid-column:1 / -1!important}
.off2 .cgp .orh2+.opl+.ofr+.opl{order:11;grid-column:1 / -1!important}
.off2 .cgp .orh2+.opl+.ofr{order:10}
.off2 .cgp .in2>div[style*="height:110px"]{order:13}
.off2 .cgp .opl{margin-top:14px!important;padding:20px 24px!important;border-radius:20px!important;align-self:stretch;min-height:66px}
.off2 .cgp .opl b{font-size:19px!important}.off2 .cgp .opl span{font-size:13px!important}.off2 .cgp .opl .pc{font-size:12px!important}
.off2 .cgp .opl .rad{width:24px!important;height:24px!important}
.off2 .cgp .ofr{text-align:left!important;font-size:13px!important;margin-top:10px!important}
.off2 .cgp .oav{display:grid!important;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:48px!important}
.off2 .cgp .oavh{grid-column:1 / -1;font-size:24px!important;margin-bottom:2px!important}
.off2 .cgp .ocard{margin:0!important;padding:18px!important;border-radius:20px!important}
.off2 .cgp .orh2{font-size:12px!important;margin-top:48px!important;text-align:center}
.off2 .cgp .obar{position:fixed!important;left:0;right:0;bottom:0;padding:36px 0 22px!important;display:flex;flex-direction:column;align-items:center;background:linear-gradient(rgba(244,244,242,0),#F4F4F2 40%)!important;z-index:40}
.off2 .cgp .obar .cta{width:420px;height:58px!important;font-size:17px!important;border-radius:29px!important}
.off2 .cgp .obar .osm{font-size:13px!important}
#bar{z-index:60}
html[data-mode="pc"] .off2 .cgp .obar{bottom:56px;background:linear-gradient(rgba(244,244,242,0),#F4F4F2 40%)!important}
/* tablette */
html[data-mode="tab"] .stage.full{padding:0 30px 120px}
html[data-mode="tab"] .fin2 .cgp .hero{font-size:112px!important}
html[data-mode="tab"] .fin2 .cgp .st .s{flex:0 1 calc(50% - 7px)}
html[data-mode="tab"] .off2 .cgp .ot{font-size:44px!important}
html[data-mode="tab"] .off2 .cgp .oav{grid-template-columns:1fr}
html[data-mode="tab"] .off2 .cgp .obar{position:sticky!important;bottom:0}
body.land .fin2 .cgp .hero{font-size:100px!important}
body.land .fin2 .cgp .st .s{flex:0 1 200px}
body.land .off2 .cgp .oav{grid-template-columns:repeat(3,1fr)}

body.dk,html:has(#app.dk){background:#000}
#app.dk{min-height:100vh}

/* PC et tablette : plus aucune question qui monte du bas, elle est posée sous la carte */
.ph.mob.solo .psheet{margin:26px 0 0!important;padding:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;transform:none!important}
.ph.mob.solo .psheet .phand,.ph.mob.solo .psheet>i:first-child,.ph.mob.solo .psheet .grab,.ph.mob.solo .psheet .pgrab{display:none!important}.ph.mob.solo .psheet .pop{background:#fff!important}

.off2 .cgp .ofr.n{order:6}
.off2 .cgp .ofaq{max-width:760px;margin:48px auto 0!important;width:100%}
.off2 .cgp .ofaq .oavh{font-size:24px!important;margin-bottom:8px}
.off2 .cgp .fqq{font-size:17px!important;padding:18px 2px!important}.off2 .cgp .fqa>p{font-size:15px!important}
.off2 .cgp .opl{padding:16px 20px!important}.off2 .cgp .opl .pn,.off2 .cgp .opl .pp{font-size:18px!important}
.off2 .cgp .ofr{font-size:13px!important}

#app.dk{isolation:isolate}
#app.dk::before{content:'';position:absolute;width:1100px;height:900px;left:50%;top:-560px;margin-left:-550px;border-radius:50%;background:conic-gradient(from 200deg,rgba(236,243,224,0),rgba(236,243,224,.5),rgba(107,127,90,.45),rgba(255,255,255,.12),rgba(236,243,224,0));filter:blur(90px);z-index:-1;pointer-events:none}

.stage.agst{display:flex;align-items:stretch;justify-content:center}.agbox{position:relative;width:100%;height:100%;min-height:calc(100vh - 140px)}.agbox ag-screen{position:absolute;inset:0;display:block}
html[data-mode=tab] .agbox{min-height:0}
#app:has(.agst)>.top{display:none}
#app:has(ag-screen[data-t=agfinal]),.agbox:has(ag-screen[data-t=agfinal]){background:#000}html[data-mode=tab] #frame:has(ag-screen[data-t=agfinal]) #app{background:#000}

/* IA et chargements : la lumière verte remplit tout le haut de l'écran */
#app:has(.v5s){position:relative}
#app .ph.solo:has(.v5s){position:absolute!important;inset:0!important;width:auto!important;max-width:none!important;height:auto!important;margin:0!important;border-radius:0!important;box-shadow:none!important;transform:none!important}
#app .v5s .light{width:150vw!important;height:1000px!important;margin-left:-75vw!important;top:-700px!important}
#app:has(.v5s)>.top{position:relative;z-index:6}

#app .v5s .in{left:50%!important;right:auto!important;width:440px!important;margin-left:-220px!important;bottom:120px!important}
#app .v5s .cta{max-width:440px}
.agbox{background:#F4F4F2}
#app .v5s .cta{left:50%!important;right:auto!important;width:440px!important;margin-left:-220px!important;bottom:110px!important}

}
/* ===== ordinateur : démo pc, CSS 994 → fin ===== */
@media (min-width:1024px){
/* ===== mise en page PC et tablette ===== */
html,body{overflow:auto;height:auto;min-height:100%;background:#F4F4F2}
#app{position:relative;min-height:100vh;display:flex;flex-direction:column;background:#F4F4F2;font-family:Inter,-apple-system,system-ui,sans-serif}
.top{display:flex;align-items:center;gap:24px;padding:22px 48px}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:16px;letter-spacing:-.02em;flex:none}
.plogo.xs{width:22px;height:22px;border-radius:50%;background-color:#fff;background-size:62%;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.prog{flex:1;height:4px;border-radius:2px;background:#E4E4E1;overflow:hidden}.prog i{display:block;height:100%;background:#0f0f0d;border-radius:2px;transition:width .5s cubic-bezier(.2,.8,.2,1)}
.cnt{font-size:12px;font-weight:700;color:#8A8A84;flex:none}
.stage{flex:1;display:flex;align-items:center;justify-content:center;padding:10px 48px 90px}
.stage.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;max-width:1240px;margin:0 auto;width:100%}
.ph.mob{position:relative;width:300px;height:auto;min-height:0;border-radius:0;box-shadow:none;background:transparent;overflow:visible;zoom:1.6;margin:0}
.ph.mob .pc{position:static;height:auto;padding:0;display:block}
.ph.mob .pfl{display:none!important}.ph.mob .pbk{display:none}
.left.q{justify-self:end;width:480px}.left.q .ph.mob{zoom:1.6}
.left.q .pcta{margin-top:16px;cursor:pointer}.left.q .pop{cursor:pointer}
.ph.mob.cm .pht{font-size:26px}.ph.mob.cm .pcta2{margin-top:8px}
.keys{margin-top:18px;font-size:12px;color:#A6A6A0;font-weight:600}
.left.t{justify-self:end;width:480px}
.left.t .kick{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8A8A84;min-height:14px}
.left.t h1{margin:12px 0 0;font-size:46px;line-height:1.06;letter-spacing:-.04em;font-weight:800;text-wrap:balance}
.left.t p{margin:16px 0 0;font-size:18px;line-height:1.5;color:#6C6C70;font-weight:500;max-width:440px}
.go{margin-top:30px;height:54px;padding:0 34px;border:0;border-radius:27px;background:#0f0f0d;color:#fff;font:600 16px Inter,system-ui;cursor:pointer}
.right{justify-self:start;width:500px}
.right.v .ph.mob{zoom:1.55}
.right.v .ph.mob .pht,.right.v .ph.mob .phb,.right.v .ph.mob .pcta,.right.v .ph.mob .pcta2,.right.v .ph.mob .plink,.right.v .ph.mob .pkick:first-child{display:none}
.right.v .ph.mob.vis{background:transparent}
.right.v .ph.dark{background:radial-gradient(120% 60% at 50% 18%,#1A2414 0%,#000 62%);border-radius:28px;padding:18px;color:#fff}
.right.v .ph.dark .pht,.right.v .ph.dark .phb{display:block}
.right.v .ph.mob .sol{margin-top:6px}
.right.v .ph.mob .pt-load .pht,.right.v .ph.mob .pht.c{display:block}
.sum{background:#fff;border-radius:28px;padding:26px 26px 18px;box-shadow:0 1px 3px rgba(0,0,0,.04),0 20px 50px rgba(0,0,0,.06)}
.sumk{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8A8A84;margin-bottom:10px}
.sr{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:.5px solid #EDEDEB}.sr:first-of-type{border-top:0}
.sr .ci{width:20px;height:20px;border-radius:50%;background:#0f0f0d;display:grid;place-items:center;flex:none}
.sr em{display:block;font-style:normal;font-size:11.5px;color:#A6A6A0;font-weight:600}.sr b{display:block;font-size:15px;font-weight:700;margin-top:2px}
.sr0{font-size:14px;color:#A6A6A0;font-weight:500;padding:14px 0 8px}
/* dernière page : pleine largeur, deux colonnes */
.stage.fin{background:radial-gradient(90% 70% at 30% 20%,#1A2414 0%,#000 60%);margin:0 24px 80px;border-radius:32px;padding:56px}
.stage.fin .cgx,.stage.off .cgx{width:100%;max-width:1080px}
.stage.fin .cgp,.stage.off .cgp{width:100%!important;height:auto!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;overflow:visible!important}
.stage.fin .cgp .sb,.stage.off .cgp .sb,.cgp .tick{display:none!important}
.stage.fin .cgp .in{position:static!important;display:grid!important;grid-template-columns:1.1fr .9fr;column-gap:64px;row-gap:0;align-items:start;zoom:1.25}
.stage.fin .cgp .in>*{grid-column:1}
.stage.fin .cgp .in .hk{text-align:left;margin-top:0}.stage.fin .cgp .in .hero{text-align:left;font-size:78px}.stage.fin .cgp .in .hs{text-align:left}
.stage.fin .cgp .in .pr{text-align:left;font-size:22px}
.stage.fin .cgp .in .st{grid-column:2;grid-row:1 / span 6;margin-top:0;align-self:center;gap:10px}
.stage.fin .cgp .in .st .s b{font-size:15px}.stage.fin .cgp .in .st .s em{font-size:10.5px}
.stage.fin .cgp .in .cta{grid-column:2;margin-top:18px;max-width:320px}
.stage.off{padding:10px 48px 90px}
.stage.off .cgp .osc{position:static!important;overflow:visible!important}
.stage.off .cgp .in2{display:grid!important;grid-template-columns:1fr 1fr;column-gap:56px;align-items:start;zoom:1.3;padding:0}
.stage.off .cgp .in2>*{grid-column:2}
.stage.off .cgp .in2 .ot{grid-column:1;grid-row:1;font-size:30px;margin-top:0}
.stage.off .cgp .in2 .orows{grid-column:1;grid-row:2 / span 6;margin-top:16px}
.stage.off .cgp .in2 .orh2,.stage.off .cgp .in2 .orh2~.opl,.stage.off .cgp .in2 .orh2~.ofr,.stage.off .cgp .in2>div[style*="height:110px"]{display:none!important}
.stage.off .cgp .in2 .opl:first-of-type{margin-top:0!important}
.stage.off .cgp .obar{position:static!important;background:none!important;padding:14px 0 0!important;max-width:none;zoom:1.3;width:calc(50% - 28px);margin-left:auto}
.stage.off .cgp{display:flex;flex-direction:column}
/* barre de démo */
#bar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:8px;align-items:center;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-radius:999px;padding:7px 9px;box-shadow:0 8px 30px rgba(0,0,0,.12);z-index:50;font:600 13px Inter,system-ui}
#bar select{border:0;background:#F2F2F0;border-radius:999px;padding:8px 12px;font:600 13px Inter,system-ui;color:#0f0f0d}
#bar button{border:0;background:#0f0f0d;color:#fff;border-radius:50%;width:34px;height:34px;font-size:14px;cursor:pointer}
#pos{min-width:56px;text-align:center;color:#6C6C70}
/* ===== tablette ===== */
html[data-mode="tab"] body{background:#E4E4E1;overflow:hidden;height:100vh}
#dev{position:absolute;left:50%;top:20px;transform-origin:top center;margin-left:0}
#frame{position:relative;border-radius:46px;background:#F4F4F2;box-shadow:0 0 0 18px #0B0B0B,0 40px 90px rgba(0,0,0,.28);overflow:hidden}
html[data-mode="tab"] #app{min-height:100%;height:100%;overflow:auto}
html[data-mode="tab"] .top{padding:20px 34px}
html[data-mode="tab"] .stage{padding:6px 34px 40px}
html[data-mode="tab"] .stage.two{grid-template-columns:1fr;gap:28px;justify-items:center;align-content:start}
html[data-mode="tab"] .left.q,html[data-mode="tab"] .left.t{justify-self:center;width:560px}
html[data-mode="tab"] .left.q .ph.mob{zoom:1.85}
html[data-mode="tab"] .right{justify-self:center;width:560px}
html[data-mode="tab"] .right.v .ph.mob{zoom:1.7}
html[data-mode="tab"] .stage.two .right.v{order:-1}
html[data-mode="tab"] .left.t h1{font-size:40px}
html[data-mode="tab"] .sum{padding:20px 22px 12px}
html[data-mode="tab"] .stage.fin{margin:0 20px 30px;padding:40px 34px}
html[data-mode="tab"] .stage.fin .cgp .in{grid-template-columns:1fr;zoom:1.35}
html[data-mode="tab"] .stage.fin .cgp .in .st{grid-column:1;grid-row:auto;margin-top:18px}
html[data-mode="tab"] .stage.fin .cgp .in .cta{grid-column:1;max-width:none}
html[data-mode="tab"] .stage.off .cgp .in2{grid-template-columns:1fr;zoom:1.5}
html[data-mode="tab"] .stage.off .cgp .in2>*{grid-column:1!important;grid-row:auto!important}
html[data-mode="tab"] .stage.off .cgp .obar{width:auto;zoom:1.5}
body.land html[data-mode="tab"] .stage.two{}
body.land .stage.two{grid-template-columns:1fr 1fr!important;align-items:center}
body.land .stage.two .right.v{order:0!important}
body.land .left.q,body.land .left.t,body.land .right{width:440px!important}
body.land .left.q .ph.mob{zoom:1.45!important}body.land .right.v .ph.mob{zoom:1.4!important}
body.land .stage.fin .cgp .in{grid-template-columns:1.1fr .9fr!important;zoom:1.15!important}
body.land .stage.fin .cgp .in .st{grid-column:2!important;grid-row:1 / span 6!important;margin-top:0!important}
body.land .stage.off .cgp .in2{grid-template-columns:1fr 1fr!important;zoom:1.15!important}
body.land .stage.off .cgp .in2>*{grid-column:2!important}
body.land .stage.off .cgp .in2 .ot{grid-column:1!important;grid-row:1!important}
body.land .stage.off .cgp .in2 .orows{grid-column:1!important;grid-row:2 / span 6!important}
html[data-mode="tab"] #bar{bottom:12px}
#ori{border:0;background:#fff;border-radius:999px;padding:8px 13px;font:700 12px Inter,system-ui;cursor:pointer}

.bw{width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.1);flex:none;display:grid;place-items:center}.bw .plogo{width:15px;height:15px;opacity:.85;margin:0}
.stage.fact{flex-direction:column}
.fbox{max-width:760px;text-align:center}
.fbox h1{margin:0;font-size:56px;line-height:1.05;letter-spacing:-.045em;font-weight:800;text-wrap:balance}
.fbox p{margin:20px auto 0;font-size:20px;line-height:1.5;color:#6C6C70;font-weight:500;max-width:620px}
.fsrc{display:inline-flex;align-items:center;gap:9px;margin-top:22px;font-size:14px;font-weight:700;color:#1E330C;background:#ECF3E0;border-radius:999px;padding:8px 14px}
.fsrc .ci{width:18px;height:18px;border-radius:50%;background:#1E330C;display:grid;place-items:center}
.fbox .go{display:block;margin:34px auto 0}
.t-insight .right.v .pkick,.t-insight .right.v .phero,.t-insight .right.v .phb{display:none!important}
.t-load .right.v .pht.c{display:none!important}
html[data-mode="tab"] .fbox h1{font-size:44px}

/* ===== v2 épurée : le même écran que sur mobile, en grand, centré ===== */
.stage.one{display:flex;justify-content:center;align-items:flex-start;padding:28px 48px 110px}
.ph.mob.solo{width:300px;zoom:1.65;background:transparent}
.ph.mob.solo .pc{display:flex;flex-direction:column}
.ph.mob.solo .pfl{display:none!important}
.ph.mob.solo .pcta,.ph.mob.solo .pcta2{margin-top:18px;cursor:pointer}.ph.mob.solo .pop{cursor:pointer}
.ph.mob.solo.dark{background:radial-gradient(120% 60% at 50% 18%,#1A2414 0%,#000 62%);border-radius:24px;padding:16px;color:#fff}
.cgx.big{zoom:1.35}
.cgx.big .cgp{border-radius:28px!important;box-shadow:0 30px 80px rgba(0,0,0,.18)!important}
html[data-mode="tab"] .stage.one{padding:24px 34px 60px}
html[data-mode="tab"] .ph.mob.solo{zoom:1.9}
html[data-mode="tab"] .cgx.big{zoom:1.6}
body.land .ph.mob.solo{zoom:1.45!important}
body.land .cgx.big{zoom:1.15!important}

.cgx.big .cgp .sb{visibility:hidden}

/* ===== en-tête comme sur mobile : retour + barre ===== */
.top{padding:18px 40px;gap:18px}
.back{width:40px;height:40px;border:0;border-radius:50%;background:transparent;font:400 34px/1 Inter,system-ui;color:#0f0f0d;cursor:pointer;display:grid;place-items:center;padding:0 0 4px}
.back:hover{background:rgba(15,15,13,.06)}
.cnt{display:none}
#app.dk{background:#000}#app.dk .back{color:#fff}#app.dk .prog{background:rgba(255,255,255,.14)}#app.dk .prog i{background:#ECF3E0}
/* ===== dernière page et offre : tout l'écran ===== */
.stage.full{display:block;padding:0 40px 120px}
.cgx.wide{width:100%;max-width:1040px;margin:0 auto}
.cgx.wide .cgp{position:relative!important;width:100%!important;height:auto!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;overflow:visible!important}
.cgx.wide .cgp .sb,.cgx.wide .cgp .tick{display:none!important}
/* dernière page */
#app.dk{background:radial-gradient(70% 55% at 50% 0%,#1C2A12 0%,#0A0D08 55%,#000 100%)}
.fin2 .cgp .in{position:static!important;padding:28px 0 0!important;text-align:center}
.fin2 .cgp .hk{font-size:15px!important;letter-spacing:.16em!important}
.fin2 .cgp .hero{font-size:150px!important;margin-top:14px!important;line-height:1!important}
.fin2 .cgp .hs{font-size:20px!important;margin-top:16px!important}
.fin2 .cgp .blk{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;max-width:900px;margin:48px auto 0!important;text-align:left}
.fin2 .cgp .blk>*{margin:0!important}
.fin2 .cgp .y2b{padding:24px 26px!important;gap:24px!important;border-radius:26px!important}
.fin2 .cgp .y2b .rgw{width:124px!important;height:124px!important}.fin2 .cgp .y2b .rgt b{font-size:36px!important}.fin2 .cgp .y2b .rgt span{font-size:12px!important}
.fin2 .cgp .y2b em{font-size:13px!important}.fin2 .cgp .y2b b{font-size:24px!important}
.fin2 .cgp .y2s{padding:20px 22px!important;border-radius:22px!important}
.fin2 .cgp .rcb{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;gap:8px;padding:24px 26px!important;border-radius:26px!important}
.fin2 .cgp .rcb b{font-size:52px!important}.fin2 .cgp .rcb span{font-size:15px!important}
.fin2 .cgp .tiles,.fin2 .cgp .tl{font-size:15px}
.fin2 .cgp .pr{font-size:34px!important;margin-top:56px!important;letter-spacing:-.035em}
.fin2 .cgp .st{display:flex!important;flex-wrap:wrap;justify-content:center;gap:14px!important;max-width:1000px;margin:30px auto 0!important;text-align:left}.fin2 .cgp .st .s{flex:0 1 230px}.fin2 .cgp .st .s b,.fin2 .cgp .st .s em{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.fin2 .cgp .st .s{margin:0!important;background:rgba(255,255,255,.06);border-radius:18px;padding:18px 16px;align-items:flex-start!important}
.fin2 .cgp .st .s em{font-size:12px!important}.fin2 .cgp .st .s b{font-size:17px!important}
.fin2 .cgp .cta{display:flex!important;align-items:center;justify-content:center;width:380px!important;max-width:100%;margin:48px auto 0!important;height:58px!important;font-size:17px!important;border-radius:29px!important}
/* offre */
.off2 .cgp .osc{position:static!important;overflow:visible!important;inset:auto!important}
.off2 .cgp .in2{display:grid!important;grid-template-columns:1fr 1fr;column-gap:18px;padding:20px 0 0!important}
.off2 .cgp .in2>*{grid-column:1 / -1;margin-left:0!important;margin-right:0!important}
.off2 .cgp .ot{order:1;font-size:56px!important;line-height:1.05!important;text-align:center;max-width:860px;margin:10px auto 0!important}
.off2 .cgp .orows{order:2;display:grid!important;grid-template-columns:1fr 1fr;gap:14px;background:none!important;box-shadow:none!important;margin-top:40px!important;padding:0!important;border-radius:0!important}
.off2 .cgp .orw{background:#fff;border-radius:20px;padding:20px 22px!important;border:0!important;box-shadow:0 1px 3px rgba(0,0,0,.04),0 12px 30px rgba(0,0,0,.05)}
.off2 .cgp .orw b{font-size:17px!important}.off2 .cgp .orw em{font-size:13px!important}.off2 .cgp .orw strong{font-size:15px!important;padding:6px 12px!important}
.off2 .cgp .orows+.opl{order:3;grid-column:1 / -1!important}
.off2 .cgp .orows+.opl+.ofr+.opl{order:5;grid-column:1 / -1!important}
.off2 .cgp .orows+.opl+.ofr{order:4}
.off2 .cgp .oav{order:6}
.off2 .cgp .ofaq{order:7}.off2 .cgp .orh2{order:8}
.off2 .cgp .orh2+.opl{order:9;grid-column:1 / -1!important}
.off2 .cgp .orh2+.opl+.ofr+.opl{order:11;grid-column:1 / -1!important}
.off2 .cgp .orh2+.opl+.ofr{order:10}
.off2 .cgp .in2>div[style*="height:110px"]{order:13}
.off2 .cgp .opl{margin-top:14px!important;padding:20px 24px!important;border-radius:20px!important;align-self:stretch;min-height:66px}
.off2 .cgp .opl b{font-size:19px!important}.off2 .cgp .opl span{font-size:13px!important}.off2 .cgp .opl .pc{font-size:12px!important}
.off2 .cgp .opl .rad{width:24px!important;height:24px!important}
.off2 .cgp .ofr{text-align:left!important;font-size:13px!important;margin-top:10px!important}
.off2 .cgp .oav{display:grid!important;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:48px!important}
.off2 .cgp .oavh{grid-column:1 / -1;font-size:24px!important;margin-bottom:2px!important}
.off2 .cgp .ocard{margin:0!important;padding:18px!important;border-radius:20px!important}
.off2 .cgp .orh2{font-size:12px!important;margin-top:48px!important;text-align:center}
.off2 .cgp .obar{position:fixed!important;left:0;right:0;bottom:0;padding:36px 0 22px!important;display:flex;flex-direction:column;align-items:center;background:linear-gradient(rgba(244,244,242,0),#F4F4F2 40%)!important;z-index:40}
.off2 .cgp .obar .cta{width:420px;height:58px!important;font-size:17px!important;border-radius:29px!important}
.off2 .cgp .obar .osm{font-size:13px!important}
#bar{z-index:60}
html[data-mode="pc"] .off2 .cgp .obar{bottom:56px;background:linear-gradient(rgba(244,244,242,0),#F4F4F2 40%)!important}
/* tablette */
html[data-mode="tab"] .stage.full{padding:0 30px 120px}
html[data-mode="tab"] .fin2 .cgp .hero{font-size:112px!important}
html[data-mode="tab"] .fin2 .cgp .st .s{flex:0 1 calc(50% - 7px)}
html[data-mode="tab"] .off2 .cgp .ot{font-size:44px!important}
html[data-mode="tab"] .off2 .cgp .oav{grid-template-columns:1fr}
html[data-mode="tab"] .off2 .cgp .obar{position:sticky!important;bottom:0}
body.land .fin2 .cgp .hero{font-size:100px!important}
body.land .fin2 .cgp .st .s{flex:0 1 200px}
body.land .off2 .cgp .oav{grid-template-columns:repeat(3,1fr)}

body.dk,html:has(#app.dk){background:#000}
#app.dk{min-height:100vh}

/* PC et tablette : plus aucune question qui monte du bas, elle est posée sous la carte */
.ph.mob.solo .psheet{margin:26px 0 0!important;padding:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;transform:none!important}
.ph.mob.solo .psheet .phand,.ph.mob.solo .psheet>i:first-child,.ph.mob.solo .psheet .grab,.ph.mob.solo .psheet .pgrab{display:none!important}.ph.mob.solo .psheet .pop{background:#fff!important}

.off2 .cgp .ofr.n{order:6}
.off2 .cgp .ofaq{max-width:760px;margin:48px auto 0!important;width:100%}
.off2 .cgp .ofaq .oavh{font-size:24px!important;margin-bottom:8px}
.off2 .cgp .fqq{font-size:17px!important;padding:18px 2px!important}.off2 .cgp .fqa>p{font-size:15px!important}
.off2 .cgp .opl{padding:16px 20px!important}.off2 .cgp .opl .pn,.off2 .cgp .opl .pp{font-size:18px!important}
.off2 .cgp .ofr{font-size:13px!important}

#app.dk{isolation:isolate}
#app.dk::before{content:'';position:absolute;width:1100px;height:900px;left:50%;top:-560px;margin-left:-550px;border-radius:50%;background:conic-gradient(from 200deg,rgba(236,243,224,0),rgba(236,243,224,.5),rgba(107,127,90,.45),rgba(255,255,255,.12),rgba(236,243,224,0));filter:blur(90px);z-index:-1;pointer-events:none}

.stage.agst{display:flex;align-items:stretch;justify-content:center}.agbox{position:relative;width:100%;height:100%;min-height:calc(100vh - 140px)}.agbox ag-screen{position:absolute;inset:0;display:block}
html[data-mode=tab] .agbox{min-height:0}
#app:has(.agst)>.top{display:none}
#app:has(ag-screen[data-t=agfinal]),.agbox:has(ag-screen[data-t=agfinal]){background:#000}html[data-mode=tab] #frame:has(ag-screen[data-t=agfinal]) #app{background:#000}

/* IA et chargements : la lumière verte remplit tout le haut de l'écran */
#app:has(.v5s){position:relative}
#app .ph.solo:has(.v5s){position:absolute!important;inset:0!important;width:auto!important;max-width:none!important;height:auto!important;margin:0!important;border-radius:0!important;box-shadow:none!important;transform:none!important}
#app .v5s .light{width:150vw!important;height:1000px!important;margin-left:-75vw!important;top:-700px!important}
#app:has(.v5s)>.top{position:relative;z-index:6}

#app .v5s .in{left:50%!important;right:auto!important;width:440px!important;margin-left:-220px!important;bottom:120px!important}
#app .v5s .cta{max-width:440px}
.agbox{background:#F4F4F2}
#app .v5s .cta{left:50%!important;right:auto!important;width:440px!important;margin-left:-220px!important;bottom:110px!important}

/* ===== Offre sur Mac : « Choisis ton plan » en haut, 12 mois puis 1 mois, tout tient sans défiler ===== */
.off2 .cgp .ot{order:1!important;font-size:46px!important;margin:6px auto 0!important}
.off2 .cgp .ot+.opl{order:2!important;grid-column:1!important;margin-top:28px!important}
.off2 .cgp .ot+.opl+.opl{order:3!important;grid-column:2!important;margin-top:28px!important}
.off2 .cgp .orows{order:4!important;margin-top:22px!important}
.off2 .cgp .ofaq{order:5!important;margin-top:26px!important}
.off2 .cgp .oav,.off2 .cgp .orh2,.off2 .cgp .orh2~.opl,.off2 .cgp .orh2~.ofr{display:none!important}
.off2 .cgp .in2>div[style*="height:110px"]{order:9!important;height:120px!important}
.off2 .cgp .ot+.opl{grid-column:1 / -1!important;margin-top:24px!important}
.off2 .cgp .ot+.opl+.opl{grid-column:1 / -1!important;margin-top:12px!important}
.off2 .cgp .orows{margin-top:18px!important}
.off2 .cgp .ofaq{margin-top:20px!important}

html:not([data-mode=tab]) .palert{display:none!important}
.off2 .cgp .ot{font-size:40px!important;margin-top:0!important}
.off2 .cgp .opl{padding:14px 22px!important;min-height:58px!important}
.off2 .cgp .orw{padding:15px 20px!important}
.off2 .cgp .ofaq .fqq{padding-top:9px!important;padding-bottom:9px!important}
.off2 .cgp .in2{padding-top:4px!important}
/* site : l'exemple de notification apparaît seul, sans fenêtre d'autorisation */
html:not([data-mode=tab]) .nban{opacity:1!important;transform:none!important;margin:18px auto 0!important;max-width:420px;animation:webban .6s cubic-bezier(.2,.8,.2,1) 1s both}
@keyframes webban{from{translate:0 -60px;filter:opacity(0)}to{translate:0 0;filter:opacity(1)}}
html:not([data-mode=tab]) .nban{margin-bottom:28px!important}

}
/* ===== Chantier 130 — les seules règles qui ne viennent pas des démos =====
   Recopié tel quel à la fin de v3.css par scripts/build-onboarding-v3.mjs.
   Chaque bloc dit POURQUOI il existe. Rien d'autre n'a le droit d'être ici. */

/* Le champ de fichier, hors écran. La démo le posait dans l'habillage iPhone
   (`#fin`) ; dans l'app il sert sur les trois tailles d'écran. */
#whv-v3-file{position:fixed;left:-999px;top:0;opacity:0}

/* L'attente pendant la lecture d'une fiche : même règle que la démo iPhone,
   mais valable aussi sur tablette et Mac. */
.sf b.wait{color:#B5B5B0!important;animation:shim 1s ease-in-out infinite}
@keyframes shim{50%{opacity:.35}}

/* « Pas d'avis » (consigne du chantier) : les trois cartes d'avis de la démo
   portaient « Vrai avis, même profil · à brancher ». Un faux avis ne s'affiche
   pas — règle données du projet. Le CSS Mac de la démo les cachait déjà. */
.oav{display:none!important}

/* La fausse fenêtre iOS « souhaite vous envoyer des notifications » n'a aucune
   raison d'exister dans l'app : sur iOS c'est le vrai système qui demande, sur
   le site on ne demande rien. Déclaration reprise du CSS Mac de la démo. */
.palert{display:none!important}

/* APP iOS : aucune notification dessinée à l'écran, c'est une vraie notification
   locale qui arrive. */
html[data-whv="app"] .nban{display:none!important}

/* SITE WEB : la notification d'exemple glisse du haut après 1 s, sans fenêtre
   d'autorisation. Déclarations reprises mot pour mot du CSS de la démo pc. */
html[data-whv="site"] .nban{opacity:1!important;transform:none!important;margin:18px auto 0!important;max-width:420px;animation:webban .6s cubic-bezier(.2,.8,.2,1) 1s both}
@keyframes webban{from{translate:0 -60px;filter:opacity(0)}to{translate:0 0;filter:opacity(1)}}
html[data-whv="site"] .nban{margin-bottom:28px!important}

/* L'app n'a pas la barre de commande de la démo (choix du parcours, flèches) :
   le parcours vient des réponses. Si un reste de balise traînait, il ne
   s'afficherait pas. */
#bar{display:none!important}

/* Le CSS de l'app (Tailwind) pose line-height:1.5 sur <html>. Les démos sont
   des pages nues : partout où elles ne donnent pas d'interligne, leurs écrans
   comptent sur la valeur par défaut du navigateur. Sans ce rappel, chaque bloc
   de texte grandit de quelques pixels et toute la page glisse vers le bas
   (mesuré sur l'offre : .opl haute de 100 px au lieu de 90, « Annulable à tout
   moment » poussé hors de l'écran). L'interligne est hérité : le poser sur la
   racine du funnel suffit, et les règles des démos qui en fixent un gagnent.
   C'est la seule différence de rendu trouvée entre l'app et les démos. */
#app{line-height:normal}

/* ===== Chantier 130d — un vrai téléphone, pas une maquette de téléphone =====

   LA FAUSSE BARRE D'ÉTAT N'EXISTE PLUS.
   `.sb` est le décor de la maquette : « 9:41 » à gauche, la pile et le réseau à
   droite. Dans une démo on dessine un téléphone, donc on dessine sa barre ; dans
   l'app on EST sur le téléphone, qui a déjà la sienne — Joshua en voyait deux
   l'une sous l'autre sur son iPhone. Elle est retirée des trois endroits qui
   l'émettent d'un seul coup : les écrans mobiles (`WHV_MOB_SCREEN`), la page de
   fin et l'offre (`CG.html` / `CG.offerHtml`, sélecteur `.cgx .sb`).
   Même façon de faire que `.oav` (faux avis) et `.palert` (fausse fenêtre iOS)
   ci-dessous : on ne touche ni aux démos ni au code généré.
   La barre de PROGRESSION, elle, reste — mais une seule, posée par glue.js :
   voir le bloc 130f plus bas. */
.sb{display:none!important}

/* L'ONBOARDING OCCUPE L'ÉCRAN, ZONE SÛRE COMPRISE.
   `#app` est le cadre réel : on lui donne les encoches en padding, et la boîte
   de l'onboarding se pose dans ce qui reste (les enfants en `position:absolute`
   se placent sur la boîte de padding). `WHV.fit` lit `clientWidth/clientHeight`,
   donc il n'a jamais à interpréter `env()` lui-même. */
#app{padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);background:var(--bg)}

/* Chantier 136 — AUCUNE COUTURE EN HAUT DE L'ÉCRAN.
   La bande de la zone sûre laissait voir le fond de `#app` (#F4F4F2) par-dessus
   un écran sombre ou derrière la lueur verte : une ligne horizontale nette sous
   la Dynamic Island. Le fond de la racine suit donc l'écran affiché, et
   `body.dk` est déjà posé par le moteur sur les écrans sombres. */
html, body{background:var(--bg)}
body.dk, body.dk #app{background:#000}
#app:has(ag-screen[data-t=agfinal]){background:#000}

/* ===== Chantier 134 — LA RANGÉE DU HAUT : une seule, toujours au même endroit

   Sur l'iPhone 17 Pro, Joshua voyait deux barres, dont une sous la Dynamic
   Island, et qui bougeait d'un écran à l'autre. Les deux barres des démos sont
   donc RETIRÉES du DOM (`display:none`, pas `visibility`), et glue.js pose à
   leur place une rangée unique, `position:fixed`, calée sur la zone sûre.

   La rangée fait 44 px : une case de 44 × 44 px réservée au bouton retour, puis
   la barre jusqu'à 20 px du bord droit. La case existe même quand la flèche est
   masquée — c'est ce qui empêche la barre de bouger d'un écran à l'autre.

   `env(safe-area-inset-top)` ne vaut quelque chose que parce que
   `viewportFit:'cover'` est posé dans app/layout.tsx. Sur le web, il vaut 0 et
   la rangée se place à 14 px du haut, comme demandé. */
#whv-top{
  position:fixed;
  top:calc(env(safe-area-inset-top, 0px) + 14px);
  left:0; right:0;
  height:44px;
  z-index:9;
  display:flex;
  align-items:center;
  pointer-events:none;
}

/* La case du retour : 44 × 44, zone de tap entière, chevron centré. */
#whv-back{
  width:44px; height:44px;
  flex:none;
  border:0; padding:0; margin:0;
  background:none;
  color:#111;
  display:grid; place-items:center;
  cursor:pointer;
  pointer-events:auto;
}
#whv-back svg{width:10px;height:17px}
/* Sur les écrans sombres, le chevron doit rester lisible. */
#app.dk #whv-back, body.dk #whv-back{color:#fff}

/* La barre : plus épaisse et arrondie qu'avant (3 px plats), avec les couleurs
   déjà présentes dans les démos — piste #E1E1DD, remplissage #111. */
#whv-pg{
  flex:1;
  height:6px;
  margin-right:20px;
  background:#E1E1DD;
  border-radius:999px;
  overflow:hidden;
}
#whv-pg>i{
  display:block;
  height:100%;
  width:0;
  background:#111;
  border-radius:999px;
  transition:width .45s cubic-bezier(.22,1,.36,1);
}

/* LES DEUX BARRES DES DÉMOS N'EXISTENT PLUS.
   Celle du gabarit des questions n'est même plus ÉMISE : le ternaire `.pg` est
   retiré du gabarit par scripts/build-onboarding-v3.mjs, parce que le point 1
   demande qu'il n'en reste qu'une dans tout le DOM — et `display:none` en
   laissait une deuxième, comptée par le script de mesure.
   Celle du module Argent (`.bar`) est masquée par sa propre feuille, dans sa
   racine fantôme, et la rangée du haut remplace les deux. */

/* La feuille de l'onboarding 103b (`components/onboarding/web/funnel.css`)
   n'est PAS neutralisée ici. Elle déclare des sélecteurs non scopés — `.cta`,
   `.row`, `.pg3`… 19 de ses noms de classe existent aussi dans les démos — et
   Next la livre sur /onboarding même quand c'est le v3 qui s'affiche. Rapiécer
   classe par classe ne tenait pas : la rustine neutralisait `position`, `left`,
   `right`, `bottom`, et la recette tablette a trouvé le coup suivant,
   `translate:-50%`, qui poussait le bouton de l'offre à moitié hors de l'écran.
   C'est `components/onboarding/v3/FunnelV3.tsx` qui met cette feuille en
   sommeil tant que le v3 est à l'écran (`endormirFunnel103b`). Aucune valeur
   des démos n'a donc à être recopiée ici. */

/* Chantier 134 — le diagnostic de l'offre de sortie, ADMINS DU STUDIO SEULEMENT.
   Après le test de Joshua, `exit_offer_seen_at` était resté NULL et rien ne
   disait laquelle des conditions avait bloqué la croix. Cette ligne le dit, en
   discret, sous le bouton de l'offre. Elle n'est jamais rendue pour un client :
   `FunnelV3` ne la monte que si `admin` est vrai (lu de `is_studio_admin`). */
.whv-diag-sortie{
  position:fixed;
  left:0;right:0;
  bottom:calc(env(safe-area-inset-bottom, 0px) + 8px);
  /* Chantier 135 — au-dessus de TOUT, y compris la rangée du haut et les
     couches du moteur. Montée dans `document.body` par un portail : un z-index
     ne sort pas du contexte d'empilement de son parent. */
  z-index:2147483000;
  text-align:center;
  pointer-events:none;
}
.whv-diag-sortie > span{
  display:inline-block;
  background:#fff;
  border-radius:999px;
  padding:4px 10px;
  font-size:12px;
  color:#8A8A84;
}

/* Chantier 136 — le bouton d'achat pendant que la feuille Apple s'ouvre.
   Sans ce retour, elle met une seconde à venir, on croit que rien ne s'est
   passé et on rappuie : c'est ce qui a produit trois achats enchaînés le
   9 octobre. Le verrou de FunnelV3 empêche le double appel ; ceci empêche
   l'envie de rappuyer. Pas de nouvelle couleur : juste l'opacité. */
#app .whv-attente{opacity:.55;pointer-events:none}

/* Chantier 136, revu au 139 — rien ne se voit avant que ce soit prêt.
   Le moteur se charge, pose son CSS et rend son premier écran : trois étapes
   qui se voyaient l'une après l'autre au premier lancement.
   Le fondu passe de 200 à 150 ms : c'est la durée imposée au point 2 du 139
   pour l'apparition de la première question après la connexion Apple, et elle
   tient aussi la limite du point 1 (200 ms au plus au lancement). Une seule
   durée pour les deux, donc une seule chose à régler. */
#app.whv-pas-pret{opacity:0}
#app.whv-pret{opacity:1;transition:opacity .15s ease}

/* Chantier 136, revu au 139 — UNE SEULE fenêtre sur l'écran des notifications.
   APP SEULEMENT (`glue.js` ne pose la classe que si APP). La fausse fenêtre de
   la démo s'ouvrait au milieu de l'écran, la vraie arrivait 400 ms plus tard
   pile dessus : deux fenêtres superposées, et le texte de l'écran caché
   derrière. On retire la fausse — la vraie EST la fenêtre.

   CE QUI A ÉTÉ RETIRÉ AU 139, et pourquoi : le contour, la flèche et le
   libellé « Touche « Autoriser » ». Un `UIAlertController` est présenté dans
   sa propre fenêtre, AU-DESSUS de la WKWebView : la page ne peut rien dessiner
   devant lui. La règle de Joshua est nette — si on ne peut pas le mettre
   au-dessus, on ne le met pas. Ne pas réessayer. */
#app .whv-notif-app .palert{display:none}
/* Le 139 remontait le texte en haut de l'écran. Le 143 le descend dans la
   bande basse : c'est en haut que tombe la bannière de la notification. Voir
   la règle complète plus bas. */

/* ===========================================================================
   CHANTIER 137 — UNE VRAIE MISE EN PAGE BUREAU ET TABLETTE

   LE DÉFAUT. Sur un Mac, l'onboarding v3 s'affichait en colonne de téléphone
   posée au milieu de l'écran : 412 px pour l'écran de connexion sur une
   fenêtre de 1440, 495 px pour les questions, et 229 px de vide entre le titre
   « Organise ton PVT. » et le premier bouton. Ce n'était pas une régression :
   personne n'avait jamais dessiné de mise en page bureau.

   TROIS PALIERS, PAR LARGEUR DE FENÊTRE ET JAMAIS PAR APPAREIL. Les bornes
   sont écrites à deux autres endroits, et les trois doivent rester d'accord :
   `readMode()` dans glue.js (l'habillage et `data-mode`) et le découpage des
   `@media` dans scripts/build-onboarding-v3.mjs (le CSS des trois démos).

     < 768 px      téléphone — RIEN NE CHANGE ICI, c'est le contrôle n° 1
     768 → 1023    tablette  — une colonne de 620 px, centrée
     ≥ 1024 px     bureau    — deux colonnes sur la connexion, 620 px ailleurs

   AUCUNE COULEUR NOUVELLE. La carte reprend `rgba(255,255,255,.06)`, déjà
   utilisée cinq fois plus haut dans v3.css pour les cartes sur fond sombre ;
   le gris atténué des promesses est `--mute`, soit `rgba(255,255,255,.55)`,
   présent sept fois dans v3.css. Le fond (#111113) et la lueur sont ceux que
   l'écran de connexion porte déjà.

   POURQUOI CES RÈGLES SONT ICI, ET PAS DANS components/auth/entree.css.
   `.whv-a2` est servi à quatre endroits : /auth/login, /auth/sign-up, le
   funnel 103b — tous les trois EN PRODUCTION — et l'onboarding v3. Sa feuille
   est donc intouchable pendant ce chantier. v3.css, elle, n'est chargée que
   par `components/onboarding/v3/FunnelV3.tsx`. Le sélecteur `#app ~ .whv-a2`
   le redit une seconde fois : `#app` est la racine du moteur, et l'écran de
   connexion n'en est le frère que dans le v3.
   =========================================================================== */

/* Les quatre promesses n'existent que dans le v3 (prop `bureau` de
   `EntreeScreen`) et ne s'affichent qu'au palier bureau. En dessous, elles
   sont dans le DOM sans rien peindre : le téléphone ne bouge pas d'un pixel. */
#app ~ .whv-a2 .promesses{display:none}

/* ── 768 px et au-delà : la colonne de 620 px ───────────────────────────── */
@media (min-width:768px){

  /* LE MOTEUR.
     `.stage.one` porte tout ce que le v3 met en page lui-même : les questions,
     les chargements, l'écran IA, les faits, la to-do, le pack, l'écran des
     notifications, l'insight et l'écran sombre du rêve. La démo le posait en
     haut (`align-items:flex-start`) avec 110 px de marge basse : d'où les
     380 px de vide sous le bouton « Continuer » sur une fenêtre de 900. */
  #app .stage.one{
    padding:24px 48px;
    align-items:center;
    /* `safe` évite de couper le haut du contenu quand il dépasse la fenêtre ;
       les moteurs qui ne le connaissent pas gardent la ligne précédente. */
    align-items:safe center;
  }

  /* 620 ÷ 300. La boîte des démos fait 300 px de large ; la démo Mac la zoomait
     à 1,65 (495 px peints) et la démo tablette à 1,9 (570 px). Le zoom la porte
     à la colonne du chantier. Aucune valeur des démos n'est réécrite : tailles
     de texte, boutons, cartes et rayons sont vus à leur taille réelle, comme
     sur téléphone où l'échelle vaut largeur ÷ 270. */
  #app .ph.mob.solo{zoom:2.0667}

  /* LES ÉCRANS ARGENT OCCUPENT TOUTE LA FENÊTRE.
     `#app:has(.agst)>.top` retire déjà l'en-tête sur ces écrans : les 140 px
     que `.agbox` réservait pour lui sont du vide — et ils RÉDUISENT la toile,
     puisque `<ag-screen>` la met à l'échelle avec min(largeur/1440, hauteur/900).
     Mesuré à 1440 × 900 : colonne peinte 506 px au lieu des 600 px que la démo
     Mac dessine. On rend donc la hauteur à la toile. */
  #app .stage.agst{padding:0}
  #app .agbox{min-height:0}

  /* L'ÉCRAN DE CONNEXION — une colonne de 620 px au lieu des 460 d'entree.css.
     Les écrans secondaires (« Ton e-mail. », « Se connecter », le code, le
     succès) gardent cette colonne jusqu'au plus large : ils n'ont pas de
     discours à gauche, donc pas de deuxième colonne. */
  /* `width:100%` n'est pas décoratif : `.wrap` est un élément flex de `.scr`
     et `entree.css` lui pose `margin:0 auto`. Des marges automatiques sur
     l'axe transversal annulent l'étirement et font tomber la largeur sur le
     contenu — mesuré 485 px (le titre « Organise ton PVT. » en `nowrap` plus
     ses marges) au lieu des 620 demandés. */
  #app ~ .whv-a2 .wrap{width:100%}

  /* v3.css PORTE UNE RÈGLE `.brand` NON SCOPÉE, et elle atteint l'écran de
     connexion. C'est le logotype de l'en-tête des démos tablette et Mac :
     `gap:9px`, `font-weight:800`, `font-size:16px`, `letter-spacing:-.02em`,
     `flex:none`. `entree.css` ne déclare AUCUNE de ces cinq propriétés sur
     `.whv-a2 .brand` — elles passaient donc telles quelles : 9 px de plus
     entre le logotype et le titre (ce qui décalait le titre par rapport au
     premier bouton) et les quatre promesses rendues en gras.
     On les remet à ce qu'elles valaient sans la fuite. Rien sous 768 px : la
     règle fautive vit dans les blocs tablette et ordinateur, le téléphone ne
     l'a jamais vue. */
  #app ~ .whv-a2 .brand{
    gap:0;
    font-weight:inherit;
    font-size:inherit;
    letter-spacing:inherit;
    flex:0 1 auto;
  }

  #app ~ .whv-a2 .wrap,
  #app ~ .whv-a2 .top,
  #app ~ .whv-a2 .ttl,
  #app ~ .whv-a2 .sub,
  #app ~ .whv-a2 .form,
  #app ~ .whv-a2 .cells,
  #app ~ .whv-a2 .resend,
  #app ~ .whv-a2 .spam,
  #app ~ .whv-a2 .okbas{max-width:620px}
}

/* ── CHANTIER 182 — le format ordinateur du chemin « j'ai déjà un compte » ─
   La règle, son pourquoi et ses mesures sont dans `components/auth/entree.css`
   (bloc 182). Elle est REDITE ici parce que le bloc ci-dessus donne 620 px à
   ces écrans avec un sélecteur d'identifiant (`#app ~ …`, spécificité 1,2,0),
   qui bat celui d'entree.css (0,3,0) : sans ces trois lignes, le v3 garderait
   sa colonne de 620 px et sa flèche au bord de cette colonne.
   Ne concerne que « Ton e-mail. », le code et « Se connecter » : l'entrée
   (deux colonnes du chantier 137) et le succès gardent leurs 620 px. */
@media (min-width:768px){
  #app ~ .whv-a2[data-etape="login"] .top,
  #app ~ .whv-a2[data-etape="mail"] .top,
  #app ~ .whv-a2[data-etape="code"] .top{
    max-width:none;
    margin-left:0;
    margin-right:0;
    padding:calc(24px + env(safe-area-inset-top,0px)) 24px 0 calc(24px + env(safe-area-inset-left,0px));
  }

  #app ~ .whv-a2[data-etape="login"] .ttl,
  #app ~ .whv-a2[data-etape="login"] .sub,
  #app ~ .whv-a2[data-etape="login"] .form,
  #app ~ .whv-a2[data-etape="mail"] .ttl,
  #app ~ .whv-a2[data-etape="mail"] .sub,
  #app ~ .whv-a2[data-etape="mail"] .form,
  #app ~ .whv-a2[data-etape="code"] .ttl,
  #app ~ .whv-a2[data-etape="code"] .sub,
  #app ~ .whv-a2[data-etape="code"] .cells,
  #app ~ .whv-a2[data-etape="code"] .resend,
  #app ~ .whv-a2[data-etape="code"] .spam{max-width:480px}

  #app ~ .whv-a2[data-etape="login"] .glow,
  #app ~ .whv-a2[data-etape="mail"] .glow,
  #app ~ .whv-a2[data-etape="code"] .glow{position:fixed}
}

/* ── 768 → 1023 px : l'entrée en UNE colonne, sans trou au milieu ───────── */
/* `.brand` porte `margin:auto 0` : le bloc marque occupe tout l'espace libre
   au-dessus des boutons, qui restent collés au bas de l'écran. Sur un
   téléphone c'est juste — le pouce atteint les boutons. Sur un iPad de
   1194 px de haut, ça fait 376 px de vide entre le titre et le premier bouton
   (mesuré avant le chantier), soit bien au-delà des 200 px de la consigne.
   On centre donc les deux blocs ensemble. Le palier bureau, lui, a sa propre
   mise en page en grille juste en dessous, et le téléphone ne voit rien de
   tout ça. */
@media (min-width:768px) and (max-width:1023px){
  #app ~ .whv-a2[data-etape="entree"] .wrap{justify-content:center;gap:48px}
  #app ~ .whv-a2[data-etape="entree"] .brand{margin:0}
}

/* ── Les deux boutons de connexion, à toutes les largeurs ───────────────── */
/* Même largeur, même hauteur, même rayon : ils sortent de la même règle
   `.pill` d'entree.css et rien ici ne les sépare. Ce qui les séparait, c'est
   le libellé : « Continuer avec Google » passait sur deux lignes quand
   « Continuer avec un e-mail » tenait sur une, et le bouton grandissait.
   Désormais le texte ne revient jamais à la ligne — c'est la taille de police
   qui baisse, mesurée par `EntreeScreen` (effet `ajuster`, v3 seulement). */
#app ~ .whv-a2 .pill{white-space:nowrap}

/* ── 1024 px et au-delà : la connexion en deux colonnes ─────────────────── */
@media (min-width:1024px){

  /* À gauche le discours, aligné en haut : le logotype, « Organise ton PVT. »
     en grand, puis les quatre promesses. À droite les boutons, dans une carte
     de 400 px. Le bloc entier est centré dans la hauteur de la fenêtre. */
  #app ~ .whv-a2[data-etape="entree"] .wrap{
    max-width:1120px;
    display:grid;
    /* 458 = les 400 px de la colonne de boutons, les 28 px de rembourrage de
       la carte de chaque côté et son filet d'un pixel (`box-sizing:border-box`
       est posé par entree.css sur tout l'écran). Ce sont donc bien LES BOUTONS
       qui font 400 — vérifié par scripts/mesure-137.mjs. */
    grid-template-columns:minmax(0,1fr) 458px;
    column-gap:64px;
    align-content:center;
    align-items:start;
    padding:40px;
  }

  /* `margin:auto 0` centrait le bloc marque dans tout l'espace libre : en
     grille, il doit partir du haut de la rangée. */
  #app ~ .whv-a2[data-etape="entree"] .brand{
    margin:0;
    align-items:flex-start;
    text-align:left;
  }

  #app ~ .whv-a2 .promesses{
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-top:28px;
    list-style:none;
    color:var(--mute);
    font-size:16px;
    line-height:1.45;
  }

  /* LA CARTE. Fond `rgba(255,255,255,.06)` — la valeur des cartes sombres de
     v3.css, donc « légèrement distincte » du fond de page sans être une
     couleur nouvelle. Les mentions légales et « Tu as déjà un compte ? » sont
     DANS la carte : elles sont déjà dans `.cta`, rien à déplacer.

     Le haut : 34 px de logotype + 18 px de marge du titre = 52 px, moins le
     pixel de la bordure de la carte. Le premier bouton commence donc
     exactement à la hauteur du titre de la colonne de gauche — c'est mesuré
     écran par écran par scripts/mesure-137.mjs (`alignementTitreBouton`). */
  #app ~ .whv-a2[data-etape="entree"] .cta{
    background:rgba(255,255,255,.06);
    border:1px solid var(--line);
    border-radius:28px;
    padding:51px 28px 28px;
  }
}

/* Chantier 138 — pendant qu'on interroge Apple, aucun prix faux à l'écran.
   APP SEULEMENT : la classe n'est posée que si le hook `prices` existe, donc
   jamais sur le site. Elle est posée sur la BOÎTE du moteur et non sur `#app`,
   dont React réécrit le `className` à chaque rendu — voir `prixAppliquer`. Le moteur a déjà écrit SES prix (129,99 AUD…) dans ces
   deux nœuds ; les montrer une seconde puis les corriger, sur un écran de
   vente, serait pire que de ne rien montrer. On garde la place exacte — un
   squelette, pas un trou — pour que rien ne saute quand les vrais arrivent. */
#app .whv-prix-attente .opl .pt,
#app .whv-prix-attente .opl .pp{
  color:transparent;
  background:rgba(0,0,0,.06);
  border-radius:6px;
}

/* Chantier 142, point 2 — LES ÉCRANS DE RÉSULTAT NE DÉFILENT PAS, ET N'ONT
   PAS DE RETOUR.
   Ce sont des aboutissements : « Ton objectif réalisable », la page de fin,
   l'écran de l'IA. Tout y tient dans l'écran, il n'y a rien à faire défiler,
   et revenir en arrière n'a pas de sens — le seul retour du v3 est celui de
   la rangée du haut, qui n'existe que sur les questions (chantier 139).
   Le rebond élastique est coupé avec le défilement : sur iOS il donne
   l'impression que l'écran bouge alors qu'il n'a nulle part où aller. */
#app .whv-resultat,
#app .whv-resultat * {
  overscroll-behavior: none;
}
#app .whv-resultat .ph,
#app .whv-resultat .pc,
#app .whv-resultat .osc,
#app .whv-resultat .in,
#app .whv-resultat .in2 {
  overflow: hidden;
}
#app .whv-resultat .pbk,
#app .whv-resultat .bk2,
#app .whv-resultat .back,
#app .whv-resultat .top {
  display: none !important;
}

/* Chantier 143, point 2 — L'ÉCRAN DES NOTIFICATIONS : RIEN SOUS UNE FENÊTRE iOS.
   APP SEULEMENT (`glue.js` ne pose la classe que si APP).

   Trois zones, et une seule est à nous :
     · de 0 à la zone sûre + 110 pt : la BANNIÈRE de la vraie notification y
       tombe. On n'y écrit rien — c'est pour ça que la fausse bannière de la
       démo (`.nban`) disparaît ici : la vraie prend sa place ;
     · le centre, à ±140 pt : les FENÊTRES d'iOS (autorisation, puis avis).
       La fausse fenêtre de la démo (`.palert`) disparaît pour la même raison ;
     · la bande BASSE : le texte de l'écran, et lui seul.

   Le texte ne bouge plus de tout l'écran : `justify-content:flex-end` le pose
   en bas une fois pour toutes, au lieu des ressorts flex de la démo qui le
   déplaçaient au fil des animations. C'est le « rabaisser le texte » de
   Joshua.

   Pourquoi `55%` et pas une valeur calculée : la bande basse commence au
   centre + 140 pt, soit 50 % + 140. Sur les écrans visés (667 à 874 pt de
   haut), une marge haute de 55 % de la hauteur place le bloc sous cette
   limite dans tous les cas, et le `flex-end` le colle au bas. La mesure, elle,
   est faite par `scripts/mesure-notif-143.mjs`, qui refuse tout chevauchement. */
#app .whv-notif-app .nban { display: none }
#app .whv-notif-app .pc {
  justify-content: flex-end;
  padding-top: 55%;
  padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 28px);
}
#app .whv-notif-app .pfl,
#app .whv-notif-app .pfl.s { flex: 0 0 0 }
#app .whv-notif-app .pht,
#app .whv-notif-app .phb { animation: none !important; transform: none !important }

/* ===== CHANTIER 144, point 4 — UNE SEULE LIGNE DE TITRE, SUR TOUS LES ÉCRANS

   Joshua, sur l'appareil : « L'argent que l'Australie te doit » trop haut, le
   titre du pack des 88 jours ailleurs, et d'autres. Le 143 avait mesuré
   « 0 écart » — sous Chromium, et sur une liste blanche de onze types d'écran
   qui ne contenait justement pas ceux-là.

   LA LIGNE est celle du 134 : zone sûre + 14 + 44 + 12, c'est-à-dire juste
   sous la rangée du haut. `fit()` (glue.js) la publie en unités LOCALES dans
   `--whv-titre`, parce que tout ce qui est dans la boîte est remis à
   l'échelle : un `calc(env(safe-area-inset-top) + 70px)` écrit ici vaudrait
   70 × k pixels réels, soit 104 px sur un iPhone 17 Pro.

   Ici, donc : plus de centrage vertical, plus de ressort au-dessus du titre,
   et la même ligne de départ pour chaque famille d'écran. Aucune correction à
   la mesure, aucun réessai — le code d'ancrage JavaScript du 143 est
   supprimé.

   L'ÉCRAN DES NOTIFICATIONS EST LA SEULE EXCEPTION, et elle est voulue
   (chantier 143, point 2) : son texte vit dans la bande basse, sous la
   bannière et sous la fenêtre du système. Il porte `.whv-notif-app`, et toutes
   les règles ci-dessous l'écartent.

   APP ET TÉLÉPHONE SEULEMENT. Sur le site, et sur tablette et Mac, les trois
   démos restent la référence au pixel : `--whv-titre` n'y est pas publiée et
   ces règles ne s'appliquent pas. */

/* 1. les écrans du gabarit v3 : questions, aha, to-do, guide, pack, offre… */
html[data-whv="app"][data-mode="mob"] #app .box:not(.whv-notif-app):not(.whv-load) > .ph > .pc {
  justify-content: flex-start !important;
  padding-top: var(--whv-titre, 0px) !important;
}
/* Le ressort qui précédait le titre poussait l'écran vers le bas d'une valeur
   qui dépendait du contenu : c'est lui qui faisait sauter les titres d'un
   écran à l'autre. Ceux du BAS restent, ils tiennent le bouton en place. */
html[data-whv="app"][data-mode="mob"] #app .box:not(.whv-notif-app):not(.whv-load) > .ph > .pc > .pfl:first-child,
html[data-whv="app"][data-mode="mob"] #app .box:not(.whv-notif-app):not(.whv-load) > .ph > .pc > .pbk:first-child + .pfl {
  display: none !important;
}

/* 2. l'IA, les chargements et la lecture d'une fiche. Le bloc était centré
      dans la hauteur ; il part maintenant de la même ligne. L'animation du
      logo reste AU-DESSUS de la phrase, comme la démo la compose : c'est le
      bloc qui commence à la ligne commune. */
html[data-whv="app"][data-mode="mob"] #app .box:not(.whv-load) .v5s > .in {
  justify-content: flex-start !important;
  padding-top: var(--whv-titre, 0px) !important;
}

/* 2 bis. CHANTIER 144, SECOND PASSAGE — la phrase AVANT l'animation.

   Au premier passage, j'avais laissé ces deux familles en dehors de la ligne
   commune et je l'avais écrit : sur les chargements et sur l'écran de l'IA,
   l'animation du logo précède la phrase, donc la phrase tombait 183 px plus
   bas (312 px au lieu de 129). Pour qu'elle soit à la ligne il n'y a qu'une
   solution : la faire passer DEVANT l'animation.

   C'est fait ici, et uniquement en ordre d'affichage (`order`) : le document
   n'est pas touché, le texte n'est pas touché, la taille n'est pas touchée,
   et ce qui suit la phrase reste dans le même ordre relatif. L'animation
   descend sous elle.

   Les marges inlines de la démo (22 px au-dessus de la phrase, 10 px au-dessus
   du nom) étaient là pour séparer la phrase de l'animation AU-DESSUS : elles
   passent sur l'animation, qui est maintenant en dessous. L'écart visuel est
   le même, de l'autre côté.

   Si tu préfères l'ancienne composition — l'animation en haut, la phrase
   dessous — c'est ce bloc, et lui seul, qu'il faut retirer. */
/* `.gl + .ti` : seulement les CHARGEMENTS, où la phrase suit l'animation.
   Sur l'écran de l'IA, `.ti` est « Ton analyse est prête. » — une phrase qui
   n'arrive qu'à la fin, invisible au départ. La faire passer devant y plaçait
   une boîte vide de 46 px en haut, et c'est le nom de l'IA qui tombait à
   175 px. Son titre, c'est `.nm` et `.st`, traités juste en dessous. */
html[data-whv="app"][data-mode="mob"] #app .box:not(.whv-load) .v5s > .in > .gl + .ti {
  order: -1;
  margin-top: 0 !important;
}
html[data-whv="app"][data-mode="mob"] #app .box:not(.whv-load) .v5s > .in > .gl {
  margin-top: 22px;
}
/* L'écran de l'IA : le nom et la ligne d'état passent devant, dans le bloc
   centré qui les porte avec l'animation. */
html[data-whv="app"][data-mode="mob"] #app .box .v5s > .in > div:first-child > .nm {
  order: -2;
  margin-top: 0 !important;
}
html[data-whv="app"][data-mode="mob"] #app .box .v5s > .in > div:first-child > .st {
  order: -1;
}
html[data-whv="app"][data-mode="mob"] #app .box .v5s > .in > div:first-child > .gl {
  margin-top: 14px;
}

/* 3. la page de fin et « Ton objectif réalisable » : `.in` y est posée en
      absolu (`inset:42px 18px 20px`), donc c'est son `top` qu'on aligne. */
html[data-whv="app"][data-mode="mob"] #app .box .cgp > .in {
  top: var(--whv-titre, 42px) !important;
}

/* 4. l'offre : elle défile (1 300 px de haut pour un écran de 874), donc on
      aligne le DÉBUT de la page, pas son centre. Son conteneur de défilement
      commence 40 px plus bas (`inset:40px 0 0`, la place de la barre d'état
      de la maquette) : ces 40 px s'ajoutaient à la ligne, soit 52 px réels. */
html[data-whv="app"][data-mode="mob"] #app .box .cgp > .osc {
  top: 0 !important;
}
html[data-whv="app"][data-mode="mob"] #app .box .cgp .in2 {
  padding-top: var(--whv-titre, 6px) !important;
}

/* 5. La marge du premier élément s'ajoutait à la ligne. Celle du titre de
      l'offre (`.ot`, 14 px) le posait 18 px plus bas que partout ailleurs. */
html[data-whv="app"][data-mode="mob"] #app .box .cgp .in2 > .ot,
html[data-whv="app"][data-mode="mob"] #app .box .cgp > .in > .hk {
  margin-top: 0 !important;
}

/* 6. Aucune translation verticale du titre à l'entrée : un fondu, et c'est
      tout. Un titre qui monte de 10 px en arrivant ne « commence » pas à la
      même hauteur pendant les 400 premières millisecondes.
      (Une règle `!important` de la feuille passe DEVANT une animation de
      l'API Web Animations : c'est l'ordre de la cascade. L'opacité, elle,
      continue de s'animer — c'est le fondu qu'on garde.) */
html[data-whv="app"][data-mode="mob"] #app .box .pht,
html[data-whv="app"][data-mode="mob"] #app .box .ti,
html[data-whv="app"][data-mode="mob"] #app .box .fk,
html[data-whv="app"][data-mode="mob"] #app .box .hk,
html[data-whv="app"][data-mode="mob"] #app .box .ot,
html[data-whv="app"][data-mode="mob"] #app .box .okick,
html[data-whv="app"][data-mode="mob"] #app .box .pkick,
html[data-whv="app"][data-mode="mob"] #app .box .phero,
html[data-whv="app"][data-mode="mob"] #app .box .eyeb,
/* L'offre entrait en GLISSANT de 14 px : ce n'est pas le titre qui est animé,
   c'est le panneau entier — et le titre monte avec lui. Mesuré : 135 px à
   100 ms, 129 px à la fin. Il reste le fondu. */
html[data-whv="app"][data-mode="mob"] #app .box .cgp {
  transform: none !important;
}

/* ===== CHANTIER 149 — LES CHARGEMENTS REVIENNENT AU 053fc67 =================

   Joshua : la boule au milieu de l'écran, à sa taille d'origine, la phrase à
   sa place d'origine. Les chantiers 144 et 145 avaient aligné CES écrans sur
   la ligne commune des titres et fait passer la phrase AU-DESSUS de
   l'animation (`order:-1`). Pour un chargement, ça n'apporte rien : il n'y a
   pas de titre à aligner, et la composition de la démo — animation centrée,
   phrase 22 px dessous — était la bonne.

   Rien n'est réécrit : les quatre règles concernées écartent maintenant
   `.whv-load` (posée par `glue.js`), et l'écran retombe sur la feuille des démos, inchangée depuis le
   053fc67 (`.v5s .in`, `.v5s .gl`, `.v5s .ti`) plus le style inline de
   `V5LOAD` (`justify-content:center`). L'écran de l'IA et la
   lecture d'une fiche gardent la mise en page actuelle.
   ========================================================================= */

html[data-whv="app"][data-mode="mob"] #app .box.whv-load .v5s > .in {
  /* Les 38 px de la démo, plus la zone sûre — le calcul du 143, au pixel. */
  padding-top: calc(38px + var(--whv-sr, 0px)) !important;
}

/* ===== CHANTIER 148, point 2 — « TROP DÉZOOMÉ, LES CHIFFRES PAS ASSEZ GROS »

   La page de fin de l'app est rendue par le module CG, dont la feuille est
   écrite pour la MAQUETTE de téléphone des démos — un téléphone dessiné en
   petit dans une page large. Servie en plein écran, elle garde ses tailles de
   maquette : le titre à 9,5 px, le libellé à 11,5 px, les étapes à 12,5 px.
   C'est ça que Joshua voit, et il a raison.

   Les facteurs sont les siens : libellé et ligne d'épargne +20 %, bloc des
   88 jours et étapes +15 %. Chaque valeur ci-dessous est l'ancienne, relevée
   sur la page, multipliée — rien n'est inventé, et aucune couleur, police ou
   forme ne change.

   Le gros chiffre, lui, n'est plus ici : sa taille est MESURÉE au rendu
   (`WHV_AJUSTE_HERO`), la plus grande qui tient dans sa boîte.

   Les mêmes valeurs sont injectées dans la racine fantôme du module Argent
   (glue.js) : `app.css` ne l'atteint pas, et l'écran de fin d'Australie y
   vit. */
html[data-whv="app"][data-mode="mob"] #app .whv-unite {
  font-size: .5em;
  font-weight: 800;
  letter-spacing: 0;
}
/* Le titre et le libellé du gros chiffre, +20 % (9,5 → 11,4 · 11,5 → 13,8). */
html[data-whv="app"][data-mode="mob"] #app .cgx .hk { font-size: 11.4px }
html[data-whv="app"][data-mode="mob"] #app .cgx .hs { font-size: 13.8px }
/* La ligne « dont X de côté, soit ≈ Y par semaine », sous le libellé. */
html[data-whv="app"][data-mode="mob"] #app .hs.whv-hs2,
html[data-whv="app"][data-mode="mob"] #app .fs.whv-fs2 { margin-top: 4px }
/* Le bloc de récupération et les étapes, +15 % (22 → 25,3 · 10,5 → 12,1 ·
   17 → 19,6 · 9 → 10,4 · 12,5 → 14,4). */
html[data-whv="app"][data-mode="mob"] #app .cgx .blk .rcb b { font-size: 25.3px }
html[data-whv="app"][data-mode="mob"] #app .cgx .blk .rcb span { font-size: 12.1px }
html[data-whv="app"][data-mode="mob"] #app .cgx .pr span { font-size: 19.6px }
html[data-whv="app"][data-mode="mob"] #app .cgx .st .s em { font-size: 10.4px }
html[data-whv="app"][data-mode="mob"] #app .cgx .st .s b { font-size: 14.4px }

/* ===== CHANTIER 157 — la page de fin « Ton objectif », sur iPhone =====
   Joshua, 24/10 : des bords visibles à gauche et à droite du gros chiffre,
   des flashs blancs à l'apparition, un anneau des 88 jours « trop brillant ».
   Cause : le halo du chiffre (`text-shadow` 40 px) est découpé net par le
   calque que crée le flou animé (`filter: blur`) de chaque bloc, d'où un
   rectangle visible ; et l'anneau a une lueur animée (`drop-shadow`).
   On garde le thème à l'identique, sans halo, sans flou, sans lueur.
   (`!important` passe devant les animations de l'API Web Animations.) */
.box.cg .cgp:not(.lt) .hero { text-shadow: none !important }
.box.cg .cgp:not(.lt) [data-s],
.box.cg .cgp:not(.lt) .rgw { filter: none !important }
.box.cg .cgp:not(.lt) .y2b {
  background: rgba(255, 255, 255, .06) !important;
  border-color: rgba(255, 255, 255, .08) !important;
}
.box.cg .cgp:not(.lt) .in > .cta { flex: none }
.box.cg .cgp:not(.lt) .rgf { stroke: rgba(236, 243, 224, .85) !important }
.box.cg .cgp { -webkit-backface-visibility: hidden; backface-visibility: hidden }
