/* ==========================================================
   THÈME — L'IMPRIMERIE (Affiches) : papier, trame, CMJN
   ========================================================== */
.theme-affiches {
  --fond: #f4f1ea; --texte: #1d1a17; --cyan: #00a3d9; --magenta: #e6007e; --jaune-p: #ffe600;
  font-family: 'Roumald', serif;
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='p'><feTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='2'/><feColorMatrix values='0 0 0 0 .3  0 0 0 0 .25  0 0 0 0 .2  0 0 0 .09 0'/></filter><rect width='300' height='300' filter='url(%23p)'/></svg>"),
    var(--fond);
}
.theme-affiches ::selection { background: var(--magenta); color: #fff; }

/* trame de points en dégradé */
.pr-trame {
  position: absolute; right: -10%; top: -10%; width: 70vw; height: 70vw;
  background: radial-gradient(circle, var(--cyan) 2.6px, transparent 3px) 0 0 / 14px 14px;
  -webkit-mask: radial-gradient(circle at 70% 30%, #000, transparent 65%); mask: radial-gradient(circle at 70% 30%, #000, transparent 65%);
  opacity: .35; transform: rotate(15deg); animation: trame 20s ease-in-out infinite alternate;
}
.pr-trame::after {
  content: ''; position: absolute; inset: 0; background: radial-gradient(circle, var(--magenta) 2.6px, transparent 3px) 4px 6px / 14px 14px;
  transform: rotate(-20deg); mix-blend-mode: multiply;
}
@keyframes trame { to { transform: rotate(25deg) scale(1.1); } }

/* repères de coupe / de registre */
.pr-repere { position: absolute; width: 46px; height: 46px; border: 2px solid #1d1a17; border-radius: 50%; opacity: .7; animation: spin 18s linear infinite; }
.pr-repere::before, .pr-repere::after { content: ''; position: absolute; background: #1d1a17; }
.pr-repere::before { left: 50%; top: -14px; bottom: -14px; width: 2px; margin-left: -1px; }
.pr-repere::after { top: 50%; left: -14px; right: -14px; height: 2px; margin-top: -1px; }
.pr-r1 { left: 18px; top: 18px; } .pr-r2 { right: 18px; top: 18px; } .pr-r3 { left: 18px; bottom: 18px; } .pr-r4 { right: 18px; bottom: 18px; }
.pr-cmjn { position: absolute; right: 26px; top: 50%; display: grid; gap: 4px; transform: translateY(-50%); }
.pr-cmjn i { width: 18px; height: 18px; border: 1.5px solid #1d1a17; animation: cmjn 2s ease-in-out infinite; }
.pr-cmjn i:nth-child(1) { background: var(--cyan); } .pr-cmjn i:nth-child(2) { background: var(--magenta); animation-delay: .2s; }
.pr-cmjn i:nth-child(3) { background: var(--jaune-p); animation-delay: .4s; } .pr-cmjn i:nth-child(4) { background: #1d1a17; animation-delay: .6s; }
@keyframes cmjn { 50% { transform: translateX(-6px); } }

/* le rouleau de la presse qui "imprime" la page */
.pr-rouleau {
  position: fixed; left: -5%; right: -5%; top: 0; height: 90px; z-index: 30;
  background: linear-gradient(180deg, #3a3a3a, #9a9a9a 30%, #e6e6e6 45%, #8a8a8a 60%, #2a2a2a);
  border-bottom: 6px solid var(--magenta); box-shadow: 0 10px 30px rgba(0,0,0,.35);
  transform: translateY(-120%);
}
.theme-affiches.is-open .pr-rouleau { animation: rouleau 1.3s cubic-bezier(.65, 0, .35, 1) forwards; }
@keyframes rouleau { 0% { transform: translateY(-120%); } 85% { transform: translateY(100vh); opacity: 1; } 100% { transform: translateY(110vh); opacity: 0; } }
.theme-affiches .bp-contenu { clip-path: inset(0 0 100% 0); }
.theme-affiches.is-open .bp-contenu { animation: imprime 1.15s cubic-bezier(.65, 0, .35, 1) forwards; }
@keyframes imprime { to { clip-path: inset(0 0 -10% 0); } }

/* titres décalés façon mauvais calage */
.theme-affiches .bp-kicker { font-family: 'Space Mono', monospace; color: var(--magenta); }
.theme-affiches .bp-titre { font-family: 'Jersey 10', 'Roumald', serif; font-weight: 400; text-transform: uppercase; text-shadow: -4px 0 var(--cyan), 4px 2px var(--magenta); animation: calage 1.8s var(--ease-out) both .6s; }
@keyframes calage { from { text-shadow: -40px 0 var(--cyan), 40px 10px var(--magenta); } }
/* "& autres réalisations" : un coup de tampon magenta sous le titre */
.theme-affiches .bp-sous-titre {
  display: inline-block; font-family: 'Roumald', serif; font-style: italic; font-weight: 700; color: var(--magenta);
  border: 3px double var(--magenta); padding: 6px 16px; rotate: -3deg; mix-blend-mode: multiply;
  animation: tampon .5s var(--ease-back) both 1.2s;
}
.theme-affiches .bp-titre:hover { animation: calageHover .6s ease-in-out infinite alternate; }
@keyframes calageHover { to { text-shadow: -8px 2px var(--cyan), 7px -2px var(--magenta), 0 6px var(--jaune-p); } }
.theme-affiches .bp-intro { font-style: italic; }
.theme-affiches .bp-retour { font-family: 'Space Mono', monospace; }
.theme-affiches .bp-retour:hover { background: var(--jaune-p); }

/* l'affiche en vedette, scotchée */
.theme-affiches .bp-vedette-media { aspect-ratio: 4 / 5; max-width: 520px; padding: 14px; background: #fff; box-shadow: 0 2px 0 #ddd, 12px 18px 30px rgba(0,0,0,.18); transform: rotate(-2deg); transition: transform .6s var(--ease-back); }
.theme-affiches .bp-vedette-media:hover { transform: rotate(0) scale(1.02); }
.theme-affiches .bp-vedette-media::before, .theme-affiches .bp-vedette-media::after {
  content: ''; position: absolute; width: 110px; height: 32px; background: rgba(255, 230, 0, .55); z-index: 2; mix-blend-mode: multiply;
  clip-path: polygon(3% 0, 97% 4%, 100% 50%, 96% 100%, 4% 96%, 0 50%);
}
.theme-affiches .bp-vedette-media::before { left: -30px; top: 14px; transform: rotate(-35deg); }
.theme-affiches .bp-vedette-media::after { right: -30px; top: 14px; transform: rotate(35deg); }
.theme-affiches .bp-vedette { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.theme-affiches .bp-badge { color: var(--magenta); border: 3px double var(--magenta); transform: rotate(-4deg); font-size: 14px; padding: 6px 14px; animation: tampon .5s var(--ease-back) both 1.5s; }
@keyframes tampon { from { transform: rotate(-4deg) scale(2.4); opacity: 0; } }
.theme-affiches .bp-vedette-titre { font-family: 'Jersey 10', serif; font-weight: 400; text-transform: uppercase; font-size: clamp(34px, 4vw, 60px); }
.theme-affiches .bp-meta span { font-family: 'Space Mono', monospace; border-radius: 0; }

.theme-affiches .bp-liste-titre { font-family: 'Jersey 10', serif; font-weight: 400; text-transform: uppercase; }
.theme-affiches .bp-liste-head { border-bottom: 3px solid #1d1a17; }
/* le mur d'affiches : chacune scotchée, légèrement de travers */
.theme-affiches .bp-grille { --gap: 34px 26px; padding-top: 34px; }
.theme-affiches .bp-carte {
  --carte-fond: #fff; aspect-ratio: 3 / 4; overflow: visible; padding: 10px; display: flex; flex-direction: column;
  color: #1d1a17; box-shadow: 0 2px 0 #ddd, 6px 10px 22px rgba(0, 0, 0, .14); rotate: -1.4deg;
  transition: opacity .8s, transform .9s var(--ease-out), rotate .4s var(--ease-back), translate .4s var(--ease-back), box-shadow .3s;
}
.theme-affiches .bp-carte:nth-child(even) { rotate: 1.1deg; }
.theme-affiches .bp-carte:nth-child(3n) { rotate: -.4deg; }
.theme-affiches .bp-carte:hover { rotate: 0deg; translate: 0 -6px; box-shadow: 0 2px 0 #ddd, 10px 18px 30px rgba(0, 0, 0, .2); }
.theme-affiches .bp-carte::before {
  content: ''; position: absolute; left: 50%; top: -14px; z-index: 2; width: 90px; height: 28px; margin-left: -45px;
  background: rgba(255, 230, 0, .6); mix-blend-mode: multiply; rotate: -3deg;
  clip-path: polygon(3% 0, 97% 4%, 100% 50%, 96% 100%, 4% 96%, 0 50%);
}
.theme-affiches .bp-carte:not(.is-texte) .bp-carte-media { position: relative; inset: auto; flex: 1; min-height: 0; overflow: hidden; }
.theme-affiches .bp-carte:not(.is-texte) .bp-carte-info { position: relative; background: none; color: inherit; padding: 10px 2px 2px; }
.theme-affiches .bp-carte-num { color: var(--cyan); font-weight: 700; opacity: 1; }
.theme-affiches .bp-carte-titre { font-family: 'Roumald', serif; }
/* sans image : affiche typo en aplat (cyan / magenta / jaune) */
.theme-affiches .bp-carte.is-texte { background: radial-gradient(circle, rgba(29, 26, 23, .12) 2px, transparent 2.5px) 0 0 / 10px 10px, var(--jaune-p); }
.theme-affiches .bp-carte.is-texte:nth-child(3n+2) { background-color: var(--cyan); color: #fff; }
.theme-affiches .bp-carte.is-texte:nth-child(3n) { background-color: var(--magenta); color: #fff; }
.theme-affiches .bp-carte.is-texte .bp-carte-num { color: inherit; }
.theme-affiches .bp-carte.is-texte .bp-carte-titre { font-family: 'Jersey 10', serif; font-weight: 400; text-transform: uppercase; font-size: clamp(26px, 2.6vw, 38px); text-shadow: -2px 0 rgba(0, 163, 217, .6), 2px 1px rgba(230, 0, 126, .6); }

.theme-affiches .bp-modal-boite { box-shadow: 14px 14px 0 var(--cyan), -14px -14px 0 var(--magenta); }
.theme-affiches .bp-modal-titre { font-family: 'Jersey 10', serif; font-weight: 400; text-transform: uppercase; }
.theme-affiches .bp-modal-media { background: #fff; padding: 14px; }

.theme-affiches .bp-nav-lien { font-family: 'Jersey 10', serif; text-transform: uppercase; border: 2px solid #1d1a17; background: #fff; box-shadow: 6px 6px 0 var(--cyan); }
.theme-affiches .bp-nav-lien:hover { box-shadow: -6px 6px 0 var(--magenta); }

/* carte "sans jouer" */
.ov-card.t-affiches { background: #f4f1ea; font-family: 'Roumald', serif; }
.ov-card.t-affiches .ov-bat { background: radial-gradient(circle, #00a3d9 2.4px, transparent 3px) 0 0 / 12px 12px, #ffe600; }
.ov-card.t-affiches .ov-nom { font-family: 'Jersey 10', serif; font-weight: 400; text-transform: uppercase; text-shadow: -3px 0 #00a3d9, 3px 1px #e6007e; }
