/* Boyan v0.16: progressive motion only; existing geometry and typography stay authoritative. */
@property --boyan-ring-angle { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@keyframes fade-in-up {
  from { opacity: 0; translate: 0 40px; }
  to { opacity: 1; translate: 0 0; }
}
@keyframes boyan-gold-orbit { to { --boyan-ring-angle: 360deg; } }
.boyan-motion-ready .reveal.motion-pending { opacity: 0; translate: 0 40px; }
.boyan-motion-ready .reveal.motion-entering {
  animation: fade-in-up .6s cubic-bezier(.22,1,.36,1) both;
  animation-delay: var(--reveal-delay, .1s);
}
.reference-body .motion-tilt.is-tilting {
  transform: perspective(1000px) translateY(var(--tilt-lift, 0px)) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));
  transition: box-shadow .25s ease, border-color .25s ease;
  will-change: transform;
}
.reference-body .motion-tilt.is-tilting > * {
  transform: rotateY(var(--tilt-counter-y, 0deg)) rotateX(var(--tilt-counter-x, 0deg)) var(--tilt-child-base, translateZ(0));
  transform-origin: center;
}
.reference-body .scene-hero > .layer-bg {
  position: absolute; inset: 0; background: inherit; pointer-events: none; z-index: 0;
}
.reference-body .scene-hero-grid { z-index: 1; }
.reference-body .scene-hero.is-parallax .layer-bg,
.reference-body .scene-hero.is-parallax .layer-text,
.reference-body .scene-hero.is-parallax .layer-form { transform: translate3d(var(--parallax-x, 0px), var(--parallax-y, 0px), 0); }
/* A transparent, masked ring; the center never paints over fields or copy. */
@supports ((mask-composite: exclude) or (-webkit-mask-composite: xor)) {
  .reference-body .scene-form-card.motion-glow::before {
    content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 2px;
    background: conic-gradient(from var(--boyan-ring-angle), transparent 0deg, #c89336 35deg, #ffe6a4 70deg, transparent 110deg, transparent 180deg, #c89336 215deg, #ffdda0 250deg, transparent 290deg);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude;
    animation: boyan-gold-orbit 5s linear infinite; animation-play-state: paused;
    pointer-events: none;
  }
  .reference-body .scene-form-card.motion-glow.is-in-view::before { animation-play-state: running; }
}
.reference-body .knowledge-preview .motion-faq > .motion-answer {
  display: grid; grid-template-rows: 0fr; padding: 0; border: 0;
  transition: grid-template-rows .3s ease;
}
.reference-body .knowledge-preview .motion-faq[data-motion-open='true'] > .motion-answer { grid-template-rows: 1fr; }
.motion-answer-inner { min-height: 0; overflow: hidden; }
.reference-body .knowledge-preview .motion-answer-body { padding: 0 24px 24px; }
.reference-body .scene-knowledge .knowledge-preview .motion-answer-body { padding: 0 14px 14px; }
.reference-body .scene-faq .knowledge-preview .motion-answer-body { padding: 0 24px 20px 60px; }
.reference-body .knowledge-preview .motion-faq > summary .accordion-mark { transition: transform .3s ease; }
.reference-body .knowledge-preview .motion-faq > summary .accordion-mark::after { transform: rotate(90deg); }
.reference-body .knowledge-preview .motion-faq[data-motion-open='true'] > summary .accordion-mark { transform: rotate(135deg); }
@media (max-width: 767px) {
  .reference-body .knowledge-preview .motion-answer-body { padding: 0 16px 16px; }
  .reference-body .scene-knowledge .knowledge-preview .motion-answer-body { padding: 0 14px 14px; }
  .reference-body .scene-faq .knowledge-preview .motion-answer-body { padding: 0 6px 20px 38px; }
}
@media (prefers-reduced-motion: reduce) {
  .boyan-motion-ready .reveal { opacity: 1 !important; translate: none !important; animation: none !important; }
  .reference-body .motion-tilt.is-tilting,
  .reference-body .motion-tilt.is-tilting > *,
  .reference-body .scene-hero.is-parallax :is(.layer-bg,.layer-text,.layer-form) { transform: none !important; }
  .reference-body .scene-form-card.motion-glow::before { animation: none !important; }
  .reference-body .knowledge-preview .motion-answer,
  .reference-body .knowledge-preview .accordion-mark { transition: none !important; }
}
@media print {
  .boyan-motion-ready .reveal { opacity: 1 !important; translate: none !important; animation: none !important; }
  .reference-body .motion-tilt.is-tilting,
  .reference-body .motion-tilt.is-tilting > *,
  .reference-body .scene-hero.is-parallax :is(.layer-bg,.layer-text,.layer-form) { transform: none !important; }
  .reference-body .scene-form-card.motion-glow::before { display: none; }
}
