/* BidoucheLabs : accueil. Feuille dédiée à index.html (les fiches gardent style.css). */
:root{
  --bg:#0b0d1f;--line:#2a2f57;
  --text:#f5f6ff;--muted:#b3b9da;--dim:#8087ae;
  --sun:#ffc83d;--coral:#ff6b7a;--mint:#5be3b5;--violet:#8b9bff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--text);font:16px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;
  background:
   radial-gradient(900px 520px at 85% -8%,rgba(94,118,255,.30),transparent 62%),
   radial-gradient(700px 420px at 0 22%,rgba(91,227,181,.08),transparent 62%),
   var(--bg);background-attachment:fixed}
a{color:inherit}
.wrap{width:min(1160px,calc(100% - 40px));margin:0 auto}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px}

/* ---- En-tête ---- */
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0}
.brand{font-weight:900;letter-spacing:.16em;font-size:.95rem;text-decoration:none}
.brand span{color:var(--violet)}
.top nav{display:flex;gap:4px}
.top nav a{text-decoration:none;font-size:.92rem;color:var(--muted);padding:8px 14px;border-radius:999px;transition:.2s}
.top nav a:hover{color:var(--text);background:#ffffff12}

/* ---- Présentation du studio ---- */
.intro{padding:34px 0 30px}
.eyebrow{display:inline-block;margin:0 0 18px;padding:6px 15px;border:1px solid var(--line);border-radius:999px;background:#ffffff08;color:#aab6ee;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.intro h1{margin:0 0 14px;font-size:clamp(2.3rem,5.4vw,4.2rem);line-height:1.05;font-weight:800;letter-spacing:-.04em}
.intro h1 span{background:linear-gradient(100deg,#a5b8ff,#5be3b5);-webkit-background-clip:text;background-clip:text;color:transparent}
.intro .lead{margin:0;max-width:640px;color:var(--muted);font-size:1.12rem}

/* ---- Boutons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:11px 24px;border-radius:999px;font-weight:800;font-size:.97rem;text-decoration:none;border:2px solid transparent;transition:transform .15s,box-shadow .2s,background .2s}
.btn:hover{transform:translateY(-2px)}
.btn.play{background:var(--sun);color:#2a1d00;box-shadow:0 10px 28px -8px rgba(255,200,61,.55)}
.btn.play:hover{background:#ffd866;box-shadow:0 14px 34px -8px rgba(255,200,61,.8)}
.btn.ghost{border-color:#5560a0;color:var(--text);background:#ffffff08}
.btn.ghost:hover{background:#ffffff16}
.btn.soft{background:#252b55;color:var(--text)}
.btn.soft:hover{background:#313872}
.btn.small{min-height:36px;padding:6px 17px;font-size:.86rem}

/* ---- À la une : Juskou ---- */
.spot{position:relative;display:grid;grid-template-columns:1.25fr .75fr;gap:30px;align-items:center;padding:34px 40px;border-radius:30px;overflow:hidden;
  background:
   radial-gradient(520px 320px at 92% 20%,rgba(255,107,122,.28),transparent 65%),
   radial-gradient(520px 320px at 60% 110%,rgba(255,200,61,.20),transparent 65%),
   linear-gradient(135deg,#1c1840,#14123a);
  border:1px solid #4a4390;box-shadow:0 40px 80px -40px rgba(120,90,255,.55),0 0 0 1px #ffffff08 inset}
.spot-flag{position:absolute;top:0;left:40px;padding:6px 16px;border-radius:0 0 14px 14px;background:var(--sun);color:#2a1d00;font-size:.74rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.live{display:inline-flex;align-items:center;gap:9px;margin-top:18px;padding:6px 14px;border-radius:999px;background:#10382f;border:1px solid #1f6b57;color:#aef3d6;font-weight:700;font-size:.8rem}
.live i{width:9px;height:9px;border-radius:50%;background:var(--mint);animation:pouls 2s infinite}
@keyframes pouls{0%{box-shadow:0 0 0 0 rgba(91,227,181,.7)}70%,100%{box-shadow:0 0 0 10px rgba(91,227,181,0)}}
.spot h2{margin:12px 0 2px;font-size:clamp(2.6rem,6vw,4.4rem);line-height:1;font-weight:900;letter-spacing:-.04em;
  background:linear-gradient(95deg,var(--sun),var(--coral) 60%,#c58bff);-webkit-background-clip:text;background-clip:text;color:transparent}
.tagline{margin:0 0 12px;font-size:1.25rem;font-weight:800}
.spot-text{margin:0 0 22px;max-width:520px;color:var(--muted)}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.cta .btn.play{min-height:52px;padding:13px 30px;font-size:1.05rem}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.chips li{padding:5px 12px;border-radius:10px;background:#ffffff0d;border:1px solid #ffffff1a;font-size:.82rem;color:#dedcf7}
.chips b{color:var(--sun)}

.stage{display:grid;place-items:center}
.phone{width:min(240px,62vw);padding:9px;border-radius:34px;background:linear-gradient(160deg,#2d2870,#15123a);border:1px solid #5047a0;box-shadow:0 30px 60px -24px #000;transform:rotate(3deg);transition:transform .4s}
.phone:hover{transform:rotate(0) scale(1.03)}
.screen{display:block;position:relative;overflow:hidden;border-radius:26px;aspect-ratio:527/598;background:#fff4de;cursor:zoom-in}
.screen img{position:absolute;top:0;left:-56.2%;width:212.5%;height:auto;display:block}
.screen.diapo img{left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease}
.screen.diapo img.on{opacity:1}

/* ---- Autres applications ---- */
.more{padding:56px 0 10px}
.more h2{margin:0 0 4px;font-size:1.6rem;letter-spacing:-.02em}
.more>p{margin:0 0 22px;color:var(--dim);font-size:.95rem}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.card{display:flex;flex-direction:column;padding:10px;border-radius:20px;background:linear-gradient(165deg,#181c3e,#111434);border:1px solid var(--line);transition:transform .25s,border-color .25s,box-shadow .25s}
.card:hover{transform:translateY(-4px);border-color:#5a64b0;box-shadow:0 20px 40px -24px #000}
.shot{position:relative;overflow:hidden;border-radius:12px;aspect-ratio:1120/620;background:#090b1c;border:1px solid var(--line);cursor:zoom-in}
.shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(prefers-reduced-motion:no-preference){
  .shot img{animation:derive 17s ease-in-out infinite alternate}
  .card:nth-child(2n) .shot img{animation-name:derive-b;animation-duration:20s}
  .card:nth-child(3n) .shot img{animation-delay:-7s}
  .card:hover .shot img{animation-play-state:paused}
}
@keyframes derive{from{transform:scale(1.04) translate(-2.5%,-2%)}to{transform:scale(1.2) translate(2.5%,2%)}}
@keyframes derive-b{from{transform:scale(1.2) translate(2.5%,-2%)}to{transform:scale(1.04) translate(-2.5%,2%)}}
.card h3{margin:14px 6px 2px;font-size:1.1rem}
.card p{margin:0 6px 14px;color:var(--muted);font-size:.9rem;line-height:1.45;flex:1}
.card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 6px 4px}
.soon{font-size:.72rem;font-weight:700;color:var(--dim);padding:4px 11px;border-radius:999px;border:1px solid var(--line)}

/* ---- Contact et pied ---- */
.contact{margin:46px 0 0;padding:26px 24px;text-align:center;border-radius:22px;border:1px solid var(--line);background:linear-gradient(135deg,#181c3e,#111434)}
.contact h2{margin:0 0 6px;font-size:1.25rem}
.contact p{margin:0;color:var(--muted)}
.contact a{color:var(--sun);font-weight:800;text-decoration:none;border-bottom:2px solid #ffc83d55}
.contact a:hover{border-color:var(--sun)}
footer{padding:26px 0 36px;text-align:center;color:var(--dim);font-size:.85rem}

/* ---- Agrandissement au clic ---- */
.lightbox{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:rgba(6,8,22,.93);cursor:zoom-out}
.lightbox img{max-width:min(1200px,100%);max-height:100%;border-radius:14px;box-shadow:0 30px 80px #000}

/* ---- Écrans étroits ---- */
@media(max-width:900px){
  .spot{grid-template-columns:1fr;padding:34px 24px 28px}
  .spot-flag{left:24px}
  .stage{order:-1;margin-top:22px}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .top nav a:first-child{display:none}
  .grid{grid-template-columns:1fr}
  .cta .btn{flex:1 1 100%}
}

/* Réglages : première page complète, téléphone plus grand */
.intro{padding:20px 0 22px}
.intro h1{font-size:clamp(2.1rem,4.6vw,3.5rem)}
.intro .lead{font-size:1.05rem}
.eyebrow{margin-bottom:14px}
.phone{width:min(285px,64vw)}
.spot{padding:30px 40px}
.more{padding-top:44px}
.card p{margin-bottom:10px}
.contact{margin-top:36px}

/* ===== Cartes des autres applications : une couleur par application ===== */
.card{--c:#8b9bff;position:relative;padding:0;overflow:hidden;border-radius:22px;
  background:linear-gradient(170deg,#1a1e46,#101333);border:1px solid #2c3262}
.card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--c),transparent 85%);z-index:2}
.card::after{content:"";position:absolute;width:260px;height:260px;right:-90px;top:-110px;border-radius:50%;background:var(--c);opacity:.13;filter:blur(50px);pointer-events:none;transition:opacity .3s}
.card:hover{border-color:color-mix(in srgb,var(--c) 60%,#2c3262);box-shadow:0 26px 50px -28px var(--c)}
.card:hover::after{opacity:.28}
.win{margin:12px 12px 0;border-radius:13px;background:#0a0c20;border:1px solid #2c3262;overflow:hidden}
.bar{display:flex;gap:6px;padding:8px 11px;background:#12163a;border-bottom:1px solid #2c3262}
.bar i{width:8px;height:8px;border-radius:50%;background:#3a4075}
.bar i:first-child{background:var(--c)}
.win .shot{border:0;border-radius:0;aspect-ratio:1120/620}
.body{display:flex;flex-direction:column;flex:1;padding:16px 18px 18px}
.cat{margin:0 0 4px;font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--c)}
.card h3{margin:0 0 6px;font-size:1.3rem;letter-spacing:-.02em}
.card .desc{margin:0 0 12px;color:var(--muted);font-size:.92rem;line-height:1.45}
.feats{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0 0 16px;padding:0;flex:1;align-content:flex-start}
.feats li{padding:3px 11px;border-radius:999px;font-size:.76rem;font-weight:600;color:#dfe3ff;background:color-mix(in srgb,var(--c) 14%,transparent);border:1px solid color-mix(in srgb,var(--c) 38%,transparent)}
.card-foot{padding:0;margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px}
.soon{display:inline-flex;align-items:center;gap:7px;border:0;padding:0;font-size:.78rem;font-weight:700;color:var(--dim)}
.soon i{width:7px;height:7px;border-radius:50%;background:#e0b04a}
.btn.more-btn{background:transparent;border-color:color-mix(in srgb,var(--c) 55%,transparent);color:var(--text)}
.btn.more-btn:hover{background:var(--c);border-color:var(--c);color:#10122c}
.btn.more-btn span{transition:transform .2s}
.btn.more-btn:hover span{transform:translateX(3px)}

.card.idea{align-items:center;justify-content:center;text-align:center;gap:6px;padding:28px 24px;text-decoration:none;background:transparent;border:2px dashed #3a4180}
.card.idea::before,.card.idea::after{display:none}
.card.idea:hover{border-color:var(--sun);background:#ffffff06;box-shadow:none}
.card.idea .plus{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#252b55;color:var(--sun);font-size:2rem;font-weight:300;line-height:1;margin-bottom:8px}
.card.idea h3{margin:0}
.card.idea p{margin:0 0 12px;color:var(--muted);font-size:.92rem}

/* ===== Cadrage des captures : cadre uniforme, recadrage propre, mouvement discret ===== */
.win{margin:12px 12px 0;border-radius:14px;border:1px solid color-mix(in srgb,var(--c) 30%,#2c3262);background:#0a0c20;box-shadow:0 14px 30px -18px #000;overflow:hidden}
.win .bar{display:none}
.win .shot{aspect-ratio:16/10;border:0;border-radius:0;background:#0a0c20}
.win .shot img{object-fit:cover;object-position:var(--p,50% 50%);transform:scale(var(--z,1));animation:none!important;transition:transform 6s ease-out}
.card:hover .win .shot img{transform:scale(calc(var(--z,1) + .07))}
@media(prefers-reduced-motion:no-preference){
  .win .shot img{animation:respire 14s ease-in-out infinite alternate!important}
  .card:nth-child(2n) .win .shot img{animation-duration:17s!important;animation-delay:-5s!important}
  .card:nth-child(3n) .win .shot img{animation-duration:19s!important;animation-delay:-9s!important}
  .card:hover .win .shot img{animation-play-state:paused!important}
}
@keyframes respire{from{transform:scale(var(--z,1))}to{transform:scale(calc(var(--z,1) + .06))}}
/* Recadrage propre selon chaque capture (supprime les bandes sombres/vides) */
.card:nth-child(1){--z:1.14;--p:50% 52%}
.card:nth-child(2){--z:1.02;--p:50% 45%}
.card:nth-child(3){--z:1.0;--p:50% 0%}
.card:nth-child(4){--z:1.0;--p:50% 0%}
.card:nth-child(5),.card:nth-child(6){--z:1.0;--p:0% 0%}

.win .shot.demo{position:relative;cursor:zoom-in;background:#0b0d24}

/* ===== Visite guidée sur les vraies captures ===== */
.win .shot.tour{overflow:hidden}
.win .shot.tour img{transform-origin:0 0}
.tour .ring{position:absolute;left:50%;top:50%;width:46%;height:46%;translate:-50% -50%;border:2px solid var(--c);border-radius:12px;box-shadow:0 0 0 9999px rgba(6,8,24,.0),0 0 18px color-mix(in srgb,var(--c) 70%,transparent);opacity:0;pointer-events:none}
.tour .cap{position:absolute;left:8px;bottom:8px;max-width:calc(100% - 16px);padding:3px 10px;border-radius:999px;font-size:.7rem;font-weight:800;color:#10122c;background:var(--c);opacity:0;pointer-events:none}
@media(prefers-reduced-motion:no-preference){
@keyframes tour-studiopro-audio{
0%,8%{transform:translate(0,0) scale(1)}
14%,30%{transform:translate(-51.0%,-55.6%) scale(2.4)}
38%,54%{transform:translate(-47.6%,-117.2%) scale(2.2)}
62%,78%{transform:translate(-160.0%,-80.0%) scale(2.6)}
100%{transform:translate(0,0) scale(1)}
}
.card[data-app="studiopro-audio"] .tour img{animation:tour-studiopro-audio 18s ease-in-out infinite!important}
@keyframes tour-studiopro-video{
0%,8%{transform:translate(0,0) scale(1)}
14%,30%{transform:translate(0.0%,-57.5%) scale(2.5)}
38%,54%{transform:translate(-91.0%,-53.5%) scale(2.3)}
62%,78%{transform:translate(-160.0%,-80.0%) scale(2.6)}
100%{transform:translate(0,0) scale(1)}
}
.card[data-app="studiopro-video"] .tour img{animation:tour-studiopro-video 18s ease-in-out infinite!important}
@keyframes tour-dietaliv{
0%,8%{transform:translate(0,0) scale(1)}
14%,30%{transform:translate(0.0%,0.0%) scale(2.6)}
38%,54%{transform:translate(-83.5%,-58.0%) scale(2.4)}
62%,78%{transform:translate(0.0%,-140.0%) scale(2.4)}
100%{transform:translate(0,0) scale(1)}
}
.card[data-app="dietaliv"] .tour img{animation:tour-dietaliv 18s ease-in-out infinite!important}
@keyframes tour-pdf-studio{
0%,8%{transform:translate(0,0) scale(1)}
14%,30%{transform:translate(-56.5%,0.0%) scale(2.4)}
38%,54%{transform:translate(-88.5%,-58.1%) scale(2.3)}
62%,78%{transform:translate(-94.5%,-140%) scale(2.4)}
100%{transform:translate(0,0) scale(1)}
}
.card[data-app="studiopro-pdf"] .tour img{animation:tour-pdf-studio 18s ease-in-out infinite!important}
@keyframes tour-edumaster{
0%,8%{transform:translate(0,0) scale(1)}
14%,30%{transform:translate(0.0%,-90.0%) scale(2.8)}
38%,54%{transform:translate(-79.9%,-38.0%) scale(2.2)}
62%,78%{transform:translate(-103.2%,0.0%) scale(2.5)}
100%{transform:translate(0,0) scale(1)}
}
.card[data-app="edumaster"] .tour img{animation:tour-edumaster 18s ease-in-out infinite!important}
@keyframes ringp{0%,100%{opacity:0}}
@keyframes cap1{0%,12%{opacity:0;transform:translateY(6px)}18%,28%{opacity:1;transform:none}33%,100%{opacity:0}}
@keyframes ring1{0%,16%{opacity:0}22%,28%{opacity:1}32%,100%{opacity:0}}
.tour .cap.c1{animation:cap1 18s ease-out infinite}
.tour .ring.r1{animation:ring1 18s ease-out infinite}
@keyframes cap2{0%,36%{opacity:0;transform:translateY(6px)}42%,52%{opacity:1;transform:none}57%,100%{opacity:0}}
@keyframes ring2{0%,40%{opacity:0}46%,52%{opacity:1}56%,100%{opacity:0}}
.tour .cap.c2{animation:cap2 18s ease-out infinite}
.tour .ring.r2{animation:ring2 18s ease-out infinite}
@keyframes cap3{0%,60%{opacity:0;transform:translateY(6px)}66%,76%{opacity:1;transform:none}81%,100%{opacity:0}}
@keyframes ring3{0%,64%{opacity:0}70%,76%{opacity:1}80%,100%{opacity:0}}
.tour .cap.c3{animation:cap3 18s ease-out infinite}
.tour .ring.r3{animation:ring3 18s ease-out infinite}
.card:hover .tour img,.card:hover .tour .cap,.card:hover .tour .ring{animation-play-state:paused!important}
}
@media(prefers-reduced-motion:reduce){.tour .cap.c1{opacity:1}}

/* Message d'adaptation et grille 3 + 2 cartes */
.adapt{display:inline-flex;align-items:center;gap:10px;margin:16px 0 0;padding:8px 16px;border-radius:999px;background:#ffffff0a;border:1px solid #3a4180;color:var(--muted);font-size:.98rem}
.adapt::before{content:"✦";color:var(--sun)}
.adapt b{color:var(--text)}
@media(min-width:901px){
  .grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .card{grid-column:span 2}
  .card:nth-child(4),.card:nth-child(5){grid-column:span 3}
}
@media(max-width:900px){.card:nth-child(5),.card:nth-child(6){grid-column:1/-1}}
@media(min-width:901px){.card:nth-child(4) .win .shot,.card:nth-child(5) .win .shot,.card:nth-child(6) .win .shot{aspect-ratio:2.3/1}}

/* Cartes du bas (StudioPro Pdf, EduMaster) : capture entière à gauche, texte à droite */
@media(min-width:901px){
  .card:nth-child(4),.card:nth-child(5),.card:nth-child(6){display:grid;grid-template-columns:1.15fr 1fr;align-items:center}
  .card:nth-child(4) .win,.card:nth-child(5) .win,.card:nth-child(6) .win{margin:12px 0 12px 12px}
  .card:nth-child(4) .win .shot,.card:nth-child(5) .win .shot,.card:nth-child(6) .win .shot{aspect-ratio:16/10}
  .card:nth-child(4) .body,.card:nth-child(5) .body,.card:nth-child(6) .body{padding:14px 18px 14px 20px;height:100%}
}
.foot-btns{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.btn.clip{background:var(--c);border-color:var(--c);color:#10122c}
.btn.clip:hover{filter:brightness(1.1)}

/* ===== Bandeau d'accueil (splash) ===== */
#splash{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;pointer-events:none;
  background:radial-gradient(circle at 50% 50%,#2a2670,#0b0d1f 65%);animation:splashOut 2.2s ease-in-out forwards}
.splash-lockup{display:flex;align-items:center;gap:18px;animation:splashIn .9s cubic-bezier(.16,1,.3,1) both}
.splash-mark{width:60px;height:60px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,#ffd866,#ff6b7a 60%,#8b6cff);box-shadow:0 0 60px rgba(255,200,61,.45);color:#241400;font-size:2.1rem;font-weight:900}
.splash-word{font-size:clamp(1.5rem,4.5vw,2.6rem);font-weight:900;letter-spacing:.06em;color:#fff}
.splash-word em{font-style:normal;color:var(--sun)}
.no-splash #splash{display:none}
@keyframes splashIn{from{opacity:0;transform:translateY(16px) scale(.94);filter:blur(7px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes splashOut{0%,68%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){#splash{display:none}}

/* ===== Sélecteur de langue ===== */
.top nav a.lang{margin-left:6px;padding:6px 12px;border:1px solid #3a4180;border-radius:999px;font-weight:800;font-size:.8rem;letter-spacing:.06em;color:var(--text)}
.top nav a.lang:hover{background:#ffffff14}

/* Bouton « Clip » : discret, sans retour à la ligne */
.btn,.soon{white-space:nowrap}
.card-foot{flex-wrap:wrap;row-gap:10px}
.foot-btns{gap:8px;flex-wrap:nowrap}
.btn.clip{background:transparent;border-color:color-mix(in srgb,var(--c) 70%,transparent);color:var(--c);gap:7px;padding-left:12px;padding-right:15px}
.btn.clip .ico{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:var(--c);color:#10122c;font-size:.55rem;padding-left:1px;transition:transform .2s}
.btn.clip:hover{background:color-mix(in srgb,var(--c) 16%,transparent);filter:none}
.btn.clip:hover .ico{transform:scale(1.12)}

/* Légendes de la visite guidée : bande sous l'image, sans rien masquer */
.caps{position:relative;height:32px;background:#0a0c22;border-top:1px solid #2c3262}
.caps .cap{position:absolute;left:12px;right:12px;top:0;bottom:auto;height:32px;display:flex;align-items:center;max-width:none;padding:0;border-radius:0;background:none;color:var(--c);font-size:.8rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.caps .cap::before{content:"";flex:none;width:7px;height:7px;margin-right:9px;border-radius:50%;background:var(--c)}
@media(prefers-reduced-motion:reduce){.caps .cap.c1{opacity:1}}
.caps .cap{opacity:0}
@media(prefers-reduced-motion:no-preference){
  .caps .cap.c1{animation:cap1 18s ease-out infinite}
  .caps .cap.c2{animation:cap2 18s ease-out infinite}
  .caps .cap.c3{animation:cap3 18s ease-out infinite}
  .card:hover .caps .cap{animation-play-state:paused}
}
@media(prefers-reduced-motion:reduce){.caps .cap.c1{opacity:1}}

/* Sélecteur de langues */
.langs{display:inline-flex;gap:2px;margin-left:8px;padding:3px;border:1px solid #3a4180;border-radius:999px;vertical-align:middle}
.top nav .langs a{padding:3px 9px;margin:0;border:0;border-radius:999px;font-size:.76rem;font-weight:800;letter-spacing:.03em;color:#cfd6f5;text-decoration:none}
.top nav .langs a:hover{background:#ffffff1c;color:#fff}
.top nav .langs a[aria-current]{background:#fff;color:#0b0d1f}

/* Protection légère contre la copie */
body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
img{-webkit-user-drag:none;user-drag:none}
a[href^="mailto:"],input,textarea{-webkit-user-select:text;user-select:text}

/* Téléphone : en-tête réduit au sélecteur de langue, message d'adaptation sur plusieurs lignes */
.langs a{white-space:nowrap}
@media(max-width:600px){
  .top{gap:10px}
  .top nav>a{display:none}
  .langs{margin-left:0}
  .adapt{display:block;padding:10px 16px;border-radius:18px;line-height:1.5}
  .adapt::before{margin-right:8px}
}
@media(max-width:600px){.top nav .langs a:first-child{display:inline-block}}

/* Alignement : l'étiquette et la description ne s'étirent plus, seules les pastilles absorbent l'espace libre */
.card .body .cat{flex:none;margin:0 0 4px;min-height:0}
.card .body .desc{flex:none;margin:0 0 12px}
.card .body .feats{flex:1 1 auto}

/* ===== Deuxième rangée : mêmes cartes que la première, centrées ===== */
@media(min-width:901px){
  .card:nth-child(4),.card:nth-child(5),.card:nth-child(6){display:flex;flex-direction:column;align-items:stretch}
  .card:nth-child(4) .win,.card:nth-child(5) .win,.card:nth-child(6) .win{margin:12px 12px 0}
  .card:nth-child(4) .body,.card:nth-child(5) .body,.card:nth-child(6) .body{padding:16px 18px 18px;height:auto}
  .card:nth-child(4){grid-column:2 / span 2}
  .card:nth-child(5){grid-column:4 / span 2}
  .card:nth-child(6){grid-column:3 / span 2}
}
@media(max-width:900px) and (min-width:601px){
  .card:nth-child(5),.card:nth-child(6){grid-column:1 / -1;width:calc(50% - 9px);justify-self:center}
}

/* La vitrine Juskou : le vrai jeu qui se joue tout seul, réduit pour tenir dans le téléphone. */
.screen.live{aspect-ratio:360/640;cursor:pointer;background:#0b0b1a}
.screen.live .poster{left:0;top:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.demo-live{position:absolute;left:0;top:0;width:360px;height:640px;border:0;transform-origin:0 0;opacity:0;transition:opacity .6s ease}
.demo-live.on{opacity:1}

/* Les films : de vraies démonstrations des applications, jouées en boucle, à la place d'un travelling sur une image fixe. */
.shot.film{cursor:default;background:#090b1c}
.shot.film video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

/* Téléphone : les applications en éventail, à faire défiler au doigt ; toucher la carte du centre ouvre sa fiche */
.tile-status,.fan-dots,.fan-hint,.psm-label,.psm-avail{display:none}
.card[data-app="juskou"]{display:none}
@media(max-width:600px){
  .spot{display:none}
  #applications>p{display:none}
  .psm-label{display:block;margin:12px 0 6px;font-size:.76rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#aab6ee}
  .psm-avail{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .psm-avail .card{display:flex;position:relative;overflow:hidden;width:auto;transform:none;cursor:pointer;border-radius:16px;-webkit-tap-highlight-color:transparent;border-color:#1f6b57;box-shadow:0 0 0 1px #1f6b57,0 12px 28px -14px #4fe0b0}
  .psm-avail .card .win{position:relative;margin:8px 8px 0;border-radius:11px}
  .psm-avail .card .win .shot{aspect-ratio:16/10}
  .psm-avail .card .body{flex:1;padding:10px 12px 12px}
  .psm-avail .card .cat,.psm-avail .card .desc,.psm-avail .card .feats,.psm-avail .card .tile-status{display:none}
  .psm-avail .card h3{margin:0 0 8px;font-size:1.05rem}
  .psm-avail .card .card-foot{display:flex;margin-top:auto}
  .psm-avail .card .card-foot>:not(a.play){display:none}
  .psm-avail .card .card-foot a.play{width:100%;justify-content:center;padding:9px 4px;font-size:.72rem;letter-spacing:-.01em;white-space:nowrap}
  .grid{--w:min(60vw,236px);display:block;position:relative;isolation:isolate;width:calc(100% + 40px);margin-left:-20px;height:350px;margin-top:4px;overflow:hidden;touch-action:pan-y;-webkit-user-select:none;user-select:none;outline:none}
  .grid .card{position:absolute;left:calc(50% - var(--w)/2);top:22px;width:var(--w);transform-origin:50% 150%;transition:none;will-change:transform;border-radius:18px;cursor:pointer;-webkit-tap-highlight-color:transparent;box-shadow:0 14px 30px -12px #000}
  .grid .card:hover{border-color:inherit}
  .grid .card[data-app="juskou"]{display:flex}
  .grid .card .win{position:relative;margin:8px 8px 0;border-radius:12px}
  .grid .card .win .shot{aspect-ratio:4/3}
  .grid .card .body{flex:none;padding:12px 14px 16px}
  .grid .card .cat,.grid .card .desc,.grid .card .feats,.grid .card .card-foot{display:none}
  .grid .card h3{margin:0;font-size:1.15rem}
  .tile-status{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:.78rem;font-weight:800;color:#9aa3c7}
  .tile-status::before{content:"";width:7px;height:7px;border-radius:50%;background:#e0b04a}
  .tile-status.is-live{padding:4px 11px;border-radius:999px;background:#10382f;border:1px solid #1f6b57;color:#aef3d6}
  .tile-status.is-live::before{background:var(--mint,#4fe0b0);animation:pouls 2s infinite}
  .grid .card[data-live]{border-color:#1f6b57;box-shadow:0 0 0 1px #1f6b57,0 14px 30px -12px #000,0 0 26px -6px #4fe0b0}
  .fan-dots{display:flex;justify-content:center;align-items:center;gap:8px;margin:4px 0 2px}
  .fan-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#3a4180;transition:width .2s,background .2s}
  .fan-dots button[aria-current]{width:22px;border-radius:5px;background:var(--sun,#ffcc4d)}
  .fan-hint{display:block;margin:6px 0 0;text-align:center;color:#8f98c4;font-size:.82rem}
}
.sheet{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;background:#05061acc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:sheet-fade .2s ease-out}
.sheet .card{width:100%;max-height:90vh;max-height:90dvh;overflow-x:hidden;overflow-y:auto;padding-bottom:env(safe-area-inset-bottom);border-radius:22px 22px 0 0;animation:sheet-up .25s ease-out;transform:none!important;cursor:auto}
.sheet-x{position:absolute;top:10px;right:12px;z-index:2;width:40px;height:40px;border:0;border-radius:50%;background:#000a;color:#fff;font-size:1.3rem;line-height:1;cursor:pointer}
@keyframes sheet-fade{from{opacity:0}to{opacity:1}}
@keyframes sheet-up{from{transform:translateY(40px)}to{transform:none}}
@media(prefers-reduced-motion:reduce){.sheet,.sheet .card{animation:none}}
.sheet .card-foot{flex-wrap:wrap;gap:10px}
.sheet .foot-btns{display:contents}
.sheet .card-foot .soon{flex:1 1 100%}
.sheet .card-foot .btn{flex:1 1 calc(50% - 5px);justify-content:center;min-height:46px}
.sheet .card[data-app="juskou"]{display:flex}

.top{position:sticky;top:0;z-index:50;background:rgba(11,16,32,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 0 0 100vmax rgba(11,16,32,.88);clip-path:inset(0 -100vmax)}
html{scroll-padding-top:76px}

@media(max-width:600px){
  .top{padding:10px 0}
  .intro{padding:6px 0 8px}
  .intro .eyebrow,.intro .lead{display:none}
  .intro h1{margin:0 0 8px;font-size:1.65rem;line-height:1.1}
  .intro .adapt{margin:0;padding:7px 14px;font-size:.84rem;line-height:1.4}
  .more{padding-top:14px}
  .more h2{margin:0 0 2px;font-size:1.3rem}
  .grid{margin-top:0;height:320px}
}
.brand{display:inline-flex;align-items:center;gap:.55em}
.brand-logo{width:30px;height:30px;border-radius:8px;flex:none}
img.splash-mark{width:72px;height:72px;background:none;border-radius:16px;object-fit:contain;box-shadow:0 0 60px rgba(80,140,255,.5)}
.splash-logo{display:block;width:min(84vw,600px);height:auto;filter:drop-shadow(0 10px 50px rgba(80,140,255,.45))}
/* Téléphone : message d'adaptation discret, sans cadre, texte équilibré sur deux lignes */
@media(max-width:600px){
  .intro .adapt{display:block;margin:4px 0 0;padding:0;border:0;border-radius:0;background:none;text-align:left;font-size:.88rem;line-height:1.45;color:var(--muted);text-wrap:balance}
  .intro .adapt::before{content:none}
  .intro .adapt b{display:inline;font-size:inherit;font-weight:700;color:var(--text)}
}

.tile-status.is-wip{color:#ffc46b}
