/* TDNSC V33 - light-touch, learner-friendly animations.
   Motion is decorative only: navigation, text and functionality never depend on animation.
   Colour coding remains entirely controlled by v32-page-themes.css.
   No moving official logo, auto-playing loops or scroll-jacking. */
@keyframes td33-appear {
  from {opacity: .65; transform: translate3d(0, 8px, 0)}
  to {opacity: 1; transform: translate3d(0, 0, 0)}
}
@keyframes td33-tooth-hello {
  0% {transform: rotate(-5deg) scale(.95)}
  60% {transform: rotate(2deg) scale(1.02)}
  100% {transform: rotate(0) scale(1)}
}
@keyframes td33-sparkle {
  0% {opacity: .55; transform: scale(.88)}
  60% {opacity: 1; transform: scale(1.12)}
  100% {opacity: 1; transform: scale(1)}
}
@keyframes td33-celebrate {
  0%, 100% {transform: scale(1)}
  52% {transform: scale(1.015)}
}
/* One gentle, short welcome on page load. Nothing re-triggers while scrolling. */
#home .v21-hero-copy {animation: td33-appear .48s ease-out both}
#home .v21-photo-slot > img {animation: td33-tooth-hello .7s cubic-bezier(.2,.7,.3,1) .18s both; transform-origin: 50% 65%}
#home .v21-sticker-sparkle {animation: td33-sparkle .65s ease-out .38s both}
html[data-tdnsc-theme]:not([data-tdnsc-theme="home"]) :is(.hero,.mcq-hero,.exam-hero,.v21-page-heading,.tdnsc-paid-hero) {animation: td33-appear .4s ease-out both}
/* Tiny tactile responses when the learner chooses a destination. */
#home .revision-menu-list > .revision-menu-button,
#home .v28-hero-actions a.v28-cta,
a.mcq-option, a.exam-hero-cta,
a.exam-outline-action, a.action,
a.btn, button.exam-action {
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
#home .revision-menu-list > .revision-menu-button {position:relative}
#home .revision-menu-list > .revision-menu-button .revision-menu-arrow,
#home .revision-menu-list > .revision-menu-button .revision-menu-icon,
#home .v28-hero-actions a.v28-cta .v28-cta-arrow {
  transition:transform .23s cubic-bezier(.2,.75,.3,1);
}
/* A quiet highlight sweeps over the two main CTAs only on deliberate hover. */
#home .v28-hero-actions a.v28-cta {position:relative;overflow:hidden;isolation:isolate}
#home .v28-hero-actions a.v28-cta::after {
  content:"";position:absolute;inset:0 auto 0 -55%;width:30%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.21),transparent);
  transform:skewX(-19deg);opacity:0;pointer-events:none;
}
@media (hover:hover) and (pointer:fine) {
  #home .revision-menu-list > .revision-menu-button:hover {transform:translateY(-3px)!important;box-shadow:0 10px 20px rgba(7,27,77,.13)!important}
  #home .revision-menu-list > .revision-menu-button:hover .revision-menu-arrow,
  #home .v28-hero-actions a.v28-cta:hover .v28-cta-arrow {transform:translateX(4px)}
  #home .revision-menu-list > .revision-menu-button:hover .revision-menu-icon {transform:rotate(-5deg) scale(1.055)}
  #home .v28-hero-actions a.v28-cta:hover::after {opacity:1;left:120%;transition:left .55s ease-out,opacity .15s ease}
  html[data-tdnsc-theme]:not([data-tdnsc-theme="home"]) :is(a.mcq-option,a.exam-hero-cta,a.exam-outline-action,a.action,a.btn):hover {transform:translateY(-2px)}
}
/* On touch screens, a quick tap gives feedback without any hover movement. */
@media (hover:none) {
  #home .revision-menu-list > .revision-menu-button:active,
  #home .v28-hero-actions a.v28-cta:active {transform:scale(.992)!important}
}
/* Let successful answers feel satisfying, but no confetti, sound or flashing. */
.options button.correct, .quiz-options button.correct {animation:td33-celebrate .38s ease-out 1}
/* Keyboard users get a clear focus outline: no movement required. */
#home :is(.revision-menu-button,.v28-cta):focus-visible {outline:3px solid #071B4D!important;outline-offset:4px!important}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after {animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  #home .revision-menu-list > .revision-menu-button,
  #home .v28-hero-actions a.v28-cta,
  #home .v21-photo-slot > img,
  #home .v21-sticker-sparkle {transform:none!important}
  #home .v28-hero-actions a.v28-cta::after {display:none!important}
}
