body{margin:0;background:#120a36}
a{color:#6ff3ff}a:hover{color:#ffffff}
@keyframes avFlick{0%,7%,9%,52%,54%,57%,100%{opacity:1}8%{opacity:.25}53%{opacity:.4}55.5%{opacity:.15}}
@keyframes avText{0%,30%,32%,78%,100%{opacity:1}31%{opacity:.3}79%,80%{opacity:.55}}
@keyframes avPulse{from{opacity:.72}to{opacity:1}}
@keyframes avSway{0%,100%{transform:rotate(-1.2deg)}50%{transform:rotate(1.2deg)}}
@keyframes avDrip{0%{transform:scaleY(.15)}70%,100%{transform:scaleY(1)}}
@keyframes avTwinkle{0%,100%{transform:scale(1) rotate(0deg)}50%{transform:scale(1.25) rotate(18deg)}}
@keyframes avBlink{0%,90%,100%{transform:scaleY(1)}94%{transform:scaleY(.1)}}
@keyframes avWobble{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes avFlash{0%,80%,88%,100%{opacity:1}84%{opacity:.2}91%{opacity:.3}}
@keyframes avSpin{to{transform:rotate(360deg)}}
@keyframes avRock{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
.av-nf{animation:avFlick 7s linear infinite}.av-nt{animation:avText 5s linear infinite}.av-nc,.av-ns{animation:avPulse 1.6s ease-in-out infinite alternate}
.av-sw{transform-box:view-box;transform-origin:200px -4px;animation:avSway 6s ease-in-out infinite}
.av-dp{transform-box:fill-box;transform-origin:50% 0;animation:avDrip 5s ease-in infinite}
.av-tw{transform-box:fill-box;transform-origin:center;animation:avTwinkle 2.4s ease-in-out infinite}
.av-bl{transform-box:fill-box;transform-origin:center;animation:avBlink 4s linear infinite}
.av-wb{transform-box:fill-box;transform-origin:center;animation:avWobble 3s ease-in-out infinite}
.av-fl{animation:avFlash 3.5s linear infinite}
.av-sp{transform-box:fill-box;transform-origin:center;animation:avSpin 9s linear infinite}
.av-rk{transform-box:fill-box;transform-origin:50% 100%;animation:avRock 2.6s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){[class^="av-"],[class*=" av-"]{animation:none!important}}
.jf{position:relative}
.jfx{position:relative;width:100%;height:100%;transition:translate .6s cubic-bezier(.34,1.56,.64,1),filter .35s ease}
.jfx>svg{display:block}
.shine{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;filter:brightness(2.6) saturate(.25);opacity:.5;-webkit-mask-image:linear-gradient(105deg,transparent 40%,#000 50%,transparent 60%);mask-image:linear-gradient(105deg,transparent 40%,#000 50%,transparent 60%);-webkit-mask-size:300% 100%;mask-size:300% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:100% 0;mask-position:100% 0;animation:objShine 9s ease-in-out infinite}
@keyframes objShine{0%,70%{-webkit-mask-position:100% 0;mask-position:100% 0}100%{-webkit-mask-position:0% 0;mask-position:0% 0}}
@keyframes objShineFast{0%{-webkit-mask-position:100% 0;mask-position:100% 0}100%{-webkit-mask-position:0% 0;mask-position:0% 0}}
@keyframes pirouette{0%{rotate:0deg}60%{rotate:380deg}80%{rotate:352deg}100%{rotate:360deg}}
[data-id="o1"] .shine{animation-delay:-0.00s}[data-id="o2"] .shine{animation-delay:-0.53s}[data-id="o3"] .shine{animation-delay:-1.06s}[data-id="o4"] .shine{animation-delay:-1.59s}[data-id="o5"] .shine{animation-delay:-2.12s}[data-id="o6"] .shine{animation-delay:-2.65s}[data-id="o7"] .shine{animation-delay:-3.18s}[data-id="o8"] .shine{animation-delay:-3.71s}[data-id="o9"] .shine{animation-delay:-4.24s}[data-id="o10"] .shine{animation-delay:-4.77s}[data-id="o11"] .shine{animation-delay:-5.30s}[data-id="o12"] .shine{animation-delay:-5.83s}[data-id="o13"] .shine{animation-delay:-6.36s}[data-id="o14"] .shine{animation-delay:-6.89s}[data-id="o15"] .shine{animation-delay:-7.42s}[data-id="o16"] .shine{animation-delay:-7.95s}[data-id="o17"] .shine{animation-delay:-8.48s}
.hov .jfx{translate:0 -14px;filter:drop-shadow(0 0 22px rgba(255,95,210,.95)) brightness(1.12);animation:jellyWobble .75s ease-out}
.hov .shine{opacity:1;animation:objShineFast .8s ease-out 0s 1}
.blue .shine{filter:brightness(2.2) grayscale(1) sepia(1) hue-rotate(165deg) saturate(5)}
.blue.hov .jfx{filter:drop-shadow(0 0 22px rgba(90,190,255,.95)) brightness(1.12)}
@media (prefers-reduced-motion: reduce){.shine,.hov .jfx,.hov .shine{animation:none!important}}
@keyframes titleGlow{0%,100%{text-shadow:0 0 0 rgba(255,95,210,0)}50%{text-shadow:0 0 26px rgba(255,95,210,.55)}}
@keyframes heroGlow{0%,100%{text-shadow:0 2px 14px rgba(18,10,54,.7),0 0 30px rgba(255,95,210,.4)}50%{text-shadow:0 2px 14px rgba(18,10,54,.7),0 0 48px rgba(255,95,210,.8)}}
@keyframes kickerFlicker{0%,44%,48%,52%,100%{opacity:1}46%{opacity:.35}50%{opacity:.75}}
.jelly-title{transform-origin:left center;transition:transform .55s cubic-bezier(.34,1.56,.64,1),opacity .7s ease,translate .9s cubic-bezier(.34,1.56,.64,1);animation:titleGlow 6s ease-in-out infinite}
.jelly-title.center{transform-origin:center;animation:heroGlow 5s ease-in-out infinite}
.jelly-title.center:hover{transform:scale(1.02);animation:heroGlow 5s ease-in-out infinite,jellyWobble .75s ease-out}
.kicker{animation:kickerFlicker 7s linear infinite;transition:letter-spacing .45s cubic-bezier(.34,1.56,.64,1),text-shadow .3s ease,opacity .7s ease,translate .9s cubic-bezier(.34,1.56,.64,1)}
.jelly-card h3{transition:color .3s ease,text-shadow .3s ease}
.jelly-card:hover h3{color:#ffd0f2!important;text-shadow:0 0 18px rgba(255,95,210,.75)}
@media (prefers-reduced-motion: reduce){.jelly-title,.jelly-title:hover,.kicker,.jelly-title.center,.jelly-title.center:hover{animation:none!important;transition:none}}
@keyframes jellyWobble{0%{scale:1 1}22%{scale:1.045 .955}42%{scale:.97 1.03}62%{scale:1.015 .985}80%{scale:.995 1.005}100%{scale:1 1}}
@keyframes iconFloat{0%,100%{translate:0 0}50%{translate:0 -5px}}
@keyframes iconBounce{0%{rotate:0deg;scale:1}30%{rotate:-14deg;scale:1.18}55%{rotate:9deg;scale:.95}75%{rotate:-4deg;scale:1.05}100%{rotate:0deg;scale:1}}
@keyframes shimmer{0%,70%{background-position:160% 0}100%{background-position:-60% 0}}
.jelly-card{position:relative;overflow:hidden;transition:transform .55s cubic-bezier(.34,1.56,.64,1),box-shadow .35s ease,border-color .35s ease}
.jelly-card::before{content:"";position:absolute;left:0;top:0;right:0;bottom:0;background:linear-gradient(115deg,rgba(255,255,255,0) 40%,rgba(255,255,255,.14) 50%,rgba(255,255,255,0) 60%);background-size:250% 100%;background-position:160% 0;animation:shimmer 9s ease-in-out infinite;pointer-events:none;z-index:0}
.jelly-card:nth-child(2)::before{animation-delay:-2s}.jelly-card:nth-child(3)::before{animation-delay:-4s}.jelly-card:nth-child(4)::before{animation-delay:-6s}
.jelly-card::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(105deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.4) 50%,rgba(255,255,255,0) 100%);transform:skewX(-20deg);transition:left .9s ease;pointer-events:none;z-index:0}
.jelly-card:hover{transform:translateY(-8px);border-color:rgba(255,255,255,.7)!important;box-shadow:inset 0 2px 3px rgba(255,255,255,.75),inset 0 -14px 26px rgba(10,4,40,.35),0 0 50px rgba(255,95,210,.42),0 26px 50px rgba(5,2,25,.55)!important;animation:jellyWobble .75s ease-out}
.jelly-card:hover::after{left:135%}
.jc-icon{animation:iconFloat 4s ease-in-out infinite}
.jelly-card:nth-child(2) .jc-icon{animation-delay:-1s}.jelly-card:nth-child(3) .jc-icon{animation-delay:-2s}.jelly-card:nth-child(4) .jc-icon{animation-delay:-3s}
.jelly-card:hover .jc-icon{animation:iconFloat 4s ease-in-out infinite,iconBounce .7s ease-out}
@keyframes iconNudge{0%{rotate:0deg;scale:1}35%{rotate:-5deg;scale:1.07}65%{rotate:3deg;scale:.98}100%{rotate:0deg;scale:1}}
#methode .jelly-card:hover .jc-icon{animation:iconFloat 4s ease-in-out infinite,iconNudge .6s ease-out}
.js-reveal .reveal{opacity:0;translate:0 46px;transition:opacity .7s ease,translate .9s cubic-bezier(.34,1.56,.64,1),transform .55s cubic-bezier(.34,1.56,.64,1),box-shadow .35s ease,border-color .35s ease}
.js-reveal .reveal.in{opacity:1;translate:0 0}
.js-reveal .reveal:nth-child(2){transition-delay:.08s,.08s,0s,0s,0s}.js-reveal .reveal:nth-child(3){transition-delay:.16s,.16s,0s,0s,0s}.js-reveal .reveal:nth-child(4){transition-delay:.24s,.24s,0s,0s,0s}.js-reveal .reveal:nth-child(5){transition-delay:.32s,.32s,0s,0s,0s}.js-reveal .reveal:nth-child(6){transition-delay:.4s,.4s,0s,0s,0s}
@media (prefers-reduced-motion: reduce){.jelly-card,.jelly-card::before,.jc-icon,.jelly-card:hover,.jelly-card:hover .jc-icon{animation:none!important}.js-reveal .reveal{opacity:1;translate:0 0;transition:none}}
.btn-jelly,.btn-glass{position:relative;overflow:hidden;isolation:isolate;transition:transform .45s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease,filter .3s ease,background .3s ease,border-color .3s ease}
.btn-jelly::after,.btn-glass::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(105deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.7) 50%,rgba(255,255,255,0) 100%);transform:skewX(-20deg);transition:left .7s ease;pointer-events:none;z-index:1}
.btn-jelly:hover::after,.btn-glass:hover::after{left:135%}
.btn-jelly svg{transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.btn-jelly:hover svg{transform:translateX(5px)}
.btn-jelly:hover{transform:translateY(-3px) scale(1.06,1.04);filter:brightness(1.08) saturate(1.1);box-shadow:inset 0 3px 3px rgba(255,255,255,.85),inset 0 -6px 10px rgba(120,0,90,.35),0 0 46px rgba(255,95,210,.85),0 16px 30px rgba(5,2,25,.45)!important}
.btn-glass:hover{transform:translateY(-3px) scale(1.06,1.04);border-color:rgba(255,255,255,.8)!important;background:linear-gradient(150deg,rgba(255,255,255,.38) 0%,rgba(255,255,255,.14) 50%,rgba(255,255,255,.24) 100%)!important;box-shadow:inset 0 2px 2px rgba(255,255,255,.75),inset 0 -8px 14px rgba(10,4,40,.3),0 0 30px rgba(111,243,255,.5),0 16px 30px rgba(5,2,25,.45)!important}
.btn-jelly:active,.btn-glass:active{transform:translateY(0) scale(.95,.97);transition-duration:.12s}
.nav-link{position:relative;transition:color .25s ease,text-shadow .25s ease}
.nav-link::after{content:"";position:absolute;left:0;bottom:4px;width:100%;height:3px;border-radius:3px;background:#ff5fd2;box-shadow:0 0 10px #ff5fd2;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.nav-link:hover{color:#ffffff!important;text-shadow:0 0 12px rgba(255,95,210,.9)}
.nav-link:hover::after{transform:scaleX(1)}
.icon-btn{transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease,background .3s ease}
.icon-btn:hover{transform:rotate(-10deg) scale(1.15);background:rgba(255,95,210,.25)!important;box-shadow:inset 0 2px 2px rgba(255,255,255,.6),0 0 22px rgba(255,95,210,.7)!important}
.tile{transition:transform .45s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease}
.tile:hover{transform:translateY(-6px) scale(1.02);box-shadow:inset 0 4px 5px rgba(255,255,255,.95),inset 0 -10px 14px rgba(42,26,94,.3),0 22px 36px rgba(5,2,25,.55),0 0 50px rgba(255,95,210,.55)!important}
.btn-jelly:focus-visible,.btn-glass:focus-visible,.nav-link:focus-visible,.icon-btn:focus-visible,.tile:focus-visible{outline:3px solid #6ff3ff;outline-offset:4px}
@media (prefers-reduced-motion: reduce){.btn-jelly,.btn-glass,.nav-link::after,.icon-btn,.tile,.btn-jelly::after,.btn-glass::after{transition:none}}
@keyframes jfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
@media (prefers-reduced-motion: reduce){.jf{animation:none!important}}
@keyframes jellyBreath{0%,100%{scale:1 1}50%{scale:1.025 .975}}
.btn-jelly{animation:jellyBreath 3.2s ease-in-out infinite}
.btn-jelly::before{content:"";position:absolute;left:9%;top:3px;width:82%;height:46%;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.7) 0%,rgba(255,255,255,0) 100%);pointer-events:none;z-index:-1;opacity:.75}
.btn-jelly:hover{box-shadow:inset 0 4px 6px rgba(255,255,255,.95),inset 0 -8px 14px rgba(120,0,90,.45),inset 0 0 0 1px rgba(255,255,255,.45),0 0 48px rgba(255,95,210,.9),0 16px 30px rgba(5,2,25,.45)!important;animation:jellyWobble .75s ease-out}
@media (prefers-reduced-motion: reduce){.btn-jelly,.btn-jelly:hover{animation:none!important}}
@keyframes neonBtnPulse{from{box-shadow:inset 0 0 12px rgba(255,95,210,.4),inset 0 2px 2px rgba(255,255,255,.45),0 0 14px rgba(255,95,210,.55),0 10px 22px rgba(5,2,25,.45)}to{box-shadow:inset 0 0 16px rgba(255,95,210,.6),inset 0 2px 2px rgba(255,255,255,.45),0 0 26px rgba(255,95,210,.85),0 10px 22px rgba(5,2,25,.45)}}
@keyframes phoneRing{0%,100%{rotate:0deg}15%{rotate:-16deg}30%{rotate:14deg}45%{rotate:-10deg}60%{rotate:8deg}75%{rotate:-4deg}}
.btn-neon{position:relative;overflow:hidden;isolation:isolate;animation:neonBtnPulse 2.4s ease-in-out infinite alternate;transition:transform .45s cubic-bezier(.34,1.56,.64,1),background .3s ease}
.btn-neon::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(105deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.45) 50%,rgba(255,255,255,0) 100%);transform:skewX(-20deg);transition:left .7s ease;pointer-events:none;z-index:-1}
.btn-neon .ico{transition:transform .45s cubic-bezier(.34,1.56,.64,1)}
.btn-neon:hover{transform:translateY(-3px) scale(1.04);background:linear-gradient(150deg,rgba(255,170,235,.4) 0%,rgba(150,40,160,.6) 45%,rgba(90,20,120,.75) 100%)!important;animation:none;box-shadow:inset 0 0 18px rgba(255,95,210,.7),inset 0 2px 2px rgba(255,255,255,.55),0 0 40px rgba(255,95,210,.95),0 14px 28px rgba(5,2,25,.5)!important}
.btn-neon:hover::after{left:135%}
.btn-neon:hover .ico{transform:scale(1.12);animation:phoneRing .7s ease-in-out}
.btn-neon:active{transform:translateY(0) scale(.96)}
.btn-neon:focus-visible{outline:3px solid #6ff3ff;outline-offset:4px}
@media (prefers-reduced-motion: reduce){.btn-neon,.btn-neon:hover .ico{animation:none!important}.btn-neon{transition:none}}
/* --- theme additions --- */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
@keyframes rvFallback{to{opacity:1;translate:0 0}}
.js-reveal:not(.rv-ready) .reveal{animation:rvFallback .01s 3s forwards}
.nt-simple{min-height:100vh;box-sizing:border-box;padding:48px 24px;font-family:'Zen Maru Gothic',sans-serif;color:#efeaff;background:linear-gradient(180deg,#120a36 0%,#1c1150 100%)}
.nt-simple__inner{max-width:760px;margin:0 auto}
.nt-simple a{color:#6ff3ff}
.nt-simple h1,.nt-simple h2{font-family:'Mochiy Pop One',sans-serif;font-weight:400;color:#ffffff;line-height:1.2}
.nt-simple__back{display:inline-block;margin-bottom:32px;font-weight:700}
.nt-simple article{margin-bottom:48px;line-height:1.7}
@media (max-width: 760px){
#accueil{height:auto!important;min-height:100svh;padding-bottom:56px;box-sizing:border-box}
nav[aria-label="Navigation principale"]{border-radius:32px!important;padding:10px 10px 10px 18px!important}
nav[aria-label="Navigation principale"] > div{display:none!important}
nav[aria-label="Navigation principale"] .btn-neon{min-height:44px!important;padding-right:14px!important;font-size:14px!important}
}

.tile:hover{animation:jellyWobble .75s ease-out}
.tile>div::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(105deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.38) 50%,rgba(255,255,255,0) 100%);transform:skewX(-20deg);transition:left .9s ease;pointer-events:none;z-index:3}
.tile:hover>div::after{left:135%}
.tile>div>img,.tile>div>svg{transition:transform .6s cubic-bezier(.34,1.56,.64,1),filter .4s ease}
.tile:hover>div>img{transform:scale(1.07);filter:brightness(1.08)}
.tile:hover>div>svg{transform:scale(1.06);filter:brightness(1.15) saturate(1.15)}
.tile:hover .av-nf,.tile:hover .av-nt{animation:none;opacity:1}
@media (prefers-reduced-motion: reduce){.tile:hover{animation:none}.tile:hover>div>img,.tile:hover>div>svg{transform:none}}
html{scroll-padding-top:116px}
#accueil{padding-top:98px;box-sizing:border-box}
#accueil>header{position:fixed!important;top:0;left:0;right:0;z-index:100!important;transition:transform .35s ease}
.admin-bar #accueil>header{top:32px}
#accueil>header nav{transition:background .35s ease,box-shadow .35s ease}
.nt-scrolled #accueil>header nav{background:linear-gradient(150deg,rgba(130,110,210,.78) 0%,rgba(40,20,100,.88) 45%,rgba(30,15,80,.92) 100%)!important;box-shadow:inset 0 2px 2px rgba(255,255,255,.5),inset 0 -10px 20px rgba(10,4,40,.35),0 0 30px rgba(255,95,210,.25),0 16px 32px rgba(5,2,25,.55)!important}
@media (max-width:782px){.admin-bar #accueil>header{top:46px}}
@media (max-width:760px){html{scroll-padding-top:150px}#accueil{padding-top:140px!important}}
