/* Gina mascot: kit GinaMascot.css (2026-10-14), unchanged */
.gina-mascot { display:inline-block; max-width:100%; aspect-ratio:1; vertical-align:middle; }
.gina-mascot > img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; transform-origin:50% 78%; }
@media (prefers-reduced-motion: no-preference) {
  .gina-mascot--idle > img { animation:gina-breathe 4s ease-in-out infinite; }
  .gina-mascot--happy > img { animation:gina-happy 650ms ease both; }
  .gina-mascot--thinking > img { animation:gina-think 2.8s ease-in-out infinite; }
  .gina-mascot--error > img { animation:gina-error 450ms ease both; }
  .gina-mascot--celebrating > img { animation:gina-celebrate 950ms ease both; }
}
@keyframes gina-breathe { 0%,100% {transform:translateY(0) scale(1);} 50% {transform:translateY(-4px) scale(1.012);} }
@keyframes gina-happy { 0%,100% {transform:translateY(0) scale(1);} 25% {transform:translateY(2px) scale(1.035,.97);} 55% {transform:translateY(-10px) scale(.98,1.025);} }
@keyframes gina-think { 0%,100% {transform:rotate(0);} 30% {transform:rotate(-2deg) translateY(-2px);} 65% {transform:rotate(2deg);} }
@keyframes gina-error { 0%,100% {transform:translateX(0);} 25%,65% {transform:translateX(-4px);} 45%,80% {transform:translateX(4px);} }
@keyframes gina-celebrate { 0%,100% {transform:translateY(0) scale(1);} 18% {transform:translateY(4px) scale(1.045,.95);} 48% {transform:translateY(-16px) rotate(-3deg) scale(.97,1.03);} 72% {transform:translateY(0) rotate(2deg) scale(1.03,.98);} }

/* Placement (site). Poses are scaled only; never over text, faces or buttons. */
.gm-pose { width: var(--gw, 160px); flex: none; }
.gm-pose img { aspect-ratio: 1; }
.with-gina { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(16px, 3vw, 40px); align-items: center; }
.with-gina > .gm-pose { justify-self: end; }
@media (max-width: 767px) {
  .gm-pose { width: calc(var(--gw, 160px) * .62); }
  .with-gina { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .with-gina > .gm-pose { order: -1; justify-self: end; margin-bottom: -8px; }
}
.c-answer-row { display: grid; grid-template-columns: minmax(0, 860px) auto; gap: clamp(16px, 4vw, 56px); align-items: center; }
@media (max-width: 767px) { .c-answer-row { grid-template-columns: minmax(0, 1fr); } .c-answer-row > .gm-pose { order: -1; justify-self: end; margin-bottom: -12px; } }
.c-cta .with-gina { align-items: center; }
.err .gm-pose, .form-error-gina { display: inline-block; vertical-align: middle; margin-right: 8px; }
.c404-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: clamp(24px,4vw,64px); align-items: center; }
@media (max-width: 767px) { .c404-row { grid-template-columns: minmax(0,1fr); } .c404-row > .gm-pose { order: -1; } }
.logo .logo-img { display: block; height: 52px; width: auto; }
@media (max-width: 767px) { .logo .logo-img { height: 44px; } }

/* Motion (2026-10-14): entrance on scroll, kit idle breathe only while on screen, kit hop/celebrate/error on real events. Nothing moves under reduced motion. */
@media (prefers-reduced-motion: no-preference) {
  .gm-pose.gm-reveal, .gm-anim.gm-reveal { opacity: 0; transform: translateY(22px) scale(.92); transition: opacity 700ms ease, transform 900ms cubic-bezier(.2,.9,.25,1.2); }
  .gm-pose.gm-reveal.is-in, .gm-anim.gm-reveal.is-in { opacity: 1; transform: none; }
  .gm-pose.is-in.is-live > img, .gm-anim.is-in.is-live > img { animation: gina-breathe 4.2s ease-in-out infinite; transform-origin: 50% 78%; }
  .gm-pose.is-in.gm-hop > img, .gm-anim.is-in.gm-hop > img { animation: gina-happy 650ms ease both; }
  .gm-pose.is-in.gm-cheer > img, .gm-anim.is-in.gm-cheer > img { animation: gina-celebrate 950ms ease both; }
  .gm-pose.gm-shake > img { animation: gina-error 450ms ease both; }
}
