/* ============================================================================
 * Z_LOGO_BLOOD_TRI_EMBED_OVERRIDES_2026-05-11
 *
 * Embedded marks must NOT bleed full-page chrome. Constrain to host element
 * and hide HUD/title/deploy text. Only the z-composed glyph renders.
 * ========================================================================= */

z-blood-tri-mark[data-z-top-mark="1"],
z-blood-tri-mark[data-z-btn-mark="1"],
z-blood-tri-mark[data-z-popup-mark="1"],
z-blood-tri-mark[data-z-blood-tri-mark="1"] {
  display: inline-flex !important;
  position: relative !important;
  overflow: visible !important;
  /* ORBIT_DOTS_PAINT_2026-05-13: drop `paint` from contain — `contain:paint`
   * forces the host to clip descendants to its own box, which cuts off the
   * accent-ring orbit dots that intentionally orbit outside the logo bounds.
   * Keep layout/style containment so isolation still holds, but let the dots
   * render above. Do not put `contain: paint` back here. */
  contain: layout style !important;
  vertical-align: middle;
  isolation: isolate;
  background: transparent !important;
}

z-blood-tri-mark[data-z-top-mark="1"] .z-root,
z-blood-tri-mark[data-z-btn-mark="1"] .z-root,
z-blood-tri-mark[data-z-popup-mark="1"] .z-root,
z-blood-tri-mark[data-z-blood-tri-mark="1"] .z-root {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  display: block !important;
  background: transparent !important;
}

/* NO_SQUARE_LOGO_RULE_2026-05-13:
 * Never put an opaque or dark rectangular background on embedded Z stages.
 * The logo is circles, triangle strokes, orbit dots, flower blades, and glow
 * only. A stage-level `#050208`/black fill becomes a visible square in large
 * Live-Z mode. Background belongs inside circular logo layers such as
 * `.z-disk` or Live-Z's circular button halo, never on `.z-stage`,
 * `.z-card-preview`, `.z-root`, or the `z-blood-tri-mark` host. */
z-blood-tri-mark[data-z-top-mark="1"] .z-stage,
z-blood-tri-mark[data-z-btn-mark="1"] .z-stage,
z-blood-tri-mark[data-z-popup-mark="1"] .z-stage,
z-blood-tri-mark[data-z-blood-tri-mark="1"] .z-stage,
z-blood-tri-mark[data-z-top-mark="1"] .z-card-preview,
z-blood-tri-mark[data-z-btn-mark="1"] .z-card-preview,
z-blood-tri-mark[data-z-popup-mark="1"] .z-card-preview,
z-blood-tri-mark[data-z-blood-tri-mark="1"] .z-card-preview {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-width: none !important;
  position: relative !important;
  border-radius: inherit !important;
  background: transparent !important;
}

z-blood-tri-mark[data-z-top-mark="1"] .z-hud,
z-blood-tri-mark[data-z-top-mark="1"] .z-phase-pill,
z-blood-tri-mark[data-z-top-mark="1"] .z-title,
z-blood-tri-mark[data-z-top-mark="1"] .z-deploy,
z-blood-tri-mark[data-z-btn-mark="1"] .z-hud,
z-blood-tri-mark[data-z-btn-mark="1"] .z-phase-pill,
z-blood-tri-mark[data-z-btn-mark="1"] .z-title,
z-blood-tri-mark[data-z-btn-mark="1"] .z-deploy,
z-blood-tri-mark[data-z-popup-mark="1"] .z-hud,
z-blood-tri-mark[data-z-popup-mark="1"] .z-phase-pill,
z-blood-tri-mark[data-z-popup-mark="1"] .z-title,
z-blood-tri-mark[data-z-popup-mark="1"] .z-deploy,
z-blood-tri-mark[data-z-blood-tri-mark="1"] .z-hud,
z-blood-tri-mark[data-z-blood-tri-mark="1"] .z-phase-pill,
z-blood-tri-mark[data-z-blood-tri-mark="1"] .z-title,
z-blood-tri-mark[data-z-blood-tri-mark="1"] .z-deploy {
  display: none !important;
}

z-blood-tri-mark[data-z-top-mark="1"] .z-composed,
z-blood-tri-mark[data-z-btn-mark="1"] .z-composed,
z-blood-tri-mark[data-z-popup-mark="1"] .z-composed,
z-blood-tri-mark[data-z-blood-tri-mark="1"] .z-composed {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 88% !important;
  height: 88% !important;
  transform: translate(-50%, -50%) !important;
  aspect-ratio: 1 / 1 !important;
}

@keyframes zPopupGrowIn {
  0%   { transform: scale(0.55); opacity: 0; }
  60%  { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(1.0); opacity: 1; }
}
z-blood-tri-mark[data-z-popup-mark="1"] {
  animation: zPopupGrowIn 600ms cubic-bezier(0.18, 0.89, 0.32, 1.28) both;
}
