/* ═══════════════════════════════════════════════════════════════════
   Pages: Account, Status, Digital Human Provider
   ═══════════════════════════════════════════════════════════════════ */

/* Status Pages */
.fy-status-page {
  min-height: min(72vh, 760px);
  display: grid;
  place-items: center;
}

.fy-status-card { width: min(100%, 720px); }

.fy-status-card h1 {
  max-width: 14em;
  margin: 16px 0;
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3.6rem);
  line-height: 1.12;
}

/* Digital Human 3D Stage */
.fy-digital-human {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: 20px;
  align-items: center;
  padding: 18px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(226, 238, 234, 0.92), rgba(255, 250, 241, 0.96));
  border: 1px solid rgba(25, 38, 43, 0.1);
  box-shadow: 0 18px 45px rgba(36, 31, 23, 0.1);
}

.fy-digital-human[data-digital-human-size="hero"] { grid-template-columns: 1fr; }

.fy-dh-stage {
  position: relative;
  min-height: clamp(220px, 28vw, 340px);
  overflow: hidden;
  border-radius: var(--radius-xl);
  background:
    radial-gradient(circle at 50% 10%, rgba(255, 255, 255, 0.9), transparent 30%),
    linear-gradient(160deg, #dfeeea 0%, #f8ead8 100%);
  border: 1px solid rgba(25, 38, 43, 0.1);
}

.fy-digital-human[data-digital-human-size="compact"] .fy-dh-stage { min-height: 220px; }

.fy-dh-canvas,
.fy-dh-canvas canvas {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
}

.fy-dh-fallback {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  transition: opacity 0.25s ease;
}

.fy-digital-human.is-3d-ready .fy-dh-fallback { opacity: 0; pointer-events: none; }

.fy-dh-face {
  width: 132px;
  height: 158px;
  border-radius: 48% 48% 42% 42%;
  background: linear-gradient(180deg, #f5d0b0, #eaa879);
  border: 6px solid rgba(255, 255, 255, 0.88);
  position: relative;
  box-shadow: 0 22px 45px rgba(36, 31, 23, 0.16), inset 0 -16px 0 rgba(0, 0, 0, 0.06);
}

.fy-dh-face::before,
.fy-dh-face::after {
  content: "";
  position: absolute;
  top: 62px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #213137;
}

.fy-dh-face::before { left: 38px; }
.fy-dh-face::after  { right: 38px; }

.fy-dh-face span {
  position: absolute;
  left: 47px;
  bottom: 42px;
  width: 36px;
  height: 14px;
  border-bottom: 4px solid #213137;
  border-radius: 50%;
  transform-origin: center bottom;
}

.fy-digital-human.is-speaking .fy-dh-face span,
.fy-dh-fallback.is-speaking .fy-dh-face span {
  animation: mouthMove 0.34s ease-in-out infinite;
}

.fy-dh-glow {
  position: absolute;
  inset: auto 20% -40px;
  height: 90px;
  border-radius: 50%;
  background: rgba(40, 72, 66, 0.18);
  filter: blur(18px);
}

.fy-dh-pill {
  display: inline-flex;
  margin-bottom: 10px;
  padding: 6px 10px;
  border-radius: var(--radius-full);
  background: rgba(40, 72, 66, 0.12);
  color: var(--color-accent-600);
  font-size: 12px;
  font-weight: var(--weight-extrabold);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.fy-dh-copy h3 { margin-bottom: 8px; font-size: clamp(1.35rem, 2.4vw, 2rem); }

.fy-dh-status { margin: 10px 0 0; color: var(--color-ink-soft); font-size: 0.92rem; }

/* Responsive */
@media (max-width: 940px) {
  .fy-digital-human { grid-template-columns: 1fr; }
  .fy-dh-stage,
  .fy-digital-human[data-digital-human-size="compact"] .fy-dh-stage { min-height: 260px; }
}
