/* ============================================================
   CONCEPT C — "FUSION TRACE"
   Twist: the machine alphabet draws the human subject — ASCII characters
   arranged ALONG the camellia's vector trace, contained + centred on paper.
   On scroll the painted bloom fills from the centre out, petal by petal,
   chars resolving into continuous paint — ink → paint. Refined register.
   ============================================================ */
.scene-c {
  background: var(--c-bg);
  --bloom: 0;                /* 0 = all chars · 1 = full painted bloom (JS) */
  color: var(--c-fg);
}

/* warm halo that grows behind the subject as it blooms */
.scene-c .halo {
  position: absolute; inset: 0; z-index: 1;
  background: radial-gradient(38% 40% at 50% 42%, rgba(238,56,43,0.12), transparent 72%);
  opacity: 0;
}

.scene-c .subject {
  position: absolute; left: 50%; top: 42%;
  transform: translate(-50%, -50%);
  width: min(58vh, 84vw, 520px); aspect-ratio: 1;
  z-index: 3;
}

/* painted bloom (PLACEHOLDER — same camellia geometry, warm gradient + blur;
   swap the SVG fill for a real render later). Revealed centre-out. */
.scene-c .paint { position: absolute; inset: 0; z-index: 2;
  -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 calc(var(--bloom) * 72%), transparent calc(var(--bloom) * 72% + 9%));
          mask-image: radial-gradient(circle at 50% 50%, #000 calc(var(--bloom) * 72%), transparent calc(var(--bloom) * 72% + 9%));
}
.scene-c .paint svg { width: 100%; height: 100%; display: block; }

/* the char-trace layer — hidden inversely, centre-out */
.scene-c .chars { position: absolute; inset: 0; z-index: 3;
  -webkit-mask-image: radial-gradient(circle at 50% 50%, transparent calc(var(--bloom) * 72% - 5%), #000 calc(var(--bloom) * 72% + 6%));
          mask-image: radial-gradient(circle at 50% 50%, transparent calc(var(--bloom) * 72% - 5%), #000 calc(var(--bloom) * 72% + 6%));
}
.scene-c .ch {
  position: absolute; transform: translate(-50%, -50%);
  font: 500 clamp(9px, 1.05vw, 15px)/1 var(--type-mono);
  color: rgba(20,18,14,0.82);
  opacity: 0;
  user-select: none;
}

/* poster chrome on paper */
.scene-c .rail,
.scene-c .credits { color: var(--c-fg); }
.scene-c .tag     { color: var(--c-fg); }
.scene-c .hwm-back    { fill: rgba(20,18,14,0.10); }
.scene-c .hwm-front   { fill: var(--c-fg); }
.scene-c .hwm-initial { fill: var(--c-accent); }

/* thesis lines — below the subject, ink with red serif punch */
.scene-c .stage-lines { top: 78%; }
.scene-c .stage-line  { color: var(--c-fg); }
.scene-c .stage-3 {
  display: flex; flex-direction: column;
  align-items: center; gap: 0.04em;
}
.scene-c .stage-3 .em { color: var(--c-accent); font-size: 1.22em; }

.scene-c .render-tag { color: rgba(20,18,14,0.5); }
