/* Public website motion only; financial workspace layout remains unchanged. */
.public-mode { --motion-ease: cubic-bezier(.22, 1, .36, 1); }
.public-mode :is(.ref-gold-button, .ref-outline-button, .ref-green-button,
  .ref-dark-button, .ref-white-button, .ref-outline-green, .ref-donate) {
  transition: transform 220ms var(--motion-ease), box-shadow 220ms ease,
    background-color 220ms ease, border-color 220ms ease;
}
.public-mode :is(.ref-values article, .ref-mission-cards > div,
  .ref-tech-grid article, .ref-event-body, .ref-theory article > div,
  .ref-hero-stats > div) {
  transition: transform 300ms var(--motion-ease), box-shadow 300ms ease,
    border-color 250ms ease, background-color 250ms ease;
}
.public-mode :is(.ref-values svg, .ref-mission-cards svg, .ref-tech-grid svg,
  .ref-program-icon svg, .ref-mobile-features svg) {
  transition: transform 300ms var(--motion-ease);
}
.ref-header nav a, .ref-footer a {
  position: relative;
  transition: color 180ms ease;
}
.ref-header nav a::after, .ref-footer a::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 100%;
  height: 2px;
  background: #f59e0b;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 220ms var(--motion-ease);
}
.ref-header nav a:focus-visible::after, .ref-footer a:focus-visible::after {
  transform: scaleX(1);
}
.ref-programs [role=tab], .ref-involvement-tabs button {
  transition: background-color 200ms ease, color 200ms ease,
    border-color 200ms ease, box-shadow 200ms ease;
}
.ref-involvement-tabs button:focus-visible {
  box-shadow: 0 0 0 3px #10b98128;
}
.ref-involvement-card :is(input, select) {
  transition: border-color 200ms ease, box-shadow 200ms ease;
}
.ref-involvement-card :is(input, select):focus-visible {
  border-color: #10b981;
  box-shadow: 0 0 0 3px #10b98118;
}
.ref-phone { transition: transform 450ms var(--motion-ease), box-shadow 450ms ease; }
.ref-scroll { animation: ref-scroll-cue 1.8s ease-in-out 3; }
.ref-dialog[open] { animation: ref-dialog-enter 240ms var(--motion-ease); }
.ref-dialog[open]::backdrop { animation: ref-backdrop-enter 240ms ease; }
@keyframes ref-scroll-cue { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(6px); } }
@keyframes ref-dialog-enter { from { opacity: 0; translate: 0 8px; } to { opacity: 1; translate: 0 0; } }
@keyframes ref-backdrop-enter { from { opacity: 0; } to { opacity: 1; } }
/* Hover movement is restricted to precise pointers to avoid sticky touch states. */
@media (hover: hover) and (pointer: fine) {
  .public-mode :is(.ref-gold-button, .ref-outline-button, .ref-green-button,
    .ref-dark-button, .ref-white-button, .ref-outline-green, .ref-donate):not(:disabled):hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 18px #001e1728;
  }
  .public-mode :is(.ref-values article, .ref-mission-cards > div,
    .ref-tech-grid article, .ref-event-body, .ref-theory article > div):hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 24px #001e1720;
    border-color: #10b981;
  }
  .ref-hero-stats > div:hover { transform: translateY(-3px); border-color: #e0bc38; }
  .public-mode :is(.ref-values article, .ref-mission-cards > div,
    .ref-tech-grid article, .ref-program-panel, .ref-mobile-features > div):hover svg {
    transform: scale(1.08) rotate(-4deg);
  }
  .ref-header nav a:hover::after, .ref-footer a:hover::after { transform: scaleX(1); }
  .ref-involvement-tabs button:hover { box-shadow: 0 3px 9px #064e3b18; }
  .ref-phone:hover { transform: rotate(0) translateY(-6px); box-shadow: 0 26px 55px #00211780; }
}
.public-mode :is(.ref-gold-button, .ref-outline-button, .ref-green-button,
  .ref-dark-button, .ref-white-button, .ref-outline-green, .ref-donate):not(:disabled):active {
  transform: translateY(0) scale(.98);
}
@media (prefers-reduced-motion: reduce) {
  .public-mode, .public-mode * { scroll-behavior: auto !important; }
  .public-mode *, .public-mode *::before, .public-mode *::after {
    animation: none !important;
    transition: none !important;
  }
  .public-mode :is(button, article, .ref-event-body, .ref-theory article > div,
    .ref-hero-stats > div, .ref-mission-cards > div, svg):hover,
  .public-mode button:active { transform: none !important; }
  .public-mode .ref-phone, .public-mode .ref-phone:hover { transform: none; }
}
@media print {
  .public-mode *, .public-mode *::before, .public-mode *::after {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    translate: none !important;
  }
}
