/* Content remains visible without JavaScript, an observer, or animation support. */
@keyframes vvgoi-rise {
  from { opacity: 0; translate: 0 32px; }
  to { opacity: 1; translate: 0 0; }
}
@keyframes vvgoi-from-left {
  from { opacity: 0; translate: calc(-1 * var(--entrance-travel, 32px)) 0; }
  to { opacity: 1; translate: 0 0; }
}
@keyframes vvgoi-from-right {
  from { opacity: 0; translate: var(--entrance-travel, 32px) 0; }
  to { opacity: 1; translate: 0 0; }
}
@keyframes vvgoi-dialog-enter {
  from { opacity: 0; translate: 0 14px; }
  to { opacity: 1; translate: 0 0; }
}
@keyframes vvgoi-backdrop-enter { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: no-preference) {
  .entrance-up, .entrance-left, .entrance-right {
    animation-duration: 700ms;
    animation-timing-function: cubic-bezier(.22,1,.36,1);
    animation-delay: var(--entrance-delay, 0ms);
    animation-fill-mode: backwards;
    animation-iteration-count: 1;
  }
  .entrance-up { animation-name: vvgoi-rise; }
  .entrance-left { animation-name: vvgoi-from-left; }
  .entrance-right { animation-name: vvgoi-from-right; }
  .entrance-up:focus-within, .entrance-left:focus-within, .entrance-right:focus-within {
    animation: none;
  }
  dialog[open] { animation: vvgoi-dialog-enter 350ms cubic-bezier(.22,1,.36,1) both; }
  dialog[open]::backdrop { animation: vvgoi-backdrop-enter 300ms ease both; }
  .header nav > a { position: relative; }
  .header nav > a::after {
    content: ''; position: absolute; height: 2px; left: 0; right: 0; bottom: -7px;
    background: var(--gold); transform: scaleX(0); transform-origin: left;
    transition: transform 250ms cubic-bezier(.4,0,.2,1);
  }
  .header nav > a:hover::after, .header nav > a:focus-visible::after { transform: scaleX(1); }
  .program-card, .course-card, .gallery-item {
    transition: transform 300ms ease, box-shadow 300ms ease, border-color 300ms ease;
  }
  .card-art img, .gallery-item > img { transition: transform 700ms cubic-bezier(.4,0,.2,1); }
  .button > span, .card-link > span, .course-details > span, .underlink > span {
    transition: transform 300ms ease;
  }
  .button:hover > span, .button:focus-visible > span,
  .card-link:hover > span, .course-details:hover > span, .underlink:hover > span {
    transform: translateX(4px);
  }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .program-card:hover { transform: translateY(-8px); }
  .course-card:hover, .gallery-item:hover { transform: translateY(-4px); box-shadow: 0 14px 30px #183b6314; }
  .program-card:hover .card-art img, .gallery-item:hover > img { transform: scale(1.05); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .entrance-up, .entrance-left, .entrance-right { opacity: 1; translate: none; }
  .program-card:hover, .course-card:hover, .gallery-item:hover,
  .program-card:hover .card-art img, .gallery-item:hover > img,
  .button:hover, .hero-chairman-link:hover { transform: none; }
}

@media (max-width: 700px) { .entrance-left, .entrance-right { --entrance-travel: 16px; } }
