/* Variante A2 — Les portes du ciel, nuages fondus : même ouverture que A (portes, chérubin), mais plus aucun cadre.
   Le ciel vire au crépuscule (bleu nuit sous les nuages roses), le texte est ivoire et or, posé directement sur les nuages ;
   un halo sombre sans bord garde le texte lisible (contraste ≥ 4,5:1) sans qu'on voie de boîte. */
.v-a2 {
  --ink: #fff4e2;
  --names: #fff9ee;
  --accent: #f1d48e;
  --accent-strong: #f7e2aa;
  --on-accent: #3a1830;
  --focus: #ffe9a8;
  --sky-fallback: #3a4478;
}

/* ciel de crépuscule : un voile bleu nuit → prune entre le ciel et les nuages roses (qui gardent leurs couleurs) */
.v-a2 .sky__tint { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(30, 40, 100, .68) 0%, rgba(58, 36, 108, .6) 45%, rgba(88, 30, 84, .55) 100%); }

/* plus de plaques, plus de coins */
.v-a.v-a2 .panel__in,
.v-a.v-a2 .hero__text,
.v-a.v-a2 .finale__text { background: none; box-shadow: none; border-radius: 0; }
.v-a.v-a2 .panel__in::after, .v-a.v-a2 .hero__text::after, .v-a.v-a2 .finale__text::after { content: none; }
/* halo sombre sans bord derrière le texte */
.v-a.v-a2 .panel__in::before, .v-a.v-a2 .hero__text::before, .v-a.v-a2 .finale__text::before {
  content: '';
  position: absolute;
  top: -70px;
  bottom: -70px;
  left: -46px;
  right: -46px;
  height: auto;
  z-index: -1;
  background: radial-gradient(ellipse closest-side at 50% 50%, rgba(28, 18, 66, .5), rgba(28, 18, 66, .3) 55%, rgba(28, 18, 66, 0) 100%);
  transform: none;
  pointer-events: none;
}

.v-a2 .card { text-shadow: 0 1px 2px rgba(30, 10, 50, .6), 0 0 18px rgba(30, 10, 60, .45); }
.v-a2 .btn { text-shadow: none; }

/* sections : fondu piloté par le défilement (js/a2.js), sans marge entre elles */
.v-a2 .panel { margin: 0; opacity: 0; transform: none; transition: none; will-change: opacity, transform; }
.v-a2 .panel__in { padding: 92px 28px 92px; }

/* le chérubin se fond dans les nuages sous ses pieds, le texte commence dans les nuages */
.v-a2 .stage { height: min(66svh, calc(var(--card-w) * 1.5)); -webkit-mask-image: linear-gradient(#000 46%, transparent 97%); mask-image: linear-gradient(#000 46%, transparent 97%); }
.v-a2 .hero__text { margin: -17svh 12px 0; padding: 20px 14px 70px; }
.v-a2 .finale { -webkit-mask-image: linear-gradient(transparent, #000 16%, #000 52%, transparent 90%); mask-image: linear-gradient(transparent, #000 16%, #000 52%, transparent 90%); }
.v-a2 .finale__text { margin: -4svh 12px 0; padding: 30px 20px 50px; }
.v-a2 .closing { margin-top: 0; }

/* composants sur fond sombre */
.v-a2 .cd__cell { background: rgba(255, 255, 255, .08); border-color: rgba(241, 212, 142, .75); }
.v-a2 .icon { background: rgba(255, 255, 255, .08); }
.v-a2 .field input[type=text], .v-a2 .field select, .v-a2 .field textarea { background: rgba(255, 255, 255, .13); color: var(--ink); }
.v-a2 .field select { color-scheme: dark; }
.v-a2 .field select option { color: #2a1a40; background: #fff; }
.v-a2 .err { color: #ffc2d1; }
.v-a2 .swatches i { box-shadow: 0 0 0 2px rgba(40, 24, 80, .7), 0 0 0 3px var(--accent), 0 6px 12px rgba(0, 0, 0, .35); }
.v-a2 .note { opacity: .92; }

/* les fleurs et bijoux derrière le texte restent visibles mais ne gênent pas la lecture */
.v-a2 .floaters--back .fl { opacity: .62; }
