/* VOYA — sable, encre de nuit, orange coucher de soleil, cyan lagon */
:root{--fond:#FBF3E4;--encre:#0B2545;--muet:#6B7A8F;--ligne:rgba(11,37,69,.12);--carte:#FFFDF8;--orange:#FF6B4A;--jaune:#FFB703;--cyan:#2EC4B6;--mer:#0E7C86;--ciel:#5BC0EB;--palmier:#2D6A4F;--nuit:#0B2545;--ombre:0 18px 50px rgba(11,37,69,.10);--vert:#2D6A4F;--rouge:#D62828;
  --avion:repeating-linear-gradient(-45deg,#FF6B4A 0 12px,#FFFDF8 12px 18px,#2E86DE 18px 30px,#FFFDF8 30px 36px)}
body.sombre{--fond:#0A1A2F;--encre:#F4EFE6;--muet:#9FB0C3;--ligne:#ffffff1c;--carte:#11253F;--ombre:none}
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--fond);color:var(--encre);font:14px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;
  background-image:radial-gradient(rgba(11,37,69,.07) 1px,transparent 1.2px);background-size:22px 22px}
a{color:var(--mer);cursor:pointer;font-weight:600}em{font-family:"Caveat",cursive;font-weight:700;font-style:normal;color:var(--orange);font-size:1.15em}
.cache{display:none!important}.muet{color:var(--muet)}.petit{font-size:12px}.centre-txt{text-align:center}
.ecran{display:none}.ecran.actif{display:block}
.centre.actif{display:flex;min-height:100vh;align-items:center;justify-content:center;flex-direction:column;gap:18px}
.spin{width:34px;height:34px;border:3px solid var(--ligne);border-top-color:var(--orange);border-radius:50%;animation:t 1s linear infinite}@keyframes t{to{transform:rotate(360deg)}}
.logo,.logo-xl{font-weight:950;letter-spacing:.2em;color:var(--encre);text-decoration:none}.logo{font-size:15px;cursor:pointer}.logo-xl{font-size:36px}.logo b,.logo-xl b{color:var(--orange)}.logo,.logo-xl{font-family:"Fraunces",Georgia,serif}
/* Boutons, champs */
.btn{border:1px solid var(--ligne);background:var(--carte);color:var(--encre);border-radius:999px;padding:11px 18px;font:800 12px Inter,sans-serif;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.15s;text-decoration:none}
.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.primaire{background:var(--encre);color:var(--fond);border-color:var(--encre);box-shadow:0 10px 28px rgba(7,18,31,.15)}
.orange{background:var(--orange);border-color:var(--orange);color:#fff;box-shadow:0 10px 24px rgba(255,107,74,.35)}
.large{width:100%}.petit-btn{padding:8px 14px;font-size:11px}.lien{background:none;border:0;color:var(--muet);text-decoration:underline;box-shadow:none}
.blanc{background:#fff;color:#1f1f1f}.blanc img{width:18px}
.champ{width:100%;padding:12px 14px;border:1px solid var(--ligne);border-radius:12px;background:var(--carte);color:var(--encre);font:inherit;margin-bottom:10px}
.champ:focus{outline:none;border-color:var(--orange)}textarea.champ{min-height:80px;resize:vertical}
.carte-stripe{background:#fff;padding:14px}.erreur{color:var(--rouge);font-size:12px;min-height:4px;margin-bottom:6px}
.rond{width:38px;height:38px;border-radius:50%;border:1px solid var(--ligne);background:var(--carte);color:var(--encre);cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0}.rond img{width:100%;height:100%;object-fit:cover}
/* Connexion */
.fond-auth{min-height:100vh;background:radial-gradient(circle at 75% 15%,#ffc85b55,transparent 40%),radial-gradient(circle at 15% 85%,#8ed6e455,transparent 45%),var(--fond);padding:24px}
.fond-auth.actif{display:flex;align-items:center;justify-content:center}
.boite-auth{background:var(--carte);border:1px solid var(--ligne);border-radius:28px;padding:32px;width:100%;max-width:440px;box-shadow:var(--ombre)}
.boite-auth h2{font:32px/1 Georgia,serif;margin:14px 0 6px}
.onglets{display:grid;grid-template-columns:1fr 1fr;background:var(--fond);border-radius:999px;padding:4px;margin:16px 0 14px}
.onglets button{border:0;background:none;padding:9px;border-radius:999px;font:800 12px Inter;color:var(--muet);cursor:pointer}.onglets .actif{background:var(--carte);color:var(--encre);box-shadow:0 3px 10px rgba(0,0,0,.08)}
.ou{display:flex;align-items:center;gap:10px;color:var(--muet);font-size:11px;margin:14px 0}.ou:before,.ou:after{content:"";flex:1;height:1px;background:var(--ligne)}
.prix{display:flex;gap:8px;align-items:baseline;margin:12px 0}.prix b{font-size:40px}.avantages{padding-left:18px;color:var(--muet);line-height:1.9}
/* En-tête et mise en page pleine largeur */
.entete{position:sticky;top:0;z-index:40;height:66px;padding:0 clamp(14px,3vw,40px);display:flex;align-items:center;gap:16px;background:color-mix(in srgb,var(--fond) 85%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--ligne)}
.choix{background:var(--carte);color:var(--encre);border:1px solid var(--ligne);border-radius:999px;padding:8px 14px;font:700 12px Inter;max-width:240px}
.actions-entete{margin-left:auto;display:flex;gap:8px;align-items:center}
.bandeau{background:var(--orange);color:#fff;text-align:center;padding:8px;font-weight:800;font-size:12px;cursor:pointer}
.mise-en-page{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - 66px)}
.cote{padding:20px;border-right:1px solid var(--ligne);display:flex;flex-direction:column;gap:6px;position:sticky;top:66px;height:calc(100vh - 66px)}
.couverture{height:150px;border-radius:18px;padding:16px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;background:linear-gradient(145deg,#ffb858,#66bed1 52%,#164f67) center/cover}
.couverture:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#07121fb0,transparent)}.couverture>*{position:relative;z-index:1}
.couverture small{font-size:8px;letter-spacing:.16em}.couverture strong{font:22px/1.1 Georgia,serif}.couverture span{font-size:10px;opacity:.85}.soleil{position:absolute;right:14px;top:12px;font-size:24px;z-index:1}
.liens{display:flex;flex-direction:column;gap:2px;margin-top:8px}
.liens a{padding:11px 12px;border-radius:12px;font-weight:800;font-size:12px;color:var(--muet);text-decoration:none}.liens a.actif{background:var(--carte);color:var(--encre);box-shadow:0 5px 18px rgba(7,18,31,.06)}
.liens i{float:right;font-style:normal;background:var(--fond);padding:1px 7px;border-radius:99px;font-size:10px}
.stockage{margin-top:auto}.stockage small{font-size:8px;letter-spacing:.15em;color:var(--muet)}.stockage>div{height:5px;background:var(--ligne);border-radius:9px;margin:8px 0}.stockage span{display:block;height:100%;width:0;background:var(--orange);border-radius:9px;transition:1s}.stockage b{font-size:10px;color:var(--muet)}
.contenu{padding:28px clamp(16px,3vw,44px) 100px;min-width:0}
.sur-titre{font:700 20px/1 "Caveat",cursive;color:var(--orange);letter-spacing:0}
h1.titre{font:600 clamp(34px,4.5vw,58px)/1 "Fraunces",Georgia,serif;letter-spacing:-.02em;margin:6px 0 10px}
h2{font-family:"Fraunces",Georgia,serif;font-weight:600;letter-spacing:-.01em;margin:0}
.tete{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:28px 0 14px}
.grille{display:grid;gap:12px}.g4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.carte{background:var(--carte);border:1px solid var(--ligne);border-radius:20px;padding:20px;box-shadow:var(--ombre)}
.stat small{font-size:9px;letter-spacing:.15em;font-weight:900;color:var(--muet)}.stat b{display:block;font-size:28px;margin:4px 0;letter-spacing:-.03em}.stat span{font-size:11px;color:var(--muet)}
.depot{border:1.5px dashed var(--ligne);border-radius:20px;padding:40px;text-align:center;background:var(--carte);cursor:pointer;transition:.2s}
.depot.survol{border-color:var(--orange);background:color-mix(in srgb,var(--orange) 8%,var(--carte))}.depot .icone{width:46px;height:46px;border-radius:14px;border:1px solid var(--ligne);display:grid;place-items:center;margin:auto;font-size:22px}
.barre{height:8px;background:var(--ligne);border-radius:99px;overflow:hidden}.barre i{display:block;height:100%;background:var(--orange);border-radius:99px;transition:.3s}
/* Médias */
.galerie{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.tuile{aspect-ratio:1;border-radius:14px;overflow:hidden;position:relative;background:#e7e2d9;cursor:pointer}
.tuile img{width:100%;height:100%;object-fit:cover;transition:.3s}.tuile:hover img{transform:scale(1.04)}
.tuile .badge{position:absolute;top:7px;left:7px;background:#07121fcc;color:#fff;border-radius:99px;padding:2px 8px;font-size:10px;font-weight:800}
.tuile .fort{position:absolute;top:7px;right:7px;background:var(--orange);color:#fff;border-radius:99px;padding:2px 8px;font-size:10px;font-weight:800}
.tuile .meta{position:absolute;left:7px;right:7px;bottom:7px;background:#07121fb8;color:#fff;padding:5px 8px;border-radius:9px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;backdrop-filter:blur(4px)}
.puces{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 14px}.puce{background:var(--carte);border:1px solid var(--ligne);border-radius:99px;padding:7px 13px;font:800 11px Inter;cursor:pointer;color:var(--encre)}.puce.actif{background:var(--encre);color:var(--fond)}
/* Histoire */
.histoire{font:17px/1.75 Georgia,serif}.chapitre{border-left:3px solid var(--orange);padding:4px 0 4px 16px;margin:16px 0}
.voix{background:var(--fond);border-radius:14px;padding:16px;font:italic 15px/1.8 Georgia,serif}
/* Film */
.studio-film{display:grid;grid-template-columns:1.6fr .8fr;background:var(--nuit);border-radius:22px;overflow:hidden;color:#fff}
.ecran-film{margin:14px;border-radius:14px;overflow:hidden;background:#000;display:flex;align-items:center;justify-content:center;min-height:300px;position:relative}
.ecran-film canvas,.ecran-film video{width:100%;height:auto;display:block;max-height:70vh}
.options-film{padding:24px;display:flex;flex-direction:column;gap:12px}.options-film label{font-size:10px;color:#9aa6b4;font-weight:800;letter-spacing:.05em}
.options-film select,.options-film input[type=range],.options-film input[type=file]{display:block;width:100%;margin-top:6px;background:#1b2a3a;color:#fff;border:1px solid #ffffff18;border-radius:10px;padding:10px;font:inherit}
.options-film .btn{color:#fff;border-color:#ffffff28;background:transparent}.options-film .orange{background:var(--orange);border-color:var(--orange)}
#carte-voyage{height:min(68vh,600px);border-radius:20px;overflow:hidden;border:1px solid var(--ligne)}
/* Partage public */
.partage-hero{min-height:60vh;display:flex;align-items:flex-end;padding:40px clamp(18px,5vw,70px);color:#fff;background:linear-gradient(0deg,#07121fdd,transparent 70%),linear-gradient(145deg,#ffb858,#66bed1 52%,#164f67) center/cover}
.partage-hero h1{font:clamp(44px,7vw,96px)/.9 Georgia,serif;margin:10px 0}
/* Fenêtre, notification */
.modal{position:fixed;inset:0;background:#07121faa;backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:16px;z-index:60}.modal.ouvert{display:flex}
.modal-boite{background:var(--carte);color:var(--encre);width:min(560px,100%);max-height:92vh;overflow-y:auto;border-radius:24px;padding:28px;position:relative}
.modal-boite h2{font:32px/1 Georgia,serif;margin:6px 0 16px}.fermer{position:absolute;right:16px;top:14px;border:1px solid var(--ligne);background:var(--carte);color:var(--encre);border-radius:50%;width:32px;height:32px;cursor:pointer}
label.lib{display:block;font-size:11px;font-weight:800;margin-bottom:4px;color:var(--muet)}
.visionneuse img,.visionneuse video{width:100%;max-height:70vh;object-fit:contain;border-radius:12px;background:#000}
.toast{position:fixed;bottom:90px;left:50%;transform:translate(-50%,20px);opacity:0;background:var(--encre);color:var(--fond);padding:12px 18px;border-radius:99px;font-size:12px;font-weight:700;z-index:90;transition:.25s;pointer-events:none;max-width:90vw}.toast.vu{opacity:1;transform:translate(-50%,0)}
.nav-bas{display:none}
@media(max-width:900px){
  .mise-en-page{grid-template-columns:1fr}.cote{display:none}.choix{max-width:150px}
  .studio-film{grid-template-columns:1fr}
  .nav-bas{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;background:var(--nuit);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .nav-bas a{flex:1;text-align:center;color:#9aa6b4;font-size:10px;font-weight:800;text-decoration:none}.nav-bas a i{display:block;font-style:normal;font-size:18px}.nav-bas a.actif{color:var(--jaune)}
  .actions-entete .primaire{display:none}
}
@media(max-width:520px){.galerie{grid-template-columns:repeat(2,1fr)}.g2{grid-template-columns:1fr}.logo{letter-spacing:.12em}}

/* ═══ Identité voyage ═══ */
.entete{position:sticky}.entete:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:4px;background:var(--avion)}
.illu{display:block;width:100%;height:100%}
.illu svg{width:100%;height:100%;display:block}
/* Chargement : montgolfière */
.ballon{width:70px;animation:flotte 3s ease-in-out infinite}@keyframes flotte{50%{transform:translateY(-14px) rotate(3deg)}}
/* Connexion : paysage en fond, boîte façon carte postale */
.fond-auth{position:relative;overflow:hidden;background:none}
.fond-auth .decor{position:fixed;inset:0;z-index:0}.fond-auth .decor svg{width:100%;height:100%}
.boite-auth{position:relative;z-index:1;border:0;box-shadow:0 30px 80px rgba(11,37,69,.35)}
.boite-auth:before{content:"";position:absolute;inset:0;border-radius:28px;padding:6px;background:var(--avion);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.timbre{position:absolute;top:-18px;right:-14px;width:92px;height:92px;z-index:2}
/* Carte postale du voyage (vue d'ensemble) */
.carte-postale{position:relative;border-radius:24px;overflow:hidden;min-height:230px;display:flex;align-items:flex-end;color:#fff;box-shadow:var(--ombre)}
.carte-postale .illu,.carte-postale .photo{position:absolute;inset:0}.carte-postale .photo{background:center/cover}
.carte-postale:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,37,69,.75),transparent 60%)}
.carte-postale .texte{position:relative;z-index:1;padding:22px 26px}
.carte-postale h1{font:600 clamp(32px,4.5vw,56px)/1 "Fraunces",Georgia,serif;margin:2px 0 6px;color:#fff}
.carte-postale .main{font:700 26px/1 "Caveat",cursive;color:#FFE29A}
.carte-postale .tampon-coin{position:absolute;top:14px;right:16px;width:96px;z-index:1;opacity:.95}
.carte-postale .avion-coin{position:absolute;top:18px;left:22px;width:170px;z-index:1}
/* Couverture de la barre latérale */
.couverture{background-color:#5BC0EB}
.couverture .illu{position:absolute;inset:0;z-index:0}
/* États vides illustrés */
.vide-illu{text-align:center;padding:30px 20px}.vide-illu .illu{width:150px;height:auto;margin:0 auto 10px}
/* Cartes : coin « timbre » au survol */
.carte{position:relative}
.tuile{border:4px solid #FFFDF8;box-shadow:0 6px 16px rgba(11,37,69,.12)}.tuile:nth-child(3n){transform:rotate(-1deg)}.tuile:nth-child(3n+1){transform:rotate(.8deg)}.tuile:hover{transform:rotate(0) scale(1.02);z-index:2}
/* Liens de la barre latérale */
.liens a.actif{background:var(--carte);color:var(--encre);box-shadow:inset 3px 0 0 var(--orange),0 5px 18px rgba(11,37,69,.06)}
/* Dépôt façon enveloppe par avion */
.depot{border:0;background:var(--carte);position:relative}
.depot:before{content:"";position:absolute;inset:0;border-radius:20px;padding:5px;background:var(--avion);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.75;pointer-events:none}
.depot .icone{border:0;background:var(--fond);width:64px;height:64px}
/* Studio film : ciel de nuit étoilé */
.studio-film{background:radial-gradient(circle at 80% 10%,#1d4e89 0,#0B2545 55%);position:relative}
.studio-film:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#fff 1px,transparent 1.4px),radial-gradient(#fff .8px,transparent 1.2px);background-size:90px 90px,140px 140px;background-position:10px 20px,60px 70px;opacity:.25;pointer-events:none}
.ecran-film{background:#0B2545}
/* Badges du monde = tampons de passeport */
.tampons{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}
.tampons .t{text-align:center;padding:10px}.tampons .t svg{width:110px;height:110px}.tampons .t.verrou{opacity:.25;filter:grayscale(1)}
.tampons .t b{display:block;font-size:12px;margin-top:4px}
/* Page publique : héros illustré */
.partage-hero{position:relative;overflow:hidden}
.partage-hero .illu{position:absolute;inset:0;z-index:0}.partage-hero>div:not(.illu){position:relative;z-index:1}
.partage-hero h1{font-family:"Fraunces",Georgia,serif}
.nav-bas{border-top:4px solid transparent;border-image:var(--avion) 4}
@media(max-width:900px){.nav-bas a.actif{color:var(--jaune)}}
/* ══ Mes ressentis ══ */
.rs-rapide{margin-top:16px;border-top:4px solid transparent;border-image:var(--avion) 4}
.rs-rapide-tete{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;flex-wrap:wrap}.rs-rapide h2{margin:4px 0 0;font:600 22px Fraunces,Georgia,serif}
.rs-humeurs{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin:12px 0}
.rs-humeurs button{border:1px solid var(--ligne);background:var(--carte);color:var(--encre);border-radius:16px;padding:10px 6px;cursor:pointer;font:700 12px Inter;display:flex;flex-direction:column;align-items:center;gap:3px;transition:.15s}
.rs-humeurs button span{font-size:26px;line-height:1}.rs-humeurs button:hover{transform:translateY(-2px);border-color:var(--orange)}
.rs-humeurs button.choisi{background:color-mix(in srgb,var(--c) 18%,var(--carte));border-color:var(--c);box-shadow:0 6px 18px color-mix(in srgb,var(--c) 30%,transparent);transform:translateY(-2px)}
.rs-actions{display:flex;gap:8px;flex-wrap:wrap}
.rs-dernier{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--cyan) 10%,transparent);cursor:pointer;font-size:13px}.rs-dernier b{font-size:22px}
.rs-panneau{position:fixed;inset:0;z-index:70;background:color-mix(in srgb,var(--nuit) 55%,transparent);backdrop-filter:blur(6px);display:none;overflow-y:auto;padding:20px 12px}.rs-panneau.ouvert{display:block}
.rs-feuille{max-width:640px;margin:0 auto;background:var(--carte);border-radius:24px;padding:20px clamp(16px,4vw,30px) 26px;box-shadow:0 30px 80px rgba(7,18,31,.35);border-top:6px solid transparent;border-image:var(--avion) 6}
.rs-tete{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.rs-moment{display:flex;gap:14px;align-items:center;padding:14px;border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--jaune) 22%,transparent),color-mix(in srgb,var(--ciel) 18%,transparent))}
.rs-moment>span{font-size:44px}.rs-moment .champ{margin:4px 0 0;max-width:240px;padding:8px 10px}.rs-main{font:700 26px/1 Caveat,cursive;color:var(--orange)}
.rs-doux{margin:2px 0 6px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,#5B7DB1 14%,transparent);border-left:4px solid #5B7DB1;font-size:13.5px;line-height:1.55}
.rs-ligne{display:flex;gap:8px;align-items:flex-start}.rs-ligne .champ{flex:1}
.rs-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.rs-modes button{border:1px solid var(--ligne);background:var(--fond);color:var(--encre);border-radius:16px;padding:12px 6px;cursor:pointer;text-align:center}
.rs-modes button b{display:block;font:800 13px Inter}.rs-modes button small{color:var(--muet);font-size:11px}.rs-modes button.actif{background:var(--encre);color:var(--fond);border-color:var(--encre)}.rs-modes button.actif small{color:inherit;opacity:.75}
textarea.rs-texte{min-height:180px;font:21px/1.5 Caveat,cursive;background-image:repeating-linear-gradient(transparent 0 31px,var(--ligne) 31px 32px);line-height:32px}
.rs-dictee{text-align:center}.rs-micro{width:86px;height:86px;border-radius:50%;border:0;background:var(--orange);color:#fff;font-size:34px;cursor:pointer;box-shadow:0 12px 30px rgba(255,107,74,.4)}
.rs-micro.rec,.rs-mic.rec{background:var(--rouge);color:#fff;animation:rsPouls 1.2s infinite}@keyframes rsPouls{50%{box-shadow:0 0 0 14px rgba(214,40,40,.15)}}
.rs-mic{height:44px}
.rs-tons{margin-top:4px}
.rs-resultat{margin-top:12px;padding:12px;border-radius:16px;border:1px dashed var(--orange);background:color-mix(in srgb,var(--orange) 6%,transparent)}
.rs-ruban{display:flex;align-items:flex-end;gap:6px;overflow-x:auto;padding:12px 2px 2px;min-height:120px}.rs-ruban div{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:30px}.rs-ruban i{width:14px;border-radius:8px}.rs-ruban small{font-size:10px;color:var(--muet);font-weight:700}
.rs-fil{display:flex;flex-direction:column;gap:10px}
.rs-item{display:flex;gap:14px;border-left:5px solid var(--c)}.rs-heure{display:flex;flex-direction:column;align-items:center;min-width:52px}.rs-heure b{font-size:24px}.rs-heure span{font-weight:800;font-size:12px}
.rs-contenu{flex:1;min-width:0}.rs-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.rs-badge{background:color-mix(in srgb,var(--c) 16%,transparent);border-radius:99px;padding:3px 10px;font-weight:800;font-size:12px}
.rs-txt{font:20px/1.45 Caveat,cursive;margin:8px 0;white-space:pre-wrap;word-break:break-word}.rs-outils{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:520px){.rs-modes button{padding:10px 4px}.rs-modes button b{font-size:12px}.rs-modes button small{display:none}.rs-humeurs{grid-template-columns:repeat(2,minmax(0,1fr))}.rs-humeurs button{font-size:11px;padding:10px 4px;min-width:0;width:100%;}.rs-humeurs button span{font-size:24px}.rs-item{gap:10px}}

.rs-panneau .pilules,.rs-carte-pilules{display:flex;gap:6px;flex-wrap:wrap}.rs-panneau .pilule,#contenu .pilule{border:1px solid var(--ligne);background:var(--fond);color:var(--encre);border-radius:999px;padding:7px 13px;font:700 12px Inter;cursor:pointer}.rs-panneau .pilule.choisie{background:var(--orange);border-color:var(--orange);color:#fff}

/* ══ V2 UX polish : navigation mobile complète + hiérarchie ══ */
.mobile-menu-btn{display:none;border:1px solid var(--ligne);background:var(--carte);color:var(--encre);border-radius:999px;padding:9px 12px;font:800 11px Inter;cursor:pointer}
.mobile-menu-btn span{margin-left:4px}
.menu-mobile{display:none}
.step-focus{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--encre),#173d63);color:#fff;border:0}
.step-focus:after{content:"✦";position:absolute;right:-12px;top:-26px;font:150px/1 Fraunces,serif;color:#ffffff12;transform:rotate(12deg)}
.step-focus .muet{color:#c9d5e2}
.step-focus .btn{position:relative;z-index:2}
.wow-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;font-size:12px;font-weight:800}
.wow-line span{padding:7px 10px;border:1px solid #ffffff22;border-radius:999px;background:#ffffff0d}
@media(max-width:900px){
  .entete{height:62px;padding:0 12px;gap:8px}
  .entete .choix{display:none}
  .mobile-menu-btn{display:inline-flex;align-items:center}
  .actions-entete .primaire{display:none}
  .mise-en-page{grid-template-columns:1fr}
  .cote{display:none}
  .contenu{padding:20px 14px 104px}
  .nav-bas{display:flex;align-items:stretch}
  .nav-bas a{min-width:0}
  .nav-bas .nav-plus{display:block}
  .menu-mobile{position:fixed;inset:0;z-index:100;display:none}
  .menu-mobile.ouvert{display:block}
  .menu-mobile-backdrop{position:absolute;inset:0;background:#07121fb0;backdrop-filter:blur(4px)}
  .menu-mobile-panel{position:absolute;right:0;top:0;bottom:0;width:min(390px,92vw);background:var(--fond);box-shadow:-24px 0 60px #07121f55;padding:18px 16px calc(24px + env(safe-area-inset-bottom));overflow:auto;animation:menuIn .2s ease}
  @keyframes menuIn{from{transform:translateX(30px);opacity:.5}to{transform:none;opacity:1}}
  .menu-mobile-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
  .menu-mobile-head h2{font-size:28px;margin-top:2px}
  .menu-mobile-voyage{padding:14px;border:1px solid var(--ligne);border-radius:18px;background:var(--carte);margin-bottom:12px}
  .menu-mobile-voyage .champ{margin:7px 0 8px}
  .menu-mobile-links{display:flex;flex-direction:column;gap:4px}
  .menu-mobile-links a{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;color:var(--encre);text-decoration:none;font-weight:850;font-size:13px}
  .menu-mobile-links a:hover,.menu-mobile-links a.actif{background:var(--carte);box-shadow:0 5px 18px #07121f0c}
  .menu-mobile-links a>span{flex:1}
  .menu-mobile-links a>i{font-style:normal;background:var(--fond);padding:2px 7px;border-radius:99px;font-size:10px}
  .menu-mobile-foot{border-top:1px solid var(--ligne);margin-top:14px;padding-top:14px}
  .menu-mobile-foot .btn{width:100%}
  .titre{max-width:100%}
  .carte{border-radius:17px;padding:16px}
  .studio-film{grid-template-columns:1fr}
  .ecran-film{min-height:210px}
}
@media(max-width:520px){
  .logo{font-size:14px}
  .mobile-menu-btn span{display:none}
  .actions-entete{gap:5px}
  .rond{width:36px;height:36px}
  .nav-bas{padding-left:2px;padding-right:2px}
  .nav-bas a{font-size:9px}
  .nav-bas a i{font-size:17px}
  .nav-bas a:nth-child(4),.nav-bas a:nth-child(5){display:none}
  .nav-bas .nav-plus{display:block}
  .tete{align-items:flex-start}
  .tete .btn{width:100%}
  .carte-postale{min-height:290px!important}
  .step-focus{padding:18px!important}
}

/* ══ Native/PWA shell ══ */
html{height:100%;background:var(--fond);overscroll-behavior-y:none}
body.voya-app{min-height:100%;min-height:100dvh;min-height:100svh;overscroll-behavior-y:none}
body.voya-app .ecran{min-height:100dvh}
@supports (padding: max(0px)){
  .entete{padding-top:max(0px, env(safe-area-inset-top));height:calc(66px + env(safe-area-inset-top))}
  .mise-en-page{min-height:calc(100dvh - 66px - env(safe-area-inset-top))}
  .cote{top:calc(66px + env(safe-area-inset-top));height:calc(100dvh - 66px - env(safe-area-inset-top))}
  .contenu{padding-bottom:max(100px, calc(100px + env(safe-area-inset-bottom)))}
  .nav-bas{padding-bottom:max(6px, env(safe-area-inset-bottom))}
  .menu-mobile-panel{padding-top:max(18px, calc(18px + env(safe-area-inset-top)))}
}
@media (display-mode: fullscreen), (display-mode: standalone){html,body{width:100%}
  body.voya-app{background:var(--fond)}
  .entete{position:sticky}
}
@media(max-width:900px){
  .entete{height:62px}
  .mise-en-page{min-height:calc(100dvh - 62px)}
  .contenu{padding-bottom:calc(94px + env(safe-area-inset-bottom))}
  .nav-bas{padding-bottom:max(6px, env(safe-area-inset-bottom))}
}


/* VOYA MOBILE FINAL — real app classes */
@media (max-width: 600px) {
  html, body { width:100%; max-width:100%; overflow-x:hidden !important; }
  .ecran, #ecran-app { width:100%; max-width:100%; min-width:0; overflow-x:clip; }
  .mise-en-page, .contenu { width:100%; max-width:100%; min-width:0; }
  .contenu { padding-left:14px; padding-right:14px; }

  /* Feelings: exactly two cards per row on phones */
  .rs-humeurs {
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    width:100% !important;
    max-width:100% !important;
    gap:8px !important;
  }
  .rs-humeurs button {
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }

  /* Trip postcard */
  .carte-postale {
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }
  .carte-postale .texte { padding:18px 16px !important; }
  .carte-postale .tampon-coin { width:76px !important; right:10px !important; }
  .carte-postale .avion-coin { width:120px !important; left:10px !important; }
  .carte-postale h1 { font-size:clamp(30px,8vw,46px) !important; }

  /* Any generated grid must be shrinkable */
  .grille, .galerie, .g2, .g3, .g4 {
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }
  .grille > *, .galerie > *, .g2 > *, .g3 > *, .g4 > * {
    min-width:0 !important;
    max-width:100% !important;
  }

  img, video, svg, iframe, canvas {
    max-width:100% !important;
  }

  .tete { min-width:0; }
  .tete > * { min-width:0; max-width:100%; }

  /* Header actions */
  .entete { max-width:100%; min-width:0; }
  .actions-entete { min-width:0; max-width:100%; }

  /* Bottom navigation */
  .nav-bas { width:100% !important; max-width:100% !important; }
}
