/* =========================================================
   AnimaMédia — Le journal de la cause animale dans le monde
   Feuille de style commune aux deux pages
   ========================================================= */

@font-face{font-family:Goldman;src:url(../fonts/goldman-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Goldman;src:url(../fonts/goldman-700.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --noir:#030207;
  --blanc:#f6f3ff;
  --gris:#a9a3bf;
  --ligne:rgba(255,255,255,.09);
  --violet:#8b5cf6;
  --violet-clair:#c4b0ff;
  --lueur:rgba(139,92,246,.55);
  --titre:Goldman, system-ui, sans-serif;
  --texte:-apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;
  --haut-entete:75px;
  color-scheme:dark;
}

*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--noir)}
body{background:var(--noir);color:var(--blanc);font-family:var(--texte);-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
img{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--violet-clair);outline-offset:3px;border-radius:6px}

.surtitre{font:400 12px var(--titre);letter-spacing:.32em;text-transform:uppercase;color:var(--violet-clair)}
.sous-titre{display:block;font:400 clamp(13px,1.15vw,17px)/1.7 var(--titre);letter-spacing:.34em;text-transform:uppercase;color:#e7e1ff;text-shadow:0 0 18px rgba(139,92,246,.6)}
.drapeau{font-size:17px;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}
.logo{mix-blend-mode:screen}           /* le noir du logo se fond dans le décor */
.cache-visuel{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
noscript p{padding:30px;text-align:center;color:var(--gris)}

/* ---------- En-tête commun ---------- */
.entete{position:sticky;top:0;z-index:20;height:var(--haut-entete);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:0 34px;
  background:rgba(3,2,7,.8);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--ligne)}
.entete nav{grid-column:2;display:flex;gap:6px;padding:5px;border:1px solid var(--ligne);border-radius:999px;background:rgba(255,255,255,.03)}
.entete nav a{font:700 12px var(--titre);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;padding:11px 20px;border-radius:999px;color:var(--gris);transition:color .2s}
.entete nav a:hover{color:#fff}
.entete nav a[aria-current="page"]{color:#fff;background:linear-gradient(135deg,#6d3df2,#9b6bff);box-shadow:0 0 22px var(--lueur)}
.direct{grid-column:3;justify-self:end;white-space:nowrap;display:flex;align-items:center;gap:10px;font:400 11px var(--titre);letter-spacing:.2em;text-transform:uppercase;color:var(--violet-clair)}
.point{width:8px;height:8px;border-radius:50%;background:#b892ff;box-shadow:0 0 14px #b892ff;animation:pouls 1.6s infinite}
@keyframes pouls{50%{opacity:.25}}

/* =========================================================
   PAGE « LE MONDE »
   ========================================================= */
.page-monde{background:radial-gradient(ellipse at 40% 0,#1a0f3a 0,var(--noir) 62%) fixed}
.tableau{display:grid;grid-template-columns:1fr 400px;height:calc(100vh - var(--haut-entete));height:calc(100dvh - var(--haut-entete))}
.gauche{display:flex;flex-direction:column;padding:24px 34px 22px;min-height:0}
.titre-monde{display:flex;align-items:center;gap:26px}
.titre-monde .logo{width:300px;height:auto}
.titre-monde .sous-titre{font-size:14px}
.zones{display:flex;gap:8px;margin-top:16px}
.zones button{font:700 11px var(--titre);letter-spacing:.16em;text-transform:uppercase;padding:9px 16px;border-radius:999px;border:1px solid var(--ligne);color:var(--gris);transition:.2s}
.zones button:hover,.zones button[aria-pressed="true"]{color:#fff;border-color:rgba(196,176,255,.5);box-shadow:0 0 18px rgba(139,92,246,.3)}
.cadre-carte{position:relative;flex:1;min-height:240px;margin-top:10px}
.cadre-carte svg{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}

.terre{fill:rgba(196,176,255,.2);r:var(--rt,.7px)}
#fine circle{fill:rgba(196,176,255,.24)}
.masque{display:none}
.presse{fill:rgba(196,176,255,.5)}
.cible{cursor:pointer;outline:none}
.cible .coeur{fill:#fff;stroke:#a77bff;stroke-width:.5;filter:drop-shadow(0 0 2px #a77bff)}
.cible .halo{fill:rgba(139,92,246,.25);stroke:#b892ff;stroke-width:.35;transition:fill .2s}
.cible .onde{fill:none;stroke:#c4b0ff;stroke-width:.4;animation:onde 2.6s ease-out infinite;transform-box:fill-box;transform-origin:center}
.cible text{font:700 3px var(--titre);letter-spacing:.14px;fill:#fff;paint-order:stroke;stroke:#030207;stroke-width:1px;stroke-linejoin:round;opacity:0;transition:opacity .2s;pointer-events:none}
.cible.pointee text,.cible:focus-visible text,.cible.survol text,.cible.choisie text,.zoom .cible text{opacity:1}
.cible.pointee .halo,.cible:focus-visible .halo,.cible.survol .halo{fill:rgba(139,92,246,.55)}
.cible.choisie .coeur{fill:#c4b0ff}
.cible.choisie .halo{fill:rgba(139,92,246,.6)}
@keyframes onde{from{transform:scale(.4);opacity:1}to{transform:scale(3);opacity:0}}

.compteurs{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ligne);border:1px solid var(--ligne);border-radius:16px;overflow:hidden;margin-top:12px}
.compteurs div{background:rgba(8,6,18,.92);padding:14px 18px}
.compteurs strong{display:block;font:700 24px var(--titre);text-shadow:0 0 22px var(--lueur)}
.compteurs span{font-size:12.5px;color:var(--gris)}

.colonne{border-left:1px solid var(--ligne);background:rgba(6,4,14,.75);display:flex;flex-direction:column;min-height:0}
.colonne-tete{padding:22px 24px 14px;border-bottom:1px solid var(--ligne)}
.colonne-tete h2{font:700 13px var(--titre);letter-spacing:.24em;text-transform:uppercase;color:var(--violet-clair)}
.colonne-tete p{font-size:13px;color:var(--gris);margin-top:6px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.colonne-tete button{flex:none;font:700 11px var(--titre);letter-spacing:.12em;color:var(--violet-clair)}
.liste{flex:1;overflow:auto;padding:4px 24px 24px;scrollbar-width:thin;scrollbar-color:rgba(196,176,255,.25) transparent}

.depeche{position:relative;padding:16px 12px;margin:0 -12px;border-bottom:1px solid var(--ligne);border-radius:12px;cursor:pointer;transition:background .2s}
.depeche:hover{background:rgba(139,92,246,.08)}
.depeche.ouverte{background:linear-gradient(135deg,rgba(139,92,246,.28),rgba(139,92,246,.06));border-color:transparent;box-shadow:inset 0 0 0 1px rgba(196,176,255,.35)}
.depeche .meta{display:flex;gap:9px;align-items:center;font:400 10.5px var(--titre);letter-spacing:.16em;color:var(--gris);text-transform:uppercase}
.depeche h3{margin-top:7px}
.depeche h3 button{text-align:left;font-size:15.5px;line-height:1.4;font-weight:600}
.depeche .corps{display:none;margin-top:10px}
.depeche.ouverte .corps{display:block}
.depeche .resume{font-size:14px;line-height:1.6;color:#d6cfee}
.depeche .sources{margin-top:10px;font:700 11px/1.7 var(--titre);letter-spacing:.12em;color:var(--violet-clair)}
.depeche .sources a{border-bottom:1px solid rgba(196,176,255,.35)}
.depeche .sources a:hover{color:#fff;border-color:#fff}
.message{padding:20px 0;color:var(--gris);font-size:14px;line-height:1.6}

/* =========================================================
   PAGE « LES VIDÉOS »
   ========================================================= */
.ouverture{position:relative;text-align:center;padding:54px 20px 30px;overflow:hidden}
.ouverture::before{content:"";position:absolute;left:50%;top:-30%;width:1100px;max-width:160vw;height:700px;transform:translateX(-50%);background:radial-gradient(ellipse,rgba(139,92,246,.28),transparent 65%);pointer-events:none}
.ouverture .logo{position:relative;width:min(760px,88vw);height:auto;margin:0 auto}
.ouverture .sous-titre{position:relative;margin-top:6px;font-size:clamp(13px,1.4vw,20px)}
.devise{position:relative;margin-top:22px;font:700 15px var(--titre);letter-spacing:.3em;text-transform:uppercase;color:var(--gris)}
.devise b{color:var(--violet-clair);font-weight:700}

.scene{max-width:1440px;margin:20px auto 0;padding:0 34px;display:grid;grid-template-columns:1fr 340px;gap:24px;scroll-margin-top:calc(var(--haut-entete) + 20px)}
.lecteur{position:relative;border-radius:22px;overflow:hidden;border:1px solid rgba(196,176,255,.28);box-shadow:0 0 110px rgba(139,92,246,.25);aspect-ratio:16/9;background:#05030c}
.lecteur > img,.lecteur video{width:100%;height:100%;object-fit:cover;display:block}
.lecteur:not(.en-lecture)::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,2,7,.92),transparent 50%);pointer-events:none}
.lecteur .infos{position:absolute;z-index:2;left:30px;right:30px;bottom:26px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.lecteur h2{font:700 clamp(20px,2.4vw,34px)/1.2 var(--titre);margin-top:8px}
.lecteur .attente{font-size:14px;color:var(--gris);margin-top:6px}
.rond{flex:none;width:84px;height:84px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.45);box-shadow:0 0 44px var(--lueur);transition:transform .25s}
.rond::before{content:"";border-left:22px solid #fff;border-top:13px solid transparent;border-bottom:13px solid transparent;margin-left:7px}
.rond:hover{transform:scale(1.07)}
.rond[aria-disabled="true"]{cursor:default;opacity:.55}
.rond[aria-disabled="true"]:hover{transform:none}
.lecteur.en-lecture .infos{display:none}

.sommaire{border-radius:22px;border:1px solid var(--ligne);background:linear-gradient(170deg,#120d24,#06040d);padding:24px;align-self:start}
.sommaire h3{font:700 13px var(--titre);letter-spacing:.24em;text-transform:uppercase;color:var(--violet-clair);margin-bottom:12px}
.chapitre{display:grid;grid-template-columns:52px 1fr;gap:12px;width:100%;text-align:left;padding:14px 0;border-bottom:1px solid var(--ligne)}
.chapitre:last-child{border:0}
.chapitre time{font:700 13px var(--titre);color:var(--violet-clair)}
.chapitre b{display:flex;gap:8px;align-items:center;font:700 13px var(--titre);letter-spacing:.14em;text-transform:uppercase}
.chapitre .contenu{display:block}
.chapitre .texte{display:block;font-size:14px;color:#cfc8e6;line-height:1.45}
button.chapitre:hover b{color:var(--violet-clair)}

.rayon{max-width:1440px;margin:56px auto 0;padding:0 34px}
.rayon h2{font:700 22px var(--titre);letter-spacing:.06em;margin:8px 0 20px}
.vignettes{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.vignette{display:block;text-align:left;width:100%}
.vignette .image{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:16/9;border:1px solid var(--ligne);transition:border-color .3s,box-shadow .3s}
.vignette .image img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(.75);transition:transform .4s,filter .4s}
.vignette:hover .image img,.vignette[aria-current="true"] .image img{transform:scale(1.05);filter:none}
.vignette[aria-current="true"] .image{border-color:rgba(196,176,255,.6);box-shadow:0 0 30px rgba(139,92,246,.35)}
.vignette .image em{position:absolute;right:10px;bottom:10px;font:700 11px var(--titre);font-style:normal;letter-spacing:.1em;padding:5px 9px;border-radius:8px;background:rgba(3,2,7,.75)}
.vignette h4{font-size:15.5px;font-weight:600;line-height:1.4;margin-top:12px}
.vignette p{font-size:13px;color:var(--gris);margin-top:4px}
.vignette.vide{cursor:default}
.vignette.vide .image{display:grid;place-items:center;background:repeating-linear-gradient(135deg,#0b0817 0 12px,#0e0a1d 12px 24px)}
.vignette.vide .image span{font:700 11px var(--titre);letter-spacing:.2em;color:var(--gris)}

.manifeste{max-width:1440px;margin:70px auto 0;padding:56px 34px 110px;border-top:1px solid var(--ligne);display:grid;grid-template-columns:auto 1fr;gap:56px;align-items:center}
.manifeste strong{font:700 clamp(90px,11vw,170px)/.85 var(--titre);background:linear-gradient(180deg,#fff,#9b6bff);-webkit-background-clip:text;background-clip:text;color:transparent}
.manifeste p{font-size:clamp(18px,1.8vw,24px);line-height:1.55;max-width:760px}
.manifeste em{font-style:normal;color:var(--violet-clair)}

/* =========================================================
   PIED DE PAGE ET PAGE DE TEXTE (mentions légales)
   ========================================================= */
.pied{flex:none;padding:12px 24px;border-top:1px solid var(--ligne);font:400 10.5px var(--titre);letter-spacing:.18em;text-transform:uppercase;color:var(--gris)}
.pied a:hover,.pied a[aria-current="page"]{color:#fff}
footer.pied{text-align:center;padding:26px 16px 34px}
.page-texte{max-width:820px;margin:0 auto;padding:60px 34px 90px}
.page-texte h1{font:700 clamp(28px,4vw,44px) var(--titre);letter-spacing:.03em;margin:10px 0 30px}
.page-texte h2{font:700 13px var(--titre);letter-spacing:.24em;text-transform:uppercase;color:var(--violet-clair);margin:34px 0 10px}
.page-texte p{font-size:17px;line-height:1.7;color:#d9d3ee}
.page-texte .date-maj{margin-top:44px;font-size:13px;color:var(--gris)}

/* =========================================================
   Écrans moyens et téléphones
   ========================================================= */
@media (max-width:1180px){
  .tableau{grid-template-columns:1fr 340px}
  .titre-monde .logo{width:240px}
  .scene{grid-template-columns:1fr 300px}
  .vignettes{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  :root{--haut-entete:64px}
  .entete{grid-template-columns:1fr auto;padding:0 16px}
  .entete nav{grid-column:1;justify-self:start}
  .entete nav a{padding:9px 12px;font-size:10.5px;letter-spacing:.08em}
  .direct{grid-column:2;font-size:9.5px;letter-spacing:.12em;gap:7px}
  .direct .long{display:none}
  .tableau{grid-template-columns:1fr;height:auto}
  .gauche{padding:20px 16px}
  .titre-monde{flex-direction:column;align-items:flex-start;gap:4px}
  .titre-monde .logo{width:230px}
  .titre-monde .sous-titre{font-size:11px;letter-spacing:.26em}
  .titre-monde .sous-titre br{display:none}
  .cadre-carte{flex:none;height:auto;aspect-ratio:2.2/1;min-height:0}
  .compteurs{grid-template-columns:1fr 1fr}
  .colonne{border-left:0;border-top:1px solid var(--ligne);scroll-margin-top:var(--haut-entete)}
  .liste{padding:4px 16px 24px;overflow:visible}
  .ouverture{padding:36px 16px 20px}
  .devise{font-size:12px;letter-spacing:.22em}
  .scene{grid-template-columns:1fr;padding:0 16px}
  .rayon{padding:0 16px}
  .manifeste{grid-template-columns:1fr;gap:20px;padding:40px 16px 80px}
  .page-texte{padding:40px 16px 70px}
  .page-texte p{font-size:16px}
  .lecteur{border-radius:16px}
  .lecteur .infos{left:16px;right:16px;bottom:14px}
  .lecteur .attente{display:none}
  .rond{width:56px;height:56px}
  .rond::before{border-left-width:16px;border-top-width:10px;border-bottom-width:10px;margin-left:5px}
}
@media (max-width:520px){
  .vignettes{grid-template-columns:1fr 1fr;gap:14px}
  .vignette h4{font-size:14px}
  .compteurs strong{font-size:20px}
}

@media (prefers-reduced-motion:reduce){
  .point,.cible .onde{animation:none}
  .vignette .image img,.rond{transition:none}
}
