/* =====================================================================
   HAHA — landing « Partage ton rire MDRR »
   DA : encre #0E3B2E · vert #1FA45B · lime #C8F27A · papier #F6FAF1 · soleil #FFC93C
   Polices auto-hébergées (SIL OFL) : Fredoka (titres), Nunito (texte).
   Le mouvement n’existe que sous html.motion (posé par landing.js hors
   prefers-reduced-motion) : sans JS, la page est complète et immobile.
   ===================================================================== */

@font-face{font-family:Fredoka;src:url(/fonts/Fredoka-Medium.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Fredoka;src:url(/fonts/Fredoka-SemiBold.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:Fredoka;src:url(/fonts/Fredoka-Bold.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Nunito;src:url(/fonts/Nunito-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Nunito;src:url(/fonts/Nunito-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:Nunito;src:url(/fonts/Nunito-SemiBold.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:Nunito;src:url(/fonts/Nunito-Bold.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Nunito;src:url(/fonts/Nunito-ExtraBold.woff2) format("woff2");font-weight:800;font-display:swap}

:root{
  color-scheme:light;
  --ink:#0E3B2E; --ink-2:#0A2E23; --ink-3:#164C3C; --ink-4:#1E5C49;
  --green:#1FA45B; --green-d:#15803F; --green-t:#147A43;
  --lime:#C8F27A; --lime-2:#E6F9C4; --lime-3:#F1FBDD;
  --paper:#F6FAF1; --paper-2:#EBF4E1; --white:#fff;
  --sun:#FFC93C; --sun-d:#F2A900;
  --mint:#DCEFD2; --mint-2:#BFEFD6;
  --muted:#4D6B60; --muted-d:#A9C2B6;
  --line:rgba(14,59,46,.12);
  --f-display:Fredoka,"Arial Rounded MT Bold",ui-rounded,system-ui,sans-serif;
  --f-body:Nunito,ui-rounded,system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --spring:cubic-bezier(.34,1.56,.64,1);
  --spring-2:cubic-bezier(.22,1.8,.5,1);
  --gutter:clamp(16px,4vw,56px);
  --maxw:1320px;
  --r-xl:clamp(28px,4vw,56px);
  --top-h:72px;
}

/* ---------------------------------------------------------------- base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--f-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}
h1,h2,h3,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
mark{background:none;color:inherit}
::selection{background:var(--lime);color:var(--ink)}
:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:12px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:fixed;left:16px;top:-80px;z-index:200;background:var(--ink);color:#fff;padding:12px 18px;border-radius:14px;font-weight:800;text-decoration:none;transition:top .2s}
.skip:focus{top:16px}
.wrap{width:100%;max-width:calc(var(--maxw) + var(--gutter) * 2);margin:0 auto;padding:0 var(--gutter)}
.ico{width:20px;height:20px;flex:none}

/* « Nouveau » : un seul interrupteur, l’attribut data-nouveau sur <html> */
.new-badge,.new-dot,.new-sr{display:none}
html[data-nouveau] .new-badge{display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:4px 10px 4px 8px;border-radius:99px;background:var(--lime);color:var(--ink);font:700 12px/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;vertical-align:middle;white-space:nowrap}
html[data-nouveau] .new-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(31,164,91,.25)}
html[data-nouveau] .new-dot{display:inline-block;width:7px;height:7px;margin:0 0 0 5px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px var(--lime);vertical-align:super}
html[data-nouveau] .new-sr{display:inline;position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------------------------------------------------------------- typo */
.eyebrow{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;font:800 13px/1.2 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--green-t);margin-bottom:18px}
.eyebrow::before{content:"";width:22px;height:10px;margin-right:8px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 10'%3E%3Cpath d='M1 5q2.5-4 5 0t5 0 5 0 5 0' fill='none' stroke='%231FA45B' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E")}
.eyebrow--lime{color:var(--lime)}
.eyebrow--lime::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 10'%3E%3Cpath d='M1 5q2.5-4 5 0t5 0 5 0 5 0' fill='none' stroke='%23C8F27A' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E")}
.h2{font:700 clamp(2.6rem,1.3rem + 4.6vw,5.9rem)/.94 var(--f-display);letter-spacing:-.035em;text-wrap:balance}
.h3{font:600 clamp(1.4rem,1.1rem + .9vw,2rem)/1.08 var(--f-display);letter-spacing:-.015em}
.lead{font-size:clamp(1.08rem,1rem + .42vw,1.4rem);line-height:1.55;color:var(--muted);max-width:40ch;text-wrap:pretty}
.hl{position:relative;z-index:0;white-space:nowrap;padding:0 .08em}
.hl::before{content:"";position:absolute;z-index:-1;left:-.06em;right:-.06em;bottom:.04em;height:.42em;background:var(--lime);border-radius:.3em;transform-origin:left center;transform:rotate(-1.2deg)}
.sec-head{display:grid;gap:0;margin-bottom:clamp(40px,6vw,80px)}
.sec-head .lead{margin-top:22px}
.sec-head--center{justify-items:center;text-align:center}
.sec-head--center .lead{max-width:52ch}

/* ---------------------------------------------------------------- boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:99px;font:600 17px/1 var(--f-display);text-decoration:none;transition:transform .45s var(--spring),background-color .25s,color .25s,box-shadow .3s}
.btn--sm{min-height:44px;padding:0 18px;font-size:16px}
.btn--ink{background:var(--ink);color:#fff}
.btn--ink .ico{color:var(--lime)}
.btn--ink:hover{background:var(--green-d)}
.stores{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.stores--center{justify-content:center}
.store{display:inline-flex;align-items:center;gap:12px;min-height:62px;padding:10px 24px 10px 16px;border-radius:20px;background:var(--ink);color:#fff;text-decoration:none;box-shadow:0 14px 30px -18px rgba(14,59,46,.8);transition:transform .45s var(--spring),background-color .25s,box-shadow .3s}
.store:hover{background:var(--green-d);box-shadow:0 20px 40px -18px rgba(21,128,63,.7)}
.store:active{transform:scale(.96)}
.store__ico{width:30px;height:30px;padding:5px;border-radius:10px;background:var(--lime);color:var(--ink);flex:none}
.store__txt{display:grid;font:600 19px/1.1 var(--f-display);letter-spacing:-.01em}
.store__txt small{font:700 12px/1.3 var(--f-body);letter-spacing:.02em;opacity:.8}
.store--light{background:#fff;color:var(--ink)}
.store--light .store__ico{background:var(--ink);color:var(--lime)}
.store--light:hover{background:var(--lime)}

/* ---------------------------------------------------------------- en-tête */
.top{position:fixed;inset:0 0 auto;z-index:60;padding:10px var(--gutter) 0;pointer-events:none;transition:transform .55s var(--ease-out)}
.top.is-hidden{transform:translateY(-130%)}
.top__bar{position:relative;display:flex;align-items:center;gap:18px;max-width:var(--maxw);height:var(--top-h);margin:0 auto;padding:0 10px 0 14px;pointer-events:auto}
.top__bar::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:26px;background:rgba(246,250,241,.86);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);border:1px solid rgba(14,59,46,.08);box-shadow:0 16px 40px -24px rgba(14,59,46,.45);opacity:0;transform:scale(1.02,1.15);transition:opacity .4s,transform .6s var(--ease-out)}
.top.is-scrolled .top__bar::before{opacity:1;transform:none}
.top__progress{position:absolute;left:22px;right:22px;bottom:0;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--lime),var(--green));transform-origin:left;transform:scaleX(0);opacity:0;transition:opacity .3s}
.top.is-scrolled .top__progress{opacity:1}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;margin-right:auto;border-radius:14px}
.logo__icon{width:40px;height:40px;border-radius:12px;box-shadow:0 6px 14px -8px rgba(14,59,46,.6);transition:transform .5s var(--spring)}
.logo:hover .logo__icon{transform:rotate(-10deg) scale(1.06)}
.logo__word{display:flex;font:700 27px/1 var(--f-display);letter-spacing:-.02em}
.logo__word span{display:inline-block}
.logo:hover .logo__word span{animation:hop .55s var(--spring) both}
.logo:hover .logo__word span:nth-child(2){animation-delay:.06s}
.logo:hover .logo__word span:nth-child(3){animation-delay:.12s}
.logo:hover .logo__word span:nth-child(4){animation-delay:.18s}
@keyframes hop{0%,100%{transform:none}40%{transform:translateY(-8px) rotate(-6deg)}}
.top__nav{display:flex;gap:2px}
.top__nav a{position:relative;padding:10px 14px;border-radius:99px;font:700 15px/1 var(--f-body);text-decoration:none;white-space:nowrap;transition:color .2s}
.top__nav a::before{content:"";position:absolute;inset:4px 2px;z-index:-1;border-radius:99px;background:var(--lime);transform:scale(.6);opacity:0;transition:transform .4s var(--spring),opacity .2s}
.top__nav a:hover::before,.top__nav a.is-current::before{transform:none;opacity:1}
.top__cta{margin-left:6px}
/* Lien de langue (FR / EN), visible à toutes les largeurs */
.top__lang{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:0 12px;border-radius:99px;font:800 14px/1 var(--f-body);letter-spacing:.06em;text-decoration:none;box-shadow:inset 0 0 0 1.5px var(--line);transition:background-color .2s,box-shadow .2s}
.top__lang:hover{background:var(--lime);box-shadow:inset 0 0 0 1.5px transparent}
.top__menu{display:none;align-items:center;gap:10px;min-height:44px;padding:0 16px 0 14px;border-radius:99px;background:var(--ink);color:#fff;font:600 16px/1 var(--f-display)}
.top__menu-lines{display:grid;gap:5px;width:18px}
.top__menu-lines i{display:block;height:2.5px;border-radius:2px;background:var(--lime);transition:transform .4s var(--spring)}
.top__menu[aria-expanded="true"] .top__menu-lines i:first-child{transform:translateY(3.75px) rotate(45deg)}
.top__menu[aria-expanded="true"] .top__menu-lines i:last-child{transform:translateY(-3.75px) rotate(-45deg)}

.menu{position:fixed;inset:0;z-index:55;display:flex;flex-direction:column;justify-content:center;padding:110px var(--gutter) 40px;background:var(--ink);color:#fff;overflow:auto}
.menu[hidden]{display:none}
.menu__nav{display:grid;gap:4px}
.menu__nav a{display:flex;align-items:baseline;flex-wrap:wrap;gap:14px;padding:6px 0;font:700 clamp(34px,9vw,60px)/1.05 var(--f-display);letter-spacing:-.03em;text-decoration:none}
.menu__nav a:hover{color:var(--lime)}
.menu__nav small{font:800 13px/1 var(--f-body);letter-spacing:.1em;color:var(--lime)}
.menu__nav .new-badge{margin-left:0;align-self:center}
.menu__mascot{position:absolute;right:-20px;bottom:-10px;width:clamp(150px,40vw,260px);opacity:.95;pointer-events:none}
.menu__foot{margin-top:32px;color:var(--muted-d);font-weight:700}
html.motion .menu:not([hidden]) .menu__nav a{animation:menuIn .7s var(--ease-out) both}
html.motion .menu:not([hidden]) .menu__nav a:nth-child(2){animation-delay:.04s}
html.motion .menu:not([hidden]) .menu__nav a:nth-child(3){animation-delay:.08s}
html.motion .menu:not([hidden]) .menu__nav a:nth-child(4){animation-delay:.12s}
html.motion .menu:not([hidden]) .menu__nav a:nth-child(5){animation-delay:.16s}
html.motion .menu:not([hidden]) .menu__nav a:nth-child(6){animation-delay:.2s}
html.motion .menu:not([hidden]) .menu__nav a:nth-child(7){animation-delay:.24s}
html.motion .menu:not([hidden]) .menu__mascot{animation:popIn .8s var(--spring) .2s both}
@keyframes menuIn{from{opacity:0;transform:translateY(40px)}}
@keyframes popIn{from{opacity:0;transform:scale(.4) rotate(-20deg)}}
html.menu-open{overflow:hidden}
html.menu-open .top{transform:none}
html.menu-open .top__bar::before{opacity:0}
html.menu-open .logo{color:#fff}

/* ---------------------------------------------------------------- hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:grid;align-items:center;padding:calc(var(--top-h) + clamp(28px,6vh,72px)) 0 clamp(80px,10vh,120px);overflow:clip}
.hero__bg{position:absolute;inset:0;z-index:-1;pointer-events:none;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.hero__glow{position:absolute;border-radius:50%}
.hero__glow--a{width:70vw;height:70vw;max-width:1100px;max-height:1100px;right:-22vw;top:-30vw;background:radial-gradient(circle,rgba(200,242,122,.75),rgba(200,242,122,0) 62%)}
.hero__glow--b{width:50vw;height:50vw;left:-22vw;bottom:-26vw;background:radial-gradient(circle,rgba(31,164,91,.18),rgba(31,164,91,0) 65%)}
.hero__dots{position:absolute;inset:0;background-image:radial-gradient(rgba(14,59,46,.13) 1.3px,transparent 1.6px);background-size:26px 26px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 30% 40%,#000,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 30% 40%,#000,transparent 75%)}
.hero__inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,4vw,72px);align-items:center}
.hero__eyebrow{display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 12px;border-radius:99px;background:#fff;box-shadow:0 8px 24px -16px rgba(14,59,46,.6),inset 0 0 0 1px var(--line);font:800 14px/1 var(--f-body);letter-spacing:.02em;animation:fadeUp .8s var(--ease-out) .05s both}
.pulse-dot{position:relative;width:10px;height:10px;border-radius:50%;background:var(--green)}
.pulse-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--green);animation:ping 1.8s var(--ease-out) infinite}
@keyframes ping{from{transform:scale(1);opacity:.6}to{transform:scale(3);opacity:0}}
.hero__title{margin:26px 0 0;font:700 clamp(3.9rem,1.6rem + 7.2vw,10rem)/.86 var(--f-display);letter-spacing:-.045em}
.hero__line{display:block;white-space:nowrap}
.ch{display:inline-block;animation:chDrop 1s var(--spring) both;animation-delay:calc(var(--i) * 38ms + 120ms);transform-origin:50% 100%}
@keyframes chDrop{0%{opacity:0;transform:translateY(-.55em) rotate(-14deg) scale(.7)}55%{opacity:1}100%{opacity:1;transform:none}}
.hero__line--mdrr{margin-top:.1em}
.mdrr{position:relative;display:inline-block;padding:0 .14em .02em .1em;color:var(--ink)}
.mdrr__bg{position:absolute;inset:.08em -.02em .02em;border-radius:.24em;background:var(--lime);transform:rotate(-2.2deg);transform-origin:left center;animation:barIn .9s var(--ease-out) .55s both;box-shadow:.07em .07em 0 var(--ink)}
@keyframes barIn{from{transform:rotate(-2.2deg) scaleX(0)}}
.mdrr__txt{position:relative;display:inline-block}
.mdrr .ch{animation:chDrop 1s var(--spring) both,giggle 3.2s ease-in-out infinite;animation-delay:calc(var(--i) * 38ms + 520ms),calc(var(--i) * 70ms + 2.2s)}
@keyframes giggle{0%,56%,100%{translate:0 0;rotate:0deg}62%{translate:0 -.09em;rotate:-5deg}68%{translate:0 0;rotate:0deg}74%{translate:0 -.07em;rotate:4deg}80%{translate:0 0;rotate:0deg}86%{translate:0 -.04em;rotate:-2deg}92%{translate:0 0}}
.hero.is-laughing .mdrr .ch{animation:none}
.hero__sub{margin-top:28px;font:600 clamp(1.45rem,1.1rem + 1.2vw,2.25rem)/1.15 var(--f-display);letter-spacing:-.02em;animation:fadeUp .9s var(--ease-out) .85s both}
.hero__sub::after{content:"";display:block;width:min(260px,60%);height:12px;margin-top:6px;background:no-repeat left/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 12'%3E%3Cpath d='M2 7q8-6 16 0t16 0 16 0 16 0 16 0 16 0 16 0 16 0 16 0 16 0 16 0 16 0 16 0 16 0 16 0 16 0' fill='none' stroke='%231FA45B' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");animation:drawIn 1.2s var(--ease-out) 1.2s both;clip-path:inset(0 0 0 0)}
@keyframes drawIn{from{clip-path:inset(0 100% 0 0)}}
.hero__text{margin-top:18px;max-width:44ch;font-size:clamp(1.02rem,.96rem + .3vw,1.2rem);color:var(--muted);animation:fadeUp .9s var(--ease-out) .95s both}
.hero .stores{animation:fadeUp .9s var(--ease-out) 1.05s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}}

.hero__stage{position:relative;display:grid;place-items:center;min-height:min(78vh,720px);isolation:isolate}
.sunburst{position:absolute;z-index:-1;width:min(118%,720px);aspect-ratio:1;left:62%;top:40%;translate:-50% -50%;animation:sunIn 1.3s var(--spring) .25s both}
.sunburst::before{content:"";position:absolute;inset:23%;border-radius:50%;background:radial-gradient(circle at 38% 34%,#FFD866,var(--sun) 55%,#FFBF1F);box-shadow:0 30px 80px -20px rgba(242,169,0,.55)}
.sunburst__rays{position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(255,201,60,.38) 0deg 7deg,transparent 7deg 22.5deg);-webkit-mask-image:radial-gradient(circle,#000 30%,transparent 70%);mask-image:radial-gradient(circle,#000 30%,transparent 70%)}
html.motion .sunburst__rays{animation:spin 70s linear infinite}
@keyframes spin{to{transform:rotate(1turn)}}
@keyframes sunIn{from{opacity:0;scale:.5}}
.hero__phone{position:relative;z-index:2;rotate:4deg;animation:phoneIn 1.2s var(--ease-out) .35s both}
.hero .phone{--pw:clamp(232px,20vw,350px)}
@keyframes phoneIn{from{opacity:0;transform:translateY(80px) rotate(8deg)}}
html.motion .hero__phone .phone{animation:float 7s ease-in-out 1.6s infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}

.orbit{position:absolute;inset:0;z-index:3;pointer-events:none}
.orbit li{position:absolute;width:clamp(52px,6.4vw,92px);aspect-ratio:1;animation:popIn .9s var(--spring) both}
.orbit li img{width:100%;filter:drop-shadow(0 10px 14px rgba(14,59,46,.22))}
html.motion .orbit li img{animation:bob 5s ease-in-out infinite}
.orbit li:nth-child(1){left:6%;top:8%;animation-delay:.9s}
.orbit li:nth-child(2){right:4%;top:14%;animation-delay:1s;width:clamp(44px,5vw,72px)}
.orbit li:nth-child(3){right:0;top:52%;animation-delay:1.1s;width:clamp(40px,4.4vw,64px)}
.orbit li:nth-child(4){left:4%;top:44%;animation-delay:1.2s;width:clamp(40px,4.4vw,62px)}
.orbit li:nth-child(5){right:16%;bottom:2%;animation-delay:1.3s}
.orbit li:nth-child(2) img{animation-delay:-1.2s;animation-duration:6s}
.orbit li:nth-child(3) img{animation-delay:-2.4s;animation-duration:4.4s}
.orbit li:nth-child(4) img{animation-delay:-.8s;animation-duration:5.6s}
.orbit li:nth-child(5) img{animation-delay:-3.1s;animation-duration:6.4s}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-12px) rotate(5deg)}}

.sun-btn{position:absolute;z-index:4;left:-2%;bottom:4%;width:clamp(130px,13vw,190px);aspect-ratio:1;border-radius:50%;animation:popIn 1s var(--spring) 1.4s both;-webkit-tap-highlight-color:transparent}
.sun-btn:focus-visible{outline-offset:-6px;border-radius:50%}
.sun-btn__bubble{position:absolute;left:58%;bottom:92%;padding:9px 14px;border-radius:16px 16px 16px 4px;background:#fff;box-shadow:0 10px 26px -14px rgba(14,59,46,.6),inset 0 0 0 1.5px var(--ink);font:600 15px/1 var(--f-display);white-space:nowrap;transform-origin:0 100%;animation:popIn .7s var(--spring) 2s both}
html.motion .sun-btn__bubble{animation:popIn .7s var(--spring) 2s both,nudge 4s ease-in-out 3s infinite}
@keyframes nudge{0%,80%,100%{transform:none}85%{transform:rotate(-6deg) scale(1.06)}90%{transform:rotate(4deg)}95%{transform:rotate(-2deg)}}
.sun-btn.is-playing .sun-btn__bubble{opacity:0;transition:opacity .2s}
.mascot{width:100%;height:auto;overflow:visible}
.mascot .m-arm,.mascot .m-head,.mascot .m-mouth,.mascot .m-legs,.mascot .m-lines{transform-box:view-box}
.mascot .m-arm--l{transform-origin:70px 120px}
.mascot .m-arm--r{transform-origin:170px 120px}
.mascot .m-arm--wave{transform-origin:170px 116px}
.mascot .m-arm--mic{transform-origin:68px 128px}
.mascot .m-head{transform-origin:120px 170px}
.mascot .m-mouth{transform-origin:120px 120px}
.mascot .m-lines{transform-origin:120px 112px}
html.motion .sun-btn .mascot{animation:hopIdle 2.8s var(--ease-io) infinite}
html.motion .sun-btn .m-arm--l{animation:armL 2.8s var(--ease-io) infinite}
html.motion .sun-btn .m-arm--r{animation:armR 2.8s var(--ease-io) infinite}
@keyframes hopIdle{0%,60%,100%{transform:none}70%{transform:translateY(-6%) scale(1.02,.98)}80%{transform:none}86%{transform:translateY(-3%)}92%{transform:none}}
@keyframes armL{0%,60%,100%{transform:none}70%{transform:rotate(-10deg)}80%{transform:rotate(6deg)}}
@keyframes armR{0%,60%,100%{transform:none}70%{transform:rotate(10deg)}80%{transform:rotate(-6deg)}}
.sun-btn:hover .mascot{scale:1.06}
.sun-btn .mascot{transition:scale .5s var(--spring)}
.sun-btn:active .mascot{scale:.92 1.04}
.sun-btn.is-playing .mascot,.sun-btn.is-playing .m-arm{animation:none}
.sun-btn.is-playing .m-lines{animation:flash .18s steps(2) infinite}
@keyframes flash{50%{opacity:.2}}

.hero__scroll{position:absolute;left:50%;bottom:22px;translate:-50% 0;display:flex;align-items:center;gap:10px;font:800 12px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--muted);animation:fadeUp 1s var(--ease-out) 1.8s both}
.hero__scroll-wave{display:flex;align-items:center;gap:3px;height:18px}
.hero__scroll-wave i{width:3px;height:100%;border-radius:2px;background:var(--green);transform:scaleY(.3)}
html.motion .hero__scroll-wave i{animation:eq 1.1s ease-in-out infinite}
.hero__scroll-wave i:nth-child(2){animation-delay:-.2s}.hero__scroll-wave i:nth-child(3){animation-delay:-.5s}.hero__scroll-wave i:nth-child(4){animation-delay:-.3s}.hero__scroll-wave i:nth-child(5){animation-delay:-.7s}
@keyframes eq{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}

/* ---------------------------------------------------------------- bandeaux */
.bands{position:relative;height:clamp(150px,18vw,250px);margin:clamp(-30px,-2vw,-10px) 0 0;overflow:clip;pointer-events:none}
.band{position:absolute;left:-5%;right:-5%;top:50%;display:flex;overflow:hidden;padding:clamp(10px,1.2vw,18px) 0}
.band--ink{background:var(--ink);color:var(--lime);transform:translateY(-62%) rotate(-3.2deg);z-index:2;box-shadow:0 20px 40px -24px rgba(14,59,46,.7)}
.band--lime{background:var(--lime);color:var(--ink);transform:translateY(-30%) rotate(2.4deg)}
.band__track{display:flex;align-items:center;gap:clamp(18px,2.2vw,36px);padding-right:clamp(18px,2.2vw,36px);flex:none;font:700 clamp(2rem,1.3rem + 3vw,4.6rem)/1 var(--f-display);letter-spacing:-.02em;white-space:nowrap;will-change:transform}
.band--lime .band__track{font-size:clamp(1.4rem,1rem + 1.8vw,2.9rem);font-weight:600}
.band__track img{width:.95em;height:.95em}
.spark{display:inline-block;width:.7em;height:.7em;background:var(--green);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}

/* ---------------------------------------------------------------- combat */
.combat{position:relative;--type:1;--laugh:1;--push:.35;--fly:0;--gone:0;--verdict:1;--shake:0}
.combat__sticky{position:relative;display:flex;flex-direction:column;padding:clamp(70px,10vh,120px) 0 40px}
html.motion .combat__scroller{height:340vh}
html.motion .combat__sticky{position:sticky;top:0;height:100vh;height:100svh;padding:calc(var(--top-h) + 20px) 0 28px;overflow:hidden}
.combat__head{text-align:center}
.combat__head .eyebrow{justify-content:center}
.combat__mdr-word{color:#8A988F;text-decoration:line-through;text-decoration-thickness:.08em;text-decoration-color:rgba(255,90,95,.85)}
.combat__stage{flex:1;position:relative;display:flex;align-items:center;justify-content:center;gap:clamp(8px,4vw,80px);min-height:240px}
.combat__bubble{position:relative;display:grid;justify-items:center;padding:clamp(18px,2.6vw,34px) clamp(22px,3.4vw,46px) clamp(14px,2vw,24px);border-radius:clamp(26px,3vw,40px);background:#E3E8E1;transform:translateX(calc(var(--push) * -6vw)) rotate(calc(var(--shake) * 1deg - var(--push) * 4deg)) scale(calc(1 - var(--gone)));opacity:calc(1 - var(--gone) * .9);transform-origin:30% 100%}
.combat__bubble::after{content:"";position:absolute;left:18%;bottom:-18px;border:12px solid transparent;border-top:20px solid #E3E8E1;border-left:4px solid #E3E8E1;transform:skewX(-14deg)}
.combat__typed{display:flex;align-items:center;font:700 clamp(3.4rem,1.6rem + 6.4vw,8.2rem)/1 var(--f-display);color:#8A988F;letter-spacing:.01em}
.combat__l{display:inline-block}
.combat__l--m{opacity:clamp(0,(var(--type) - .05) * 8,1);transform:translate(calc(var(--fly) * -38vw),calc(var(--fly) * -32vh)) rotate(calc(var(--fly) * -260deg)) scale(calc(1 - var(--fly) * .4))}
.combat__l--d{opacity:clamp(0,(var(--type) - .38) * 8,1);transform:translate(calc(var(--fly) * -14vw),calc(var(--fly) * 40vh)) rotate(calc(var(--fly) * 200deg)) scale(calc(1 - var(--fly) * .4))}
.combat__l--r{opacity:clamp(0,(var(--type) - .72) * 8,1);transform:translate(calc(var(--fly) * -46vw),calc(var(--fly) * 12vh)) rotate(calc(var(--fly) * 320deg)) scale(calc(1 - var(--fly) * .4))}
.combat__caret{width:.06em;height:.8em;margin-left:.06em;border-radius:3px;background:var(--ink);opacity:calc(1 - var(--laugh))}
html.motion .combat__caret{animation:blink 1s steps(2) infinite}
@keyframes blink{50%{visibility:hidden}}
.combat__meh{width:clamp(44px,4.4vw,64px);margin-top:4px}
.combat__tag{margin-top:6px;font:800 11px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:#7D8C83}
.combat__waves{position:absolute;z-index:-1;left:-100%;top:-103%;width:300%;height:300%;overflow:visible;opacity:var(--laugh);pointer-events:none}
.combat__waves path{fill:none;stroke:var(--green);stroke-width:clamp(6px,.9vw,12px);stroke-linecap:round;vector-effect:non-scaling-stroke;transform-box:view-box;transform-origin:100px 100px;opacity:0}
.combat__waves path:nth-child(even){stroke:var(--lime)}
html:not(.motion) .combat__waves path{opacity:.8;scale:.8}
html:not(.motion) .combat__waves path:nth-child(2){scale:1.15;opacity:.6}
html:not(.motion) .combat__waves path:nth-child(3){scale:1.5;opacity:.4}
html.motion .combat__waves path{animation:waveOut 1.8s var(--ease-out) infinite}
html.motion .combat__waves path:nth-child(2){animation-delay:.45s}
html.motion .combat__waves path:nth-child(3){animation-delay:.9s}
html.motion .combat__waves path:nth-child(4){animation-delay:1.35s}
@keyframes waveOut{0%{scale:.6;opacity:0}15%{opacity:1}100%{scale:2.4;opacity:0}}
.combat__hero{position:relative;width:clamp(150px,22vw,320px);transform:translateX(calc(var(--gone) * -14vw)) scale(calc(.82 + var(--laugh) * .18))}
.combat__hero .mascot{filter:drop-shadow(0 18px 24px rgba(242,169,0,.35))}
.combat.is-laughing .combat__hero .mascot{animation:shakeLaugh .32s ease-in-out infinite}
.combat.is-laughing .m-arm--r{animation:armWave .32s ease-in-out infinite alternate}
.combat.is-laughing .m-mouth{animation:mouth .32s ease-in-out infinite alternate}
@keyframes shakeLaugh{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-4%) rotate(2deg)}}
@keyframes armWave{from{transform:rotate(-14deg)}to{transform:rotate(10deg)}}
@keyframes mouth{from{transform:scaleY(.85)}to{transform:scaleY(1.12)}}
.combat__ha{position:absolute;font:700 clamp(1.2rem,.9rem + 1.2vw,2.2rem)/1 var(--f-display);color:var(--green);opacity:clamp(0,(var(--laugh) - .3) * 3,1)}
.combat__ha--1{left:-6%;top:2%;rotate:-14deg}
.combat__ha--2{right:-4%;top:-6%;rotate:12deg;color:var(--sun-d)}
.combat__ha--3{right:-14%;top:38%;rotate:8deg}
html.motion .combat.is-laughing .combat__ha{animation:haPop .6s var(--spring) infinite alternate}
html.motion .combat.is-laughing .combat__ha--2{animation-delay:.2s}
html.motion .combat.is-laughing .combat__ha--3{animation-delay:.4s}
@keyframes haPop{from{transform:scale(.8)}to{transform:scale(1.15) translateY(-6px)}}
.combat__verdict{display:grid;justify-items:center;text-align:center;gap:2px}
.combat__line{font:700 clamp(1.8rem,1.1rem + 3vw,4.2rem)/1.05 var(--f-display);letter-spacing:-.03em;opacity:clamp(0,var(--verdict) * 2,1);transform:translateY(calc((1 - clamp(0,var(--verdict) * 2,1)) * 30px))}
.combat__line--mdr{position:relative;color:#8A988F}
.combat__line--mdr::after{content:"";position:absolute;left:-2%;right:-2%;top:55%;height:.08em;border-radius:.04em;background:var(--m-loud,#FF5A5F);transform-origin:left;transform:scaleX(clamp(0,(var(--verdict) - .3) * 2.5,1))}
.combat__line--rire{opacity:clamp(0,(var(--verdict) - .25) * 2.5,1);transform:translateY(calc((1 - clamp(0,(var(--verdict) - .25) * 2.5,1)) * 30px))}
.combat__score{display:flex;align-items:center;gap:12px;margin-top:18px;padding:10px 18px;border-radius:99px;background:var(--ink);color:#fff;font:800 13px/1 var(--f-body);letter-spacing:.1em;text-transform:uppercase;opacity:clamp(0,(var(--verdict) - .5) * 3,1)}
.combat__score i{font-style:normal;color:var(--muted-d)}
.combat__n{display:inline-block;font:700 26px/1 var(--f-display);height:1em;overflow:hidden;color:var(--lime)}
.combat__n--mdr{color:var(--muted-d)}
.combat__n--rire span{display:block;transform:translateY(calc(clamp(0,(var(--verdict) - .7) * 4,1) * -100%))}
.combat__after{padding:0 var(--gutter) clamp(60px,10vh,120px);display:flex;justify-content:center;text-align:center}
.combat__after .lead{max-width:46ch;color:var(--ink)}

/* ---------------------------------------------------------------- téléphone (maquettes HTML/CSS) */
.phone{--pw:clamp(232px,21vw,308px);position:relative;width:var(--pw);aspect-ratio:9/19.2;flex:none}
.phone--sm{--pw:clamp(210px,18vw,270px)}
.phone__frame{position:absolute;inset:0;border-radius:calc(var(--pw) * .165);background:linear-gradient(145deg,#1B4A3B,#06170F 60%);box-shadow:inset 0 0 0 2px #2C6450,inset 0 0 0 calc(var(--pw) * .032) #0A2219,0 50px 80px -40px rgba(14,59,46,.55),0 24px 40px -26px rgba(14,59,46,.5)}
.phone__screen{position:absolute;inset:calc(var(--pw) * .034);border-radius:calc(var(--pw) * .135);overflow:hidden;background:var(--paper);container-type:inline-size}
.phone__island{position:absolute;z-index:5;top:calc(var(--pw) * .062);left:50%;width:30%;height:calc(var(--pw) * .088);translate:-50% 0;border-radius:99px;background:#030B08}
.phone__shot{display:block;width:100%;height:100%;object-fit:cover}
.phone--dark .phone__screen{background:var(--ink-2)}
.phone--dark .scr{color:#fff}

/* contenu des écrans : tout en cqi pour suivre la taille du téléphone */
.scr{position:absolute;inset:0;padding:17cqi 6.5cqi 0;font:600 4.3cqi/1.3 var(--f-body);color:var(--ink);display:flex;flex-direction:column;gap:3.4cqi}
.scr svg{width:1em;height:1em}
.scr img{display:block}
.scr__status{position:absolute;top:4.4cqi;left:9cqi;right:8cqi;display:flex;justify-content:space-between;align-items:center;font:700 3.9cqi/1 var(--f-body)}
.scr__sys{display:flex;gap:1.2cqi;align-items:flex-end}
.scr__sys i{display:block;width:1.2cqi;border-radius:.4cqi;background:currentColor}
.scr__sys i:nth-child(1){height:1.8cqi}.scr__sys i:nth-child(2){height:2.6cqi}.scr__sys i:nth-child(3){width:5.6cqi;height:2.8cqi;border-radius:.9cqi}
.scr__top{display:flex;justify-content:space-between;align-items:center}
.scr__logo{width:10cqi;height:10cqi;border-radius:3cqi}
.scr__chip{padding:1.6cqi 3.4cqi;border-radius:99px;background:#fff;box-shadow:inset 0 0 0 .35cqi var(--line);font:700 3.6cqi/1 var(--f-body)}
.scr__h{font:700 8.6cqi/1 var(--f-display);letter-spacing:-.03em}
.scr__h--c{text-align:center}
.scr__mark{display:inline-block;padding:0 1.6cqi;border-radius:2cqi;background:var(--lime);rotate:-2deg}
.scr__kicker{font:800 3.3cqi/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--green-t)}
.phone--dark .scr__kicker{color:var(--lime)}
.scr__card{border-radius:6cqi;padding:5cqi}
.scr__card--ink{position:relative;display:grid;justify-items:center;gap:3cqi;background:var(--ink);color:#fff;text-align:center;overflow:hidden}
.scr__card--ink::before{content:"";position:absolute;width:80%;aspect-ratio:1;top:-40%;right:-30%;border-radius:50%;background:radial-gradient(circle,rgba(200,242,122,.35),transparent 65%)}
.scr__card-t{position:relative;font:600 5.6cqi/1.1 var(--f-display)}
.scr__rec{position:relative;display:grid;place-items:center;width:24cqi;height:24cqi;border-radius:50%;background:var(--green);color:#fff;font-size:10cqi;box-shadow:0 0 0 2.6cqi rgba(31,164,91,.25),0 0 0 5.2cqi rgba(31,164,91,.12)}
html.motion .scr__rec{animation:recPulse 2.2s ease-in-out infinite}
@keyframes recPulse{0%,100%{box-shadow:0 0 0 2.6cqi rgba(31,164,91,.25),0 0 0 5.2cqi rgba(31,164,91,.12)}50%{box-shadow:0 0 0 3.6cqi rgba(31,164,91,.3),0 0 0 7.4cqi rgba(31,164,91,.08)}}
.scr__btn{display:inline-flex;align-items:center;justify-content:center;gap:2cqi;padding:3cqi 5cqi;border-radius:99px;background:var(--lime);color:var(--ink);font:600 4.2cqi/1 var(--f-display)}
.scr__btn--green{background:var(--green);color:#fff}
.scr__btn--lime{background:var(--lime);color:var(--ink)}
.scr__btn--wide{align-self:stretch;padding:4cqi}
.scr__label{font:800 3.6cqi/1 var(--f-body);color:var(--muted)}
.phone--dark .scr__label{color:var(--muted-d)}
.scr__row{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4cqi}
.scr__mini{display:grid;justify-items:center;gap:1.6cqi;padding:3.4cqi 1cqi;border-radius:4.4cqi;background:#fff;box-shadow:inset 0 0 0 .35cqi var(--line);font:700 3.1cqi/1 var(--f-body)}
.scr__mini img{width:12cqi;height:12cqi}
.scr__bars{display:block;width:70%;height:3.4cqi;background:linear-gradient(90deg,var(--c) 0 12%,transparent 12% 22%,var(--c) 22% 34%,transparent 34% 44%,var(--c) 44% 56%,transparent 56% 66%,var(--c) 66% 78%,transparent 78% 88%,var(--c) 88%);-webkit-mask:linear-gradient(#000,#000) center/100% 40% no-repeat,linear-gradient(#000,#000) center/100% 100% no-repeat;opacity:.85;border-radius:1cqi}
.scr__nav{position:absolute;left:4cqi;right:4cqi;bottom:4cqi;display:flex;justify-content:space-around;align-items:center;height:15cqi;border-radius:7.5cqi;background:#fff;box-shadow:0 2cqi 6cqi -3cqi rgba(14,59,46,.35),inset 0 0 0 .35cqi var(--line);font-size:6cqi;color:var(--ink)}
.scr__nav>svg:first-child{color:var(--green)}
.scr__plus{display:grid;place-items:center;width:12cqi;height:12cqi;border-radius:50%;background:var(--green);color:#fff;font-size:6cqi;margin-top:-5cqi;box-shadow:0 0 0 1.6cqi var(--paper)}

/* écran enregistrement */
.scr--rec{align-items:center;text-align:center}
.rec-ring{position:relative;width:70cqi;aspect-ratio:1;margin-top:6cqi}
.rec-ring>svg{width:100%;height:100%;rotate:-90deg}
.rec-ring__track{fill:none;stroke:var(--mint);stroke-width:7}
.rec-ring__fill{fill:none;stroke:var(--green);stroke-width:7;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:40}
html.motion .is-active .rec-ring__fill{animation:ring 5s linear infinite}
@keyframes ring{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
.rec-ring__mic{position:absolute;inset:22%;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:16cqi;box-shadow:0 3cqi 8cqi -3cqi rgba(21,128,63,.7)}
html.motion .is-active .rec-ring__mic{animation:recBeat .5s ease-in-out infinite alternate}
@keyframes recBeat{to{transform:scale(1.06)}}
.scr__count{font:600 4.4cqi/1 var(--f-display);color:var(--muted)}
.scr__count b{color:var(--ink);font-weight:700}
.scr__live{display:flex;align-items:center;justify-content:center;gap:1.6cqi;height:22cqi;width:100%;margin-top:4cqi}
.scr__live i{width:3cqi;height:100%;border-radius:2cqi;background:var(--green);transform:scaleY(.25)}
html.motion .is-active .scr__live i{animation:eq .9s ease-in-out infinite}
.scr__live i:nth-child(3n){animation-delay:-.3s;background:var(--lime)}
.scr__live i:nth-child(4n+1){animation-delay:-.6s}
.scr__live i:nth-child(5n+2){animation-delay:-.45s}
.scr__stop{display:grid;place-items:center;width:17cqi;height:17cqi;border-radius:50%;background:var(--ink);color:#FF5A5F;font-size:7cqi;margin-top:auto;margin-bottom:9cqi}

/* écran réécoute */
.scr--replay{align-items:center}
.scr__listen{width:46cqi;margin:2cqi auto -6cqi}
html.motion .is-active .scr__listen{animation:headbang 1.1s ease-in-out infinite}
.scr__wave{display:flex;align-items:center;gap:1.3cqi;width:100%;height:34cqi;margin-top:0;padding:0 2cqi;border-radius:6cqi;background:#fff;box-shadow:inset 0 0 0 .35cqi var(--line)}
.scr__wave i{flex:1;height:calc(var(--h) * 80%);border-radius:2cqi;background:var(--green)}
.scr__wave i:nth-child(n+9){background:var(--mint)}
html.motion .is-active .scr__wave i{animation:fillWave 3s steps(1) infinite}
.scr__wave i:nth-child(n+9){animation-delay:calc(var(--h) * 0s)}
@keyframes fillWave{0%{background:var(--mint)}}
.scr__time{display:flex;justify-content:space-between;width:100%;font:700 3.4cqi/1 var(--f-body);color:var(--muted)}
.scr__play{display:grid;place-items:center;width:20cqi;height:20cqi;border-radius:50%;background:var(--green);color:#fff;font-size:8cqi;padding-left:1cqi;box-shadow:0 3cqi 8cqi -3cqi rgba(21,128,63,.7)}
.scr__pair{display:grid;grid-template-columns:1fr 1fr;gap:2.4cqi;width:100%;margin-top:auto;margin-bottom:9cqi}
.scr__pair .scr__btn{padding:3.6cqi 2cqi;font-size:3.8cqi}
.scr__ghost{display:flex;align-items:center;justify-content:center;border-radius:99px;box-shadow:inset 0 0 0 .5cqi var(--ink);font:600 3.8cqi/1 var(--f-display)}

/* écran nommer */
.scr__field-l{font:800 3.3cqi/1 var(--f-body);color:var(--muted);margin-top:2cqi}
.scr__field{display:flex;align-items:center;padding:4cqi;border-radius:4cqi;background:#fff;box-shadow:inset 0 0 0 .5cqi var(--green);font:600 5cqi/1.1 var(--f-display)}
.scr__caret{display:inline-block;width:.5cqi;height:1.1em;margin-left:.6cqi;background:var(--green)}
html.motion .scr__caret{animation:blink 1s steps(2) infinite}
.scr__chips{display:flex;flex-wrap:wrap;gap:2cqi}
.chip{display:inline-flex;align-items:center;gap:1.4cqi;padding:1.4cqi 3cqi 1.4cqi 1.4cqi;border-radius:99px;background:#fff;box-shadow:inset 0 0 0 .4cqi var(--line);font:700 3.4cqi/1 var(--f-body)}
.chip img{width:6.6cqi;height:6.6cqi}
.chip.is-on{background:color-mix(in srgb,var(--c) 30%,#fff);box-shadow:inset 0 0 0 .55cqi var(--c)}
html.motion .is-active .chip.is-on{animation:chipOn .6s var(--spring) .4s both}
html.motion .is-active .chip.is-on:nth-child(4){animation-delay:.8s}
@keyframes chipOn{from{background:#fff;box-shadow:inset 0 0 0 .4cqi var(--line);transform:scale(.9)}}
.scr--name .scr__btn{margin-top:auto;margin-bottom:9cqi}

/* écran envoyer */
.scr__item{display:flex;align-items:center;gap:3cqi;padding:3cqi;border-radius:5cqi;background:#fff;box-shadow:inset 0 0 0 .35cqi var(--line)}
.scr__item img{width:12cqi;height:12cqi}
.scr__item span{display:grid;flex:1;gap:.8cqi;font:600 4cqi/1.1 var(--f-display)}
.scr__item small{font:700 2.9cqi/1.1 var(--f-body);color:var(--muted)}
.scr__item>svg{width:8cqi;height:8cqi;padding:2cqi;border-radius:50%;background:var(--green);color:#fff}
.scr__item--dim{opacity:.55}
.scr__sheet{position:absolute;left:0;right:0;bottom:0;display:grid;gap:4cqi;padding:4cqi 6cqi 10cqi;border-radius:7cqi 7cqi 0 0;background:#fff;box-shadow:0 -4cqi 12cqi -6cqi rgba(14,59,46,.35)}
html.motion .is-active .scr__sheet{animation:sheetUp .7s var(--ease-out) .2s both}
@keyframes sheetUp{from{transform:translateY(100%)}}
.scr__grab{justify-self:center;width:12cqi;height:1.2cqi;border-radius:2cqi;background:var(--mint)}
.scr__sheet-t{display:flex;align-items:center;gap:2cqi;font:600 4.6cqi/1 var(--f-display)}
.scr__sheet-t svg{color:var(--green)}
.scr__apps{display:grid;grid-template-columns:repeat(4,1fr);gap:2cqi;text-align:center;font:700 2.8cqi/1.1 var(--f-body)}
.scr__apps span{display:grid;justify-items:center;gap:1.6cqi}
.scr__apps i{display:block;width:12cqi;height:12cqi;border-radius:3.6cqi;background:var(--c)}
.scr__kept{display:flex;align-items:center;gap:2cqi;padding:3cqi;border-radius:4cqi;background:var(--lime-3);font:700 3.4cqi/1 var(--f-body);color:var(--green-t)}

/* écran voyage */
.scr__trip{display:flex;align-items:center;gap:3cqi;padding:3cqi;border-radius:5cqi;background:#fff;box-shadow:inset 0 0 0 .35cqi var(--line)}
.scr__trip img{width:13cqi;height:13cqi}
.scr__trip span{display:grid;gap:1cqi;font:600 4.4cqi/1.1 var(--f-display)}
.scr__trip small{font:700 3cqi/1 var(--f-body);color:var(--muted)}
.scr__stats{display:grid;grid-template-columns:1fr 1fr;gap:2.4cqi}
.scr__stats span{display:grid;gap:1cqi;padding:3.6cqi;border-radius:5cqi;background:var(--ink);color:var(--muted-d);font:700 3cqi/1.1 var(--f-body)}
.scr__stats b{color:var(--lime);font:700 7.4cqi/1 var(--f-display)}
.scr__bars-list{display:grid;gap:2.4cqi}
.scr__bars-list li{display:grid;grid-template-columns:20cqi 1fr;align-items:center;gap:2cqi;font:700 3.3cqi/1 var(--f-body)}
.scr__bars-list i{display:block;height:4.4cqi;border-radius:2cqi;background:linear-gradient(90deg,var(--green),var(--lime));transform-origin:left;transform:scaleX(var(--v))}
html.motion .is-in .scr__bars-list i{animation:barGrow 1.2s var(--ease-out) both}
html.motion .is-in .scr__bars-list li:nth-child(2) i{animation-delay:.12s}
html.motion .is-in .scr__bars-list li:nth-child(3) i{animation-delay:.24s}
html.motion .is-in .scr__bars-list li:nth-child(4) i{animation-delay:.36s}
@keyframes barGrow{from{transform:scaleX(0)}}
.scr--voyage .scr__btn{margin-top:auto;margin-bottom:8cqi}

/* écran arène */
.scr__coin{display:inline-flex;align-items:center;gap:1.4cqi;padding:1.6cqi 3cqi 1.6cqi 1.8cqi;border-radius:99px;background:var(--sun);color:var(--ink);font:800 3.3cqi/1 var(--f-body)}
.scr__duel{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1cqi;margin-top:-1cqi}
.scr__names{display:grid;grid-template-columns:1fr 1fr;gap:12cqi;margin-top:-3cqi;text-align:center;font:600 3.6cqi/1.1 var(--f-display);color:var(--muted-d)}
.scr__duel>span{position:relative;display:grid;place-items:center;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c) 45%,transparent),transparent 70%)}
.scr__duel img{width:80%}
.scr__duel b{display:grid;place-items:center;width:12cqi;height:12cqi;border-radius:50%;background:var(--ink-4);color:var(--lime);font:700 4.6cqi/1 var(--f-display)}
.scr__mini-play{position:absolute;right:4%;bottom:4%;display:grid;place-items:center;width:9cqi;height:9cqi;border-radius:50%;background:#fff;color:var(--ink);font-size:4cqi}
.scr__tabs{display:flex;gap:1.4cqi;padding:1.2cqi;border-radius:99px;background:rgba(255,255,255,.08);font:700 3.2cqi/1 var(--f-body)}
.scr__tabs span{flex:1;padding:2.2cqi 0;border-radius:99px;text-align:center;color:var(--muted-d)}
.scr__tabs .is-on{background:var(--lime);color:var(--ink)}
.scr__rank{display:grid;gap:2cqi}
.scr__rank li{display:flex;align-items:center;gap:2.4cqi;padding:2.4cqi 3cqi;border-radius:4cqi;background:rgba(255,255,255,.06);font:600 3.6cqi/1.1 var(--f-display)}
.scr__rank b{width:5cqi;color:var(--lime);font:700 4cqi/1 var(--f-display)}
.scr__rank img{width:9cqi;height:9cqi}
.scr__rank span{flex:1}
.scr__rank svg{color:var(--sun);font-size:5cqi}

/* écran propulse */
.scr--boost{align-items:center;text-align:center;background:linear-gradient(180deg,var(--lime-3),var(--paper) 40%)}
.scr__boost-ico{display:grid;place-items:center;width:20cqi;height:20cqi;margin-top:3cqi;border-radius:6cqi;background:var(--sun);color:var(--ink);font-size:10cqi;rotate:-8deg;box-shadow:0 3cqi 8cqi -4cqi rgba(242,169,0,.8)}
.scr__price{font:700 4.4cqi/1 var(--f-body);color:var(--muted)}
.scr__price b{font:700 9cqi/1 var(--f-display);color:var(--ink)}
.scr__checks{display:grid;gap:2.6cqi;width:100%;padding:4cqi;border-radius:5cqi;background:#fff;box-shadow:inset 0 0 0 .35cqi var(--line);text-align:left;font:700 3.5cqi/1.2 var(--f-body)}
.scr__checks li{display:flex;align-items:center;gap:2.4cqi}
.scr__checks svg{flex:none;width:5.4cqi;height:5.4cqi;padding:1cqi;border-radius:50%;background:var(--green);color:#fff}
.scr--boost .scr__btn{margin-top:auto}
.scr__fine{margin-bottom:8cqi;font:700 2.8cqi/1.2 var(--f-body);color:var(--muted)}

/* ---------------------------------------------------------------- comment ça marche */
.how{position:relative;padding:clamp(40px,8vh,100px) 0 clamp(60px,10vh,120px)}
.how__intro{max-width:760px;margin-bottom:clamp(20px,4vh,40px)}
.how{overflow-x:clip}
.how__body{display:grid;grid-template-columns:minmax(0,560px) minmax(0,1fr);gap:clamp(30px,5vw,90px)}
.how__phone-col{grid-column:2;grid-row:1;position:relative}
.how__sticky{position:sticky;top:calc(50vh - var(--pw-h,300px));display:grid;place-items:center;padding:20px 0;isolation:isolate}
.how__deco{position:absolute;inset:0;pointer-events:none;z-index:2}
.how__deco li{position:absolute;width:clamp(48px,5vw,76px)}
.how__deco img{width:100%;filter:drop-shadow(0 10px 12px rgba(14,59,46,.2))}
.how__deco li:nth-child(1){left:calc(50% - var(--pw) * .5 - 70px);top:18%}
.how__deco li:nth-child(2){right:calc(50% - var(--pw) * .5 - 64px);top:48%;width:clamp(40px,4vw,60px)}
.how__deco li:nth-child(3){left:calc(50% - var(--pw) * .5 - 40px);bottom:12%;width:clamp(36px,3.4vw,52px)}
html.motion .how__deco img{animation:bob 5s ease-in-out infinite}
html.motion .how__deco li:nth-child(2) img{animation-delay:-1.6s;animation-duration:6s}
html.motion .how__deco li:nth-child(3) img{animation-delay:-3s;animation-duration:4.6s}
.how .phone{--pw:clamp(250px,22vw,320px)}
.how__sticky{--pw-h:calc(clamp(250px,22vw,320px) * 19.2 / 9 / 2 + 20px)}
.how__sticky::before{content:"";position:absolute;z-index:-1;width:150%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,var(--lime-2),rgba(230,249,196,0) 65%)}
.how__screen{opacity:0;visibility:hidden;transform:translateY(5%) scale(.96);transition:opacity .5s,transform .7s var(--ease-out),visibility 0s .5s}
.how__screen.is-active{opacity:1;visibility:visible;transform:none;transition:opacity .5s,transform .7s var(--ease-out),visibility 0s}
.how__steps{grid-column:1;grid-row:1;counter-reset:s}
.how__step{display:flex;flex-direction:column;justify-content:center;min-height:min(78vh,680px);padding:20px 0;max-width:560px}
html.motion .how__step{opacity:.28;transition:opacity .5s}
html.motion .how__step.is-active{opacity:1}
.how__num{display:block;margin-bottom:14px;font:700 clamp(4rem,2.6rem + 4vw,7.5rem)/.8 var(--f-display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:2px var(--green)}
.how__step.is-active .how__num{color:var(--lime);-webkit-text-stroke:2px var(--ink)}
html.motion .how__step .how__num{transition:color .5s}
.how__step .h3{font-size:clamp(2rem,1.5rem + 2vw,3.6rem);line-height:1;letter-spacing:-.03em}
.how__step p{margin-top:16px;font-size:clamp(1.05rem,1rem + .35vw,1.3rem);color:var(--muted);max-width:34ch}

/* ---------------------------------------------------------------- humeurs */
.moods{padding:clamp(80px,12vh,140px) 0}
.moods__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,26px)}
.mood{position:relative;display:grid;align-content:end;min-height:clamp(220px,22vw,300px);padding:clamp(20px,2vw,28px);border-radius:clamp(26px,3vw,36px);background:var(--t);overflow:hidden;isolation:isolate;transition:transform .6s var(--spring),box-shadow .4s}
.mood::before{content:"";position:absolute;z-index:-1;width:120%;aspect-ratio:1;right:-50%;top:-60%;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--c) 45%,transparent),transparent);transition:transform .8s var(--ease-out)}
.mood:hover{transform:translateY(-8px) rotate(-1deg);box-shadow:0 30px 50px -30px color-mix(in srgb,var(--c) 80%,var(--ink))}
.mood:hover::before{transform:scale(1.5)}
.mood__face{position:absolute;top:clamp(16px,2vw,26px);right:clamp(16px,2vw,26px);width:clamp(84px,9vw,128px);filter:drop-shadow(0 12px 14px color-mix(in srgb,var(--c) 45%,transparent));transition:transform .6s var(--spring)}
.mood:hover .mood__face{transform:scale(1.12) rotate(-8deg)}
.mood__name{font:700 clamp(1.6rem,1.2rem + 1.2vw,2.4rem)/1 var(--f-display);letter-spacing:-.025em}
.mood p{margin-top:8px;color:var(--ink);opacity:.75;font-weight:600}
html.motion .mood--little .mood__face{animation:bob 3.4s ease-in-out infinite}
html.motion .mood--loud .mood__face{animation:shakeLaugh .9s ease-in-out infinite}
html.motion .mood--shy .mood__face{animation:shy 4s ease-in-out infinite}
html.motion .mood--mischievous .mood__face{animation:rock 2.6s ease-in-out infinite}
html.motion .mood--nervous .mood__face{animation:tremble .18s linear infinite}
html.motion .mood--sarcastic .mood__face{animation:sarc 5s ease-in-out infinite}
html.motion .mood:hover .mood__face{animation-play-state:paused}
@keyframes shy{0%,100%{rotate:0deg;translate:0 0}50%{rotate:-12deg;translate:-4px 4px}}
@keyframes rock{0%,100%{rotate:-8deg}50%{rotate:8deg}}
@keyframes tremble{0%{translate:0 0}25%{translate:1.5px -1px}50%{translate:-1px 1px}75%{translate:1px 1px}}
@keyframes sarc{0%,70%,100%{rotate:0deg}78%{rotate:14deg}90%{rotate:12deg}}

/* ---------------------------------------------------------------- écouter */
.listen{padding:0 clamp(8px,1.6vw,24px)}
.listen__panel{position:relative;padding:clamp(56px,9vw,120px) 0;border-radius:var(--r-xl);background:var(--lime);overflow:hidden;isolation:isolate}
.listen__panel::before{content:"";position:absolute;z-index:-1;inset:0;background-image:radial-gradient(rgba(14,59,46,.12) 1.4px,transparent 1.7px);background-size:24px 24px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 60%);mask-image:linear-gradient(180deg,#000,transparent 60%)}
.listen__head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:clamp(30px,5vw,56px)}
.listen .eyebrow{color:var(--ink)}
.listen .eyebrow::before{filter:brightness(.4)}
.listen__mascot{width:clamp(110px,14vw,200px);flex:none;margin:-20px 0 -10px}
html.motion .listen__mascot.is-in{animation:headbang 1.1s ease-in-out infinite}
@keyframes headbang{0%,100%{rotate:-5deg}50%{rotate:5deg;translate:0 -4px}}
.laughs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.6vw,20px)}
.laugh{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"play meta" "wave wave";gap:16px 14px;align-items:center;width:100%;padding:18px;border-radius:28px;background:#fff;text-align:left;box-shadow:0 18px 30px -24px rgba(14,59,46,.6);transition:transform .5s var(--spring),background-color .3s,color .3s}
.laugh:hover{transform:translateY(-4px) rotate(-.6deg)}
.laugh:active{transform:scale(.97)}
.laugh__play{grid-area:play;display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--green);color:#fff;transition:transform .4s var(--spring),background-color .3s}
.laugh__play svg{width:24px;height:24px;margin-left:3px}
.laugh:hover .laugh__play{transform:scale(1.08) rotate(-8deg)}
.laugh__meta{grid-area:meta;display:grid;gap:4px;min-width:0}
.laugh__meta b{font:600 19px/1.15 var(--f-display);letter-spacing:-.01em}
.laugh__meta small{font:700 13px/1.2 var(--f-body);color:var(--muted)}
.laugh__wave{grid-area:wave;display:flex;align-items:center;gap:3px;height:42px}
.laugh__wave i{flex:1;height:calc(8% + var(--h,.5) * 92%);border-radius:3px;background:var(--mint);transition:background-color .15s}
.laugh__wave i.on{background:var(--green)}
.laugh[aria-pressed="true"]{background:var(--ink);color:#fff}
.laugh[aria-pressed="true"] .laugh__meta small{color:var(--muted-d)}
.laugh[aria-pressed="true"] .laugh__play{background:var(--lime);color:var(--ink)}
.laugh[aria-pressed="true"] .laugh__wave i{background:rgba(255,255,255,.16)}
.laugh[aria-pressed="true"] .laugh__wave i.on{background:var(--lime)}
.listen__credit{margin-top:28px;font-weight:700;font-size:15px}
.listen__credit a{text-underline-offset:4px}

/* petits « ha » qui s’envolent */
.ha-fly{position:fixed;z-index:70;left:0;top:0;pointer-events:none;font:700 var(--s,22px)/1 var(--f-display);color:var(--c,var(--green));white-space:nowrap;text-shadow:0 2px 0 #fff}

/* ---------------------------------------------------------------- rires du monde (publication) */
.world{position:relative;padding:clamp(90px,14vh,160px) 0 clamp(30px,5vh,60px);overflow-x:clip}
.flow{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2.4vw,32px);align-items:end}
.flow__step{display:grid;justify-items:center;text-align:center;gap:10px;padding:clamp(24px,2.6vw,36px) clamp(18px,2vw,30px);border-radius:32px;background:#fff;box-shadow:0 24px 50px -36px rgba(14,59,46,.6),inset 0 0 0 1px var(--line)}
.flow__step p{color:var(--muted);max-width:28ch}
.flow__ico{display:grid;place-items:center;width:64px;height:64px;margin-bottom:6px;border-radius:20px;background:var(--lime);color:var(--ink)}
.flow__ico svg{width:30px;height:30px}
.flow__step--human{padding-top:10px;background:var(--ink);color:#fff;transform:translateY(-24px)}
.flow__step--human p{color:var(--muted-d)}
.flow__mascot{width:clamp(120px,12vw,170px);margin-top:-60px}
html.motion .flow__step--human.is-in .flow__mascot{animation:headbang 1.4s ease-in-out infinite}
.flow__track{position:relative;height:60px;margin:26px auto 0;max-width:900px}
.flow__track::before{content:"";position:absolute;left:4%;right:4%;top:50%;border-top:4px dotted var(--green);opacity:.55}
.flow__runner{position:absolute;left:4%;top:50%;width:48px;translate:-50% -50%;transform:translateX(calc(var(--run,1) * min(830px,84vw) * .92))}
.flow__runner img{width:100%;filter:drop-shadow(0 6px 8px rgba(14,59,46,.25))}
html.motion .flow__runner img{animation:roll .9s linear infinite}
@keyframes roll{to{rotate:1turn}}
.flow__stamp{position:absolute;left:50%;top:50%;translate:-50% -50%;padding:8px 16px;border-radius:12px;border:3px solid var(--green);color:var(--green-t);background:var(--paper);font:700 18px/1 var(--f-display);text-transform:uppercase;letter-spacing:.04em;rotate:-8deg;opacity:var(--stamp,1);scale:calc(1.6 - var(--stamp,1) * .6)}

/* ---------------------------------------------------------------- voyage */
.voyage{position:relative;padding:clamp(40px,6vh,80px) 0 clamp(80px,12vh,140px);overflow-x:clip}
.voyage__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,5vw,80px);align-items:center}
.ticks{display:grid;gap:16px;margin-top:34px}
.ticks li{display:flex;gap:14px;align-items:flex-start;max-width:46ch}
.ticks svg{flex:none;width:44px;height:44px;padding:10px;border-radius:14px;background:#fff;color:var(--green-t);box-shadow:inset 0 0 0 1px var(--line)}
.ticks span{padding-top:9px;color:var(--muted)}
.ticks b{color:var(--ink);font-weight:800}
.voyage__visual{position:relative;display:grid;place-items:center;min-height:clamp(420px,46vw,680px)}
.globe-wrap{position:relative;width:min(100%,620px);aspect-ratio:1}
.globe-wrap .globe,.globe-wrap .globe-fallback{position:absolute;inset:0;width:100%;height:100%}
.globe-fallback{padding:8%;transition:opacity .6s}
.globe-wrap.is-ready .globe-fallback{opacity:0}
.voyage__tags li{position:absolute;left:var(--x);top:var(--y);padding:8px 14px 8px 10px;border-radius:99px;background:#fff;box-shadow:0 12px 26px -16px rgba(14,59,46,.6),inset 0 0 0 1px var(--line);font:600 16px/1 var(--f-display);display:flex;align-items:center;gap:8px}
.voyage__tags li::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--sun);box-shadow:0 0 0 3px rgba(255,201,60,.35)}
html.motion .voyage__tags li{animation:bob 6s ease-in-out infinite}
html.motion .voyage__tags li:nth-child(2){animation-delay:-2s}
html.motion .voyage__tags li:nth-child(3){animation-delay:-4s}
.voyage__phone{position:absolute;left:-4%;bottom:-8%;rotate:-6deg;z-index:2}
.voyage__phone .phone{--pw:clamp(190px,15vw,232px)}
.voyage__visual .globe-wrap{margin-left:14%}
.voyage__copy .lead{margin-top:24px}
.scr--arena .scr__pair{margin:0}

/* ---------------------------------------------------------------- arène */
.arena{padding:clamp(20px,4vh,40px) clamp(8px,1.6vw,24px) 0}
.arena__panel{position:relative;padding:clamp(60px,9vw,120px) 0;border-radius:var(--r-xl);background:radial-gradient(120% 80% at 50% 0%,var(--ink-3),var(--ink) 55%,var(--ink-2));color:#fff;overflow:hidden;isolation:isolate}
.arena__lights{position:absolute;inset:0;z-index:-1;pointer-events:none}
.arena__lights i{position:absolute;top:-30%;width:60%;height:140%;background:conic-gradient(from 180deg at 50% 0%,transparent 160deg,rgba(200,242,122,.16) 175deg,rgba(200,242,122,.2) 180deg,rgba(200,242,122,.16) 185deg,transparent 200deg);transform-origin:50% 0}
.arena__lights i:first-child{left:-5%;rotate:-18deg}
.arena__lights i:last-child{right:-5%;rotate:18deg}
html.motion .arena__lights i:first-child{animation:sweepL 7s ease-in-out infinite alternate}
html.motion .arena__lights i:last-child{animation:sweepR 8s ease-in-out infinite alternate}
@keyframes sweepL{from{rotate:-28deg}to{rotate:4deg}}
@keyframes sweepR{from{rotate:26deg}to{rotate:-6deg}}
.arena__head{max-width:900px;margin:0 auto;text-align:center;display:grid;justify-items:center}
.arena__head .eyebrow{justify-content:center}
.arena__head .lead{max-width:46ch}
.arena .lead{color:var(--muted-d)}
.arena__head .lead{margin-top:22px}
.arena__grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(30px,5vw,80px);align-items:center;margin-top:clamp(40px,6vw,70px)}
.duel{position:relative;padding:clamp(22px,3vw,40px);border-radius:36px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.duel__hint{font-weight:700;color:var(--muted-d);text-align:center}
.duel__ring{--face:clamp(96px,12vw,170px);--vs:clamp(56px,6vw,84px);display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:clamp(8px,2vw,24px);margin-top:26px;padding-bottom:26px;background:linear-gradient(var(--ink-4),var(--ink-4)) center bottom/86% 10px no-repeat}
.duel__side{display:grid;justify-items:center;gap:12px;text-align:center;transition:opacity .5s,filter .5s}
.duel__face{position:relative;width:var(--face);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c) 50%,transparent),transparent 68%);display:grid;place-items:center}
.duel__face img{width:84%;transition:transform .6s var(--spring)}
html.motion .duel.is-in .duel__side--a .duel__face{animation:enterL 1s var(--spring) both}
html.motion .duel.is-in .duel__side--b .duel__face{animation:enterR 1s var(--spring) .12s both}
@keyframes enterL{from{transform:translateX(-60%) rotate(-30deg);opacity:0}}
@keyframes enterR{from{transform:translateX(60%) rotate(30deg);opacity:0}}
.duel__crown{position:absolute;left:50%;top:-18%;width:36%;translate:-50% 0;opacity:0;transform:translateY(-40px) rotate(-20deg);transition:opacity .3s,transform .8s var(--spring-2)}
.duel__name{font:600 clamp(1.05rem,.9rem + .5vw,1.35rem)/1.1 var(--f-display)}
.duel__btns{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.duel__vs{display:grid;place-items:center;align-self:start;margin-top:calc((var(--face) - var(--vs)) / 2);width:var(--vs);aspect-ratio:1;border-radius:50%;background:var(--ink-4);color:var(--lime);font:700 clamp(1.3rem,1rem + 1vw,2rem)/1 var(--f-display);box-shadow:0 0 0 6px rgba(200,242,122,.1)}
html.motion .duel.is-in .duel__vs{animation:vsPop 1s var(--spring-2) .4s both}
@keyframes vsPop{from{transform:scale(0) rotate(-90deg)}}
.duel__side.is-winner .duel__crown{opacity:1;transform:none}
.duel__side.is-winner .duel__face img{transform:scale(1.08)}
.duel.has-winner .duel__side:not(.is-winner){opacity:.45;filter:saturate(.4)}
.duel__result{min-height:1.6em;margin-top:16px;text-align:center;font:600 clamp(1.05rem,.95rem + .4vw,1.3rem)/1.3 var(--f-display);color:var(--lime)}
.pill-btn{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 16px 0 12px;border-radius:99px;background:rgba(255,255,255,.1);color:#fff;font:700 15px/1 var(--f-body);transition:background-color .2s,transform .4s var(--spring)}
.pill-btn svg{width:18px;height:18px}
.pill-btn:hover{background:rgba(255,255,255,.18);transform:translateY(-2px)}
.pill-btn[aria-pressed="true"]{background:#fff;color:var(--ink)}
.pill-btn--vote{background:var(--lime);color:var(--ink)}
.pill-btn--vote:hover{background:#D9F79C}
.pill-btn--vote[aria-pressed="true"]{background:var(--sun)}
.coins{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2vw,24px);margin-top:clamp(40px,6vw,70px)}
.coin-card{display:grid;gap:6px;padding:24px;border-radius:28px;background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.coin-card b{font:600 clamp(1.15rem,1rem + .5vw,1.45rem)/1.15 var(--f-display);margin-top:8px}
.coin-card>span:last-child{color:var(--muted-d)}
.coin{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#FFE08A,var(--sun) 50%,var(--sun-d));color:var(--ink);box-shadow:inset 0 -4px 0 rgba(0,0,0,.12),0 10px 20px -10px rgba(255,201,60,.6)}
.coin svg{width:30px;height:30px}
html.motion .coin-card.is-in .coin{animation:coinFlip 1.4s var(--ease-out) both}
html.motion .coin-card:nth-child(2).is-in .coin{animation-delay:.15s}
html.motion .coin-card:nth-child(3).is-in .coin{animation-delay:.3s}
.coin-card:hover .coin{animation:coinFlip 1s var(--ease-out)}
@keyframes coinFlip{from{transform:perspective(300px) rotateY(-540deg) translateY(-20px)}}
.arena__glory{display:flex;align-items:center;justify-content:center;gap:clamp(10px,2vw,24px);margin-top:clamp(40px,6vw,64px);font:600 clamp(1.4rem,1rem + 1.6vw,2.6rem)/1.1 var(--f-display);letter-spacing:-.02em;text-align:left}
.arena__glory img{width:clamp(90px,10vw,140px);flex:none}
html.motion .arena__glory.is-in img{animation:hopIdle 2.4s var(--ease-io) infinite}
.arena__glory b{color:var(--lime);font-weight:700}

/* ---------------------------------------------------------------- propulse */
.boost{padding:clamp(90px,14vh,160px) 0 clamp(70px,10vh,120px);overflow:clip}
.boost__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,80px);align-items:center}
.price{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;margin-top:26px}
.price__n{position:relative;z-index:0;font:700 clamp(3.6rem,2.4rem + 4.6vw,7rem)/.9 var(--f-display);letter-spacing:-.04em}
.price__n::before{content:"";position:absolute;z-index:-1;inset:auto -.1em .02em;height:.4em;border-radius:.2em;background:var(--sun);transform:rotate(-2deg)}
.price__d{display:grid;font:600 clamp(1.2rem,1rem + .6vw,1.6rem)/1.1 var(--f-display)}
.price__d small{font:700 14px/1.3 var(--f-body);color:var(--muted)}
.perks{display:grid;gap:14px;margin-top:30px}
.perks li{display:flex;gap:14px;align-items:flex-start;max-width:52ch;color:var(--muted)}
.perks b{color:var(--ink);font-weight:800}
.perks__ico{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--sun);color:var(--ink)}
.perks__ico svg{width:22px;height:22px}
.perks li>span:last-child{padding-top:9px}
.boost__fine{margin-top:24px;padding:14px 18px;border-radius:18px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);font-weight:700;font-size:15px;max-width:52ch}
.boost__visual{position:relative;display:grid;place-items:center;min-height:clamp(480px,48vw,680px)}
.boost__visual::before{content:"";position:absolute;width:90%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,201,60,.38),rgba(255,201,60,0) 64%)}
.boost__phone{position:relative;translate:22% 0;rotate:5deg}
.souvenir{position:absolute;left:2%;top:50%;z-index:3;width:clamp(190px,17vw,250px);perspective:900px;translate:0 -50%}
.souvenir__card{position:relative;display:grid;justify-items:center;gap:10px;padding:18px 18px 16px;aspect-ratio:5/7;border-radius:24px;background:linear-gradient(160deg,var(--ink-3),var(--ink) 60%);color:#fff;overflow:hidden;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) rotate(-8deg);transform-style:preserve-3d;box-shadow:0 40px 60px -30px rgba(14,59,46,.7),inset 0 0 0 1.5px rgba(200,242,122,.35);transition:transform .2s ease-out}
html.motion .souvenir.is-in .souvenir__card{animation:cardFloat 6s ease-in-out infinite}
.souvenir.is-tilting .souvenir__card{animation:none}
@keyframes cardFloat{0%,100%{transform:rotateX(6deg) rotateY(-10deg) rotate(-8deg) translateY(0)}50%{transform:rotateX(-4deg) rotateY(12deg) rotate(-6deg) translateY(-12px)}}
.souvenir__sheen{position:absolute;inset:-40%;background:conic-gradient(from 0deg at var(--mx,50%) var(--my,30%),rgba(200,242,122,0),rgba(200,242,122,.5),rgba(255,201,60,.45),rgba(255,143,184,.42),rgba(62,196,244,.42),rgba(155,107,255,.4),rgba(200,242,122,0));mix-blend-mode:soft-light;opacity:.9;pointer-events:none}
html.motion .souvenir__sheen{animation:spin 9s linear infinite}
.souvenir__top{position:relative;display:flex;align-items:center;gap:8px;justify-self:stretch;font:800 10px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--lime)}
.souvenir__top img{width:24px;height:24px;border-radius:7px}
.souvenir__face{position:relative;width:46%;margin-top:4px;filter:drop-shadow(0 10px 12px rgba(0,0,0,.35))}
html.motion .souvenir__face{animation:shakeLaugh .9s ease-in-out infinite}
.souvenir__title{position:relative;font:600 17px/1.1 var(--f-display);text-align:center}
.souvenir__wave{position:relative;display:flex;align-items:center;gap:3px;width:100%;height:24px}
.souvenir__wave i{flex:1;height:100%;border-radius:2px;background:var(--lime);transform:scaleY(.35)}
html.motion .souvenir__wave i{animation:eq 1s ease-in-out infinite}
.souvenir__wave i:nth-child(2n){animation-delay:-.3s}.souvenir__wave i:nth-child(3n){animation-delay:-.55s}.souvenir__wave i:nth-child(5n){animation-delay:-.8s}
.souvenir__stamps{position:relative;display:flex;gap:5px;flex-wrap:wrap;justify-content:center}
.souvenir__stamps span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:2px dashed var(--sun);color:var(--sun);font:700 10px/1 var(--f-display);rotate:-12deg}
.souvenir__stamps span:nth-child(2n){rotate:10deg;border-color:var(--lime);color:var(--lime)}
.souvenir__foot{position:relative;display:flex;justify-content:space-between;justify-self:stretch;margin-top:auto;font:700 11px/1 var(--f-body);color:var(--muted-d)}
.souvenir__foot b{font:700 16px/1 var(--f-display);color:#fff}

/* ---------------------------------------------------------------- confiance */
.trust{padding:clamp(40px,6vh,80px) 0 clamp(90px,12vh,140px)}
.trust__grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;grid-auto-rows:minmax(190px,auto);gap:clamp(12px,1.8vw,22px)}
.trust__item{position:relative;display:grid;align-content:start;gap:10px;padding:clamp(22px,2.4vw,32px);border-radius:30px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);transition:transform .5s var(--spring),box-shadow .3s}
.trust__item:hover{transform:translateY(-5px);box-shadow:inset 0 0 0 1px var(--line),0 24px 40px -30px rgba(14,59,46,.55)}
.trust__item p{color:var(--muted)}
.trust__item--big{grid-row:span 2;background:var(--ink);color:#fff;align-content:end;overflow:hidden}
.trust__item--big p{color:var(--muted-d);max-width:30ch}
.trust__item--big .h3{font-size:clamp(1.8rem,1.3rem + 1.6vw,2.8rem)}
.trust__mascot{position:absolute;right:-6%;top:-4%;width:min(62%,280px);opacity:.98}
html.motion .trust__item--big.is-in .trust__mascot{animation:headbang 1.6s ease-in-out infinite}
.trust__ico{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--lime);color:var(--ink);margin-bottom:6px}
.trust__ico svg{width:26px;height:26px}
.trust__links{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:28px;font-weight:800}
.trust__links a{text-underline-offset:5px;text-decoration-thickness:2px;text-decoration-color:var(--green)}
.trust__links a:hover{color:var(--green-t)}

/* ---------------------------------------------------------------- CTA */
.cta{padding:0 clamp(8px,1.6vw,24px)}
.cta__panel{position:relative;padding:clamp(70px,10vw,140px) 0 clamp(60px,8vw,110px);border-radius:var(--r-xl);background:radial-gradient(90% 70% at 50% 0%,#2BB868,var(--green) 28%,var(--green-d) 62%);color:#fff;overflow:hidden;isolation:isolate;text-align:center}
.cta__rays{position:absolute;z-index:-1;left:50%;top:-40%;width:max(160vw,1600px);aspect-ratio:1;translate:-50% 0;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.07) 0deg 6deg,transparent 6deg 18deg);-webkit-mask-image:radial-gradient(circle,#000 10%,transparent 55%);mask-image:radial-gradient(circle,#000 10%,transparent 55%)}
html.motion .cta__rays{animation:spin 90s linear infinite}
.cta__inner{display:grid;justify-items:center}
.cta__mascot{width:clamp(130px,14vw,200px);margin-bottom:6px}
html.motion .cta__mascot .m-arm--wave{animation:waveHi 1.2s ease-in-out infinite}
html.motion .cta__mascot{animation:hopIdle 2.8s var(--ease-io) infinite}
@keyframes waveHi{0%,100%{transform:rotate(0)}25%{transform:rotate(-16deg)}75%{transform:rotate(12deg)}}
.cta__title{font:700 clamp(3rem,1.6rem + 6.4vw,8.6rem)/.9 var(--f-display);letter-spacing:-.045em;text-wrap:balance}
.cta__mdrr{display:inline-block;padding:0 .14em;border-radius:.2em;background:var(--lime);color:var(--ink);rotate:-2deg;box-shadow:.06em .06em 0 var(--ink)}
.cta__text{margin-top:24px;font-size:clamp(1.2rem,1.05rem + .4vw,1.45rem);max-width:40ch;font-weight:700}
.cta .stores{margin-top:32px}
.cta__fine{margin-top:22px;font-size:14px;font-weight:700;opacity:.92}

/* ---------------------------------------------------------------- les nouvelles (inscription e-mail) */
.news{padding:clamp(56px,8vh,100px) 0 0}
.news__card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,4vw,64px);align-items:center;padding:clamp(26px,4vw,52px);border-radius:var(--r-xl);background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.news__ico{display:grid;place-items:center;width:52px;height:52px;margin-bottom:18px;border-radius:16px;background:var(--lime);color:var(--ink)}
.news__ico svg{width:26px;height:26px}
.news__title{font:700 clamp(2rem,1.3rem + 2.4vw,3.4rem)/1 var(--f-display);letter-spacing:-.03em;text-wrap:balance}
.news__text{margin-top:16px;max-width:42ch;color:var(--muted);font-size:clamp(1.02rem,.96rem + .3vw,1.2rem)}
.news__nojs{font-weight:700}
.news__nojs a{color:var(--green-t);text-underline-offset:4px;text-decoration-thickness:2px}
.news__nojs[hidden],.news__form[hidden]{display:none}
.news__form{display:grid;gap:14px}
.news__label{font:800 15px/1.2 var(--f-body)}
.news__field{display:flex;flex-wrap:wrap;gap:10px}
.news__input{flex:1 1 220px;min-width:0;min-height:56px;padding:0 22px;border:2px solid rgba(14,59,46,.2);border-radius:99px;background:var(--paper);color:var(--ink);font:600 17px/1.2 var(--f-body);transition:border-color .2s,background-color .2s}
.news__input::placeholder{color:var(--muted);opacity:1}
.news__input:hover{border-color:rgba(14,59,46,.38)}
.news__input:focus{border-color:var(--green);background:#fff}
.news__input:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:99px}
.news__input[aria-invalid="true"]{border-color:#B93A0E}
.news__btn{min-height:56px}
.news__form[aria-busy="true"] .news__btn{opacity:.7;cursor:progress}
.news__trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.news__consent{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;font-weight:600;line-height:1.45}
.news__consent input{width:24px;height:24px;margin:1px 0 0;accent-color:var(--green);cursor:pointer}
.news__consent input:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:6px}
.news__consent input[aria-invalid="true"]{outline:3px solid #B93A0E;outline-offset:2px;border-radius:6px}
.news__consent label{cursor:pointer}
.news__fine{font-size:14px;color:var(--muted)}
.news__fine a{color:var(--green-t);text-underline-offset:3px}
.news__status{font-weight:800;line-height:1.45}
.news__status.is-ok,.news__status.is-error{padding:12px 16px;border-radius:16px}
.news__status.is-ok{background:var(--lime-2)}
.news__status.is-error{background:#FFE9E3;color:#8A2A0A}

/* ---------------------------------------------------------------- pied de page */
.foot{padding:clamp(40px,8vh,90px) 0 32px;overflow:clip}
.foot__big{position:relative;display:flex;justify-content:center;padding-top:.3em;font:700 clamp(7rem,2rem + 24vw,26rem)/.78 var(--f-display);letter-spacing:-.025em;color:var(--ink);user-select:none}
.foot__big span{display:inline-block;transition:transform .5s var(--spring),color .3s}
.foot__big span:hover{transform:translateY(-.08em) rotate(-6deg);color:var(--green)}
html.motion .foot.is-in .foot__big span{animation:laughWave 1.4s var(--spring) both}
html.motion .foot.is-in .foot__big span:nth-child(2){animation-delay:.08s}
html.motion .foot.is-in .foot__big span:nth-child(3){animation-delay:.16s}
html.motion .foot.is-in .foot__big span:nth-child(4){animation-delay:.24s}
@keyframes laughWave{0%{transform:translateY(.25em);opacity:0}50%{transform:translateY(-.08em) rotate(-4deg);opacity:1}100%{transform:none}}
.foot__last{position:relative}
.foot__sleep{position:absolute;left:50%;bottom:calc(100% - .12em);width:.4em;translate:-50% 0;transition:transform .6s var(--spring)}
.foot__sleep.is-awake{animation:popIn .8s var(--spring) both}
.foot__row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:clamp(26px,4vw,48px);padding-top:24px;border-top:1px solid var(--line)}
.foot__nav{display:flex;flex-wrap:wrap;gap:8px 22px;font-weight:800}
.foot__nav a{text-decoration:none;border-radius:6px}
.foot__nav a:hover{text-decoration:underline;text-decoration-color:var(--green);text-underline-offset:5px;text-decoration-thickness:2px}
.foot__copy{font:600 16px/1 var(--f-display)}
.foot__credits{margin-top:18px;font-size:13px;color:var(--muted)}
.foot__credits a{text-underline-offset:3px}

/* ---------------------------------------------------------------- lecteur & curseur */
.now{position:fixed;right:16px;bottom:16px;z-index:80;display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:8px 8px 8px 16px;border-radius:99px;background:var(--ink);color:#fff;box-shadow:0 20px 40px -18px rgba(14,59,46,.7);font:700 14px/1.2 var(--f-body)}
.now[hidden]{display:none}
html.motion .now:not([hidden]){animation:nowIn .6s var(--spring) both}
@keyframes nowIn{from{opacity:0;transform:translateY(30px) scale(.9)}}
.now__wave{display:flex;align-items:center;gap:3px;height:18px}
.now__wave i{width:3px;height:100%;border-radius:2px;background:var(--lime);transform:scaleY(var(--l,.3));transition:transform .08s linear}
.now__txt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.now__stop{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--lime);color:var(--ink);flex:none}
.now__stop svg{width:18px;height:18px}

.cursor{position:fixed;left:0;top:0;z-index:90;pointer-events:none;display:none}
html.has-cursor .cursor{display:block}
.cursor__dot{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 2px var(--ink);transition:width .35s var(--spring),height .35s var(--spring),margin .35s var(--spring),background-color .3s,opacity .3s}
.cursor__label{position:absolute;translate:-50% -50%;font:600 14px/1 var(--f-display);color:var(--ink);white-space:nowrap;opacity:0;transition:opacity .2s}
.cursor.is-link .cursor__dot{width:44px;height:44px;margin:-22px 0 0 -22px;background:rgba(200,242,122,.45)}
.cursor.is-label .cursor__dot{width:84px;height:84px;margin:-42px 0 0 -42px;background:var(--lime)}
.cursor.is-label .cursor__label{opacity:1}
.cursor.is-hidden .cursor__dot{opacity:0}

/* ---------------------------------------------------------------- révélations au scroll (seulement sous html.motion) */
html.motion [data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease-out),transform 1s var(--ease-out);transition-delay:var(--d,0s)}
html.motion [data-reveal].is-in{opacity:1;transform:none}
html.motion .mood[data-reveal]{transform:translateY(60px) rotate(var(--rot,3deg)) scale(.92);transition:opacity .9s var(--ease-out),transform 1.1s var(--spring);transition-delay:var(--d,0s)}
html.motion .mood[data-reveal].is-in{transform:none;transition:opacity .9s var(--ease-out),transform 1.1s var(--spring),box-shadow .4s;transition-delay:var(--d,0s),var(--d,0s),0s}
html.motion .mood[data-reveal].is-in:hover{transform:translateY(-8px) rotate(-1deg);transition-delay:0s}
.w{display:inline-block;vertical-align:top;overflow:clip;padding:.12em .02em .1em;margin:-.12em -.02em -.1em}
html.motion [data-split] .w__in{display:inline-block;transform:translateY(112%) rotate(6deg);transition:transform 1.1s var(--ease-out);transition-delay:calc(var(--wi) * 55ms)}
html.motion [data-split].is-in .w__in{transform:none}
html.motion [data-panel]{transform:scale(var(--ps,1));transform-origin:50% 0;will-change:transform}

/* ---------------------------------------------------------------- responsive */
@media (max-width:1180px){
  .top__nav a{padding:10px 10px;font-size:14px}
}
@media (max-width:1040px){
  .top__nav{display:none}
  .top__menu{display:inline-flex}
  .top__cta{display:none}
}
@media (max-width:900px){
  :root{--top-h:64px}
  .hero{padding-bottom:70px}
  .hero__scroll{display:none}
  .hero__inner{grid-template-columns:1fr;gap:20px}
  .hero__stage{min-height:auto;padding:30px 0 10px;margin-top:10px}
  .hero__phone{rotate:3deg}
  .sunburst{width:min(120%,560px)}
  .sun-btn{left:0;bottom:2%}
  .orbit li:nth-child(1){left:2%;top:6%}
  .orbit li:nth-child(4){left:auto;right:6%;bottom:30%}
  .how__body{grid-template-columns:1fr;gap:0}
  .how__phone-col{grid-column:1;grid-row:1;z-index:2;align-self:start;height:100%;pointer-events:none}
  .how__sticky{top:calc(var(--top-h) + 6px);padding:6px 0 26px;margin:0 calc(var(--gutter) * -1);background:linear-gradient(var(--paper) 88%,rgba(246,250,241,0))}
  .how__sticky::before{display:none}
  .how .phone{--pw:min(46vw,200px)}
  .how__sticky::before{width:120%}
  .how__steps{grid-column:1;grid-row:1;padding-top:calc(min(46vw,200px) * 19.2 / 9 + 24px)}
  .how__step{min-height:62vh;justify-content:flex-start;padding:28px 0 20px}
  .how__step:last-child{min-height:44vh}
  .how__num{font-size:3.6rem}
  .moods__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .laughs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .flow{grid-template-columns:1fr;max-width:520px;margin:0 auto;gap:46px}
  .flow__step--human{transform:none}
  .flow__track{display:none}
  .voyage__grid{grid-template-columns:1fr}
  .voyage__visual{min-height:auto;padding-bottom:60px}
  .voyage__phone{left:0;bottom:-2%}
  .voyage__phone .phone{--pw:min(38vw,190px)}
  .voyage__visual .globe-wrap{margin-left:0;width:min(100%,520px);justify-self:end}
  .voyage__tags li:nth-child(3){left:auto;right:0}
  .arena__grid{grid-template-columns:1fr}
  .arena__phone{display:flex;justify-content:center}
  .coins{grid-template-columns:1fr}
  .boost__grid{grid-template-columns:1fr}
  .boost__visual{min-height:auto;padding:30px 0}
  .boost__phone{translate:16% 0}
  .boost__phone .phone{--pw:min(52vw,250px)}
  .souvenir{width:min(44vw,210px);top:66%}
  .trust__grid{grid-template-columns:1fr 1fr}
  .trust__item--big{grid-column:span 2;grid-row:auto;min-height:300px}
  .trust__mascot{width:min(46%,220px)}
  .news__card{grid-template-columns:1fr}
}
@media (max-width:560px){
  .hero__title{font-size:clamp(3.4rem,17.6vw,5rem)}
  .stores{gap:10px}
  .store{flex:1 1 150px;justify-content:center;padding:10px 14px 10px 12px;gap:10px;min-height:58px}
  .store__txt{font-size:17px;white-space:nowrap}
  .store__txt small{font-size:11px}
  .store__ico{width:28px;height:28px}
  .hero .phone{--pw:min(56vw,236px)}
  .sun-btn{width:min(34vw,132px);left:-2%}
  .sun-btn__bubble{font-size:13px;padding:8px 11px}
  .orbit li{width:clamp(40px,12vw,56px)}
  .orbit li:nth-child(5){right:6%;bottom:0}
  .bands{height:140px}
  html.motion .combat__scroller{height:300vh}
  .combat__stage{gap:4px;flex-direction:column;justify-content:center}
  .combat__bubble{align-self:flex-start;margin-left:6%;transform:translate(calc(var(--push) * -3vw),calc(var(--push) * -2vh)) rotate(calc(var(--shake) * 1deg - var(--push) * 5deg)) scale(calc(1 - var(--gone)))}
  .combat__hero{align-self:flex-end;margin-right:8%;width:min(42vw,170px);transform:translate(calc(var(--gone) * -22vw),calc(var(--gone) * -12vh)) scale(calc(.82 + var(--laugh) * .18))}
  .combat__waves{rotate:38deg}
  .combat__l--m{transform:translate(calc(var(--fly) * -20vw),calc(var(--fly) * -40vh)) rotate(calc(var(--fly) * -260deg))}
  .combat__l--d{transform:translate(calc(var(--fly) * 50vw),calc(var(--fly) * -36vh)) rotate(calc(var(--fly) * 200deg))}
  .combat__l--r{transform:translate(calc(var(--fly) * -30vw),calc(var(--fly) * 30vh)) rotate(calc(var(--fly) * 320deg))}
  .combat__score{gap:8px;padding:8px 14px;font-size:11px}
  .moods__grid{gap:10px}
  .mood{min-height:190px;padding:16px;border-radius:24px}
  .mood__face{width:72px;top:14px;right:14px}
  .mood__name{font-size:1.35rem}
  .mood p{font-size:14px}
  .laughs{grid-template-columns:1fr;gap:10px}
  .laugh{padding:14px;gap:10px 12px;border-radius:22px}
  .laugh__play{width:46px;height:46px}
  .laugh__wave{height:28px}
  .laugh__meta b{font-size:17px}
  .listen__head{align-items:center}
  .duel__ring{gap:6px}
  .duel__btns{flex-direction:column;align-items:stretch}
  .duel__name{min-height:2.3em;display:grid;align-items:center}
  .coin-card{grid-template-columns:auto 1fr;column-gap:16px;align-items:center;padding:18px}
  .coin-card .coin{grid-row:span 2;width:54px;height:54px}
  .coin-card b{margin-top:0}
  .pill-btn{justify-content:center;padding:0 12px}
  .arena__glory{flex-direction:column;text-align:center}
  .trust__grid{grid-template-columns:1fr}
  .trust__item--big{grid-column:auto}
  .foot__row{flex-direction:column;align-items:flex-start}
  .now{left:10px;right:10px;bottom:10px}
  .news__btn{flex:1 1 100%}
  .duel__ring{--face:clamp(84px,26vw,120px);--vs:48px}
}
@media (max-width:380px){
  .hero__eyebrow{font-size:12px}
  .mood p{display:none}
  .mood{min-height:150px}
}
@media (min-width:1600px){
  :root{--maxw:1440px}
}

/* ---------------------------------------------------------------- mouvement réduit */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}
}

/* Native, keyboard-accessible locale chooser; no automatic redirects. */
.language-selector{position:relative;pointer-events:auto;margin-left:auto}
.language-selector summary{cursor:pointer;min-height:44px;display:flex;align-items:center;padding:0 12px;border:1px solid var(--line);border-radius:99px;font-weight:800;list-style:none}
.language-selector .language-menu{position:absolute;right:0;top:calc(100% + 8px);display:grid;min-width:180px;padding:8px;border-radius:18px;background:var(--paper,#f6faf1);box-shadow:0 8px 28px #0e3b2e26}
.language-menu a{display:block;padding:12px 16px;line-height:1.3;text-decoration:none;border-radius:10px}
.language-menu a:hover,.language-menu a[aria-current]{background:#c8f27a;color:#0e3b2e}
.family-memory{padding-block:80px;max-width:900px}
.family-memory p{margin-block:16px}
@media(max-width:400px){.language-selector summary{max-width:100px;font-size:12px;padding:0 8px}.top__cta{padding-inline:10px}}

html[lang="pt"] .hero__title,html[lang="de"] .hero__title{font-size:clamp(3.1rem,1.3rem + 6vw,8.4rem)}
@media(max-width:700px){html[lang="pt"] .hero__title,html[lang="de"] .hero__title{font-size:clamp(2.8rem,14vw,4.3rem)}}
