/* Restrained motion, with reduced-motion and no-JavaScript fallbacks. */
.principles article, .method-aside, .video-card, .demo-preview-card {
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
@media (hover: hover) and (pointer: fine) {
  .principles article:hover, .method-aside:hover, .video-card:hover {
    transform: translateY(-4px);
    border-color: #94bebb;
    box-shadow: 0 14px 30px #244e5710;
  }
  .paper-figure > a img { transition: transform 350ms ease; }
  .paper-figure > a { overflow: hidden; border-radius: 4px; }
  .paper-figure > a:hover img { transform: scale(1.012); }
}
.case-button { transition: background 180ms ease, border-color 180ms ease, box-shadow 180ms ease; }
.navlinks a { transition: color 180ms ease; }
.navlinks a[aria-current="location"] { color: #215b50; text-decoration: underline; text-underline-offset: 8px; }
.reveal-ready { opacity: 0; transform: translateY(20px); transition: opacity 600ms ease, transform 600ms cubic-bezier(.2,.65,.3,1); }
.reveal-ready.is-visible { opacity: 1; transform: none; }
.hero h1, .hero .subtitle, .hero .actions { animation: arrival 650ms both; }
.hero .subtitle { animation-delay: 80ms; }
.hero .actions { animation-delay: 160ms; }
.bar { transform-origin: left; animation: bar-grow 650ms cubic-bezier(.2,.65,.3,1) both; }
@keyframes arrival { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes bar-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.demo-preview-band { background: linear-gradient(180deg, #e4f4ef, #e9f3f8 50%, #e4f4ef); }
.demo-preview-card { background: #ffffffc9; border: 1px solid #c4d9d8; border-radius: 14px; overflow: hidden; margin: 28px 0 0; }
.demo-preview-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 22px 28px; }
.demo-preview-heading h3 { margin: 0; font-size: 21px; }
.placeholder-badge { font-size: 12px; color: #536f79; background: #e7f0f5; border: 1px solid #bcd1da; padding: 4px 11px; border-radius: 20px; }
.demo-preview-card video { width: 100%; max-height: 580px; aspect-ratio: 16/9; display: block; object-fit: contain; background: linear-gradient(120deg, #e0eee9, #e4eef8); }
.demo-preview-card figcaption { font-size: 14px; color: #536b73; padding: 20px 28px; line-height: 1.7; }
.duplicate-notice { font-size: 14px; padding: 13px 17px; background: #edf2f6; border-left: 3px solid #8aadb9; border-radius: 4px; color: #46616d!important; }
@media (max-width: 1100px) and (min-width: 951px) {
  .navlinks { gap: 13px; font-size: 13px; }
}
@media(max-width:760px) {
  .demo-preview-heading { padding: 20px; flex-wrap: wrap; }
  .demo-preview-card video { aspect-ratio: 4/3; }
  .demo-preview-card figcaption { padding: 20px; }
}
@media(prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none!important; transition: none!important; }
  .reveal-ready { opacity: 1; transform: none; }
}
