/* Motion is opt-in through JavaScript; the document is readable without it. */
.jm-motion-enabled .jm-reveal {
  transition: opacity .75s ease, transform .85s cubic-bezier(.2,.7,.2,1), border-color .25s ease, box-shadow .25s ease;
  transition-delay: var(--jm-reveal-delay, 0ms), var(--jm-reveal-delay, 0ms), 0ms, 0ms;
}
.jm-motion-enabled .jm-reveal:not(.is-visible) { opacity: 0; transform: translate3d(0, 30px, 0); }
.jm-motion-enabled .jm-reveal[data-jm-reveal="portrait"]:not(.is-visible) { transform: translate3d(0, 36px, 0) scale(.96); }
.jm-motion-enabled .jm-reveal[data-jm-reveal="soft"]:not(.is-visible) { transform: translate3d(0, 24px, 0) scale(.985); }
.jm-motion-enabled .jm-reveal.is-visible { opacity: 1; }
.jm-motion-enabled .jm-reveal.jm-reveal-direct { opacity: 1; transform: none; transition: none; }
.jm-scroll-progress { position: fixed; top: 0; left: 0; width: 100%; height: 3px; background: linear-gradient(90deg, #ad4f29, #d4a078); transform: scaleX(0); transform-origin: left; z-index: 2000; pointer-events: none; }
.header .header-container { transition: box-shadow .35s ease, background-color .35s ease; }
.scrolled .header .header-container { background: rgba(255,255,255,.97); box-shadow: 0 8px 32px rgba(25,52,71,.11); }
.jm-motion-enabled .hero .hero-image .shape-1 { animation: morphShape 15s linear infinite, jm-drift-primary 11s ease-in-out infinite; animation-play-state: paused; }
.jm-motion-enabled .hero .hero-image .shape-2 { animation: morphShape 20s linear infinite reverse, jm-drift-secondary 13s ease-in-out infinite; animation-play-state: paused; }
.jm-motion-enabled .jm-portrait-caption { animation: jm-caption-float 7s ease-in-out infinite; animation-play-state: paused; }
.jm-motion-enabled .jm-hero.jm-ambient-active .shape-1,
.jm-motion-enabled .jm-hero.jm-ambient-active .shape-2,
.jm-motion-enabled .jm-hero.jm-ambient-active .jm-portrait-caption { animation-play-state: running; }
.jm-english-card { position: relative; overflow: hidden; isolation: isolate; }
.jm-motion-enabled .jm-english-card::before { content: ''; position: absolute; width: 500px; height: 500px; right: -180px; bottom: -350px; z-index: -1; border-radius: 50%; background: radial-gradient(circle, rgba(151,187,177,.19), transparent 68%); animation: jm-glow-drift 12s ease-in-out infinite alternate; animation-play-state: paused; pointer-events: none; }
.jm-motion-enabled .jm-english-card.jm-ambient-active::before { animation-play-state: running; }
.jm-motion-paused .jm-hero .shape-1,
.jm-motion-paused .jm-hero .shape-2,
.jm-motion-paused .jm-portrait-caption,
.jm-motion-paused .jm-english-card::before { animation-play-state: paused !important; }
.jm-faq summary { transition: color .25s ease; }
.jm-faq details[open] .jm-faq-answer { transform-origin: top; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .jm-hero .btn, .jm-header-contact, .jm-english-card a { transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease; }
  .jm-hero .btn:hover, .jm-header-contact:hover, .jm-english-card a:hover { transform: translateY(-3px); box-shadow: 0 10px 22px rgba(25,52,71,.12); }
  .jm-service-link i, .jm-read-more i, .jm-english-card a i { transition: transform .25s ease; }
  .jm-service-link:hover i, .jm-read-more:hover i, .jm-english-card a:hover i { transform: translateX(5px); }
  .jm-services .service-item:hover { transform: translateY(-7px); box-shadow: 0 16px 34px rgba(25,52,71,.07); }
  .jm-services .service-item > i { display: inline-block; transition: transform .35s ease; }
  .jm-services .service-item:hover > i { transform: rotate(-7deg) scale(1.05); }
  .jm-notebook-item { transition: transform .3s ease; }
  .jm-notebook-item:hover { transform: translateX(4px); }
  .jm-about .about-image img { transition: transform .7s ease; }
  .jm-about .about-image:hover img { transform: scale(1.035); }
}
@keyframes jm-drift-primary {
  0%, 100% { transform: translate3d(0, var(--jm-parallax-y, 0px), 0) rotate(-4deg); }
  50% { transform: translate3d(12px, calc(var(--jm-parallax-y, 0px) - 17px), 0) rotate(5deg); }
}
@keyframes jm-drift-secondary {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(5deg); }
  50% { transform: translate3d(-10px, 13px, 0) rotate(-6deg); }
}
@keyframes jm-caption-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes jm-glow-drift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-60px, -35px, 0); } }
@media (max-width: 575px) {
  .jm-motion-enabled .jm-reveal:not(.is-visible) { transform: translate3d(0, 20px, 0); }
  .jm-motion-enabled .jm-reveal { transition-duration: .6s, .7s, .25s, .25s; }
}
@media (prefers-reduced-motion: reduce) {
  .jm-reveal, .jm-motion-enabled .jm-reveal:not(.is-visible) { opacity: 1 !important; transform: none !important; transition: none !important; }
  .hero .hero-image .shape-1, .hero .hero-image .shape-2, .jm-portrait-caption, .jm-english-card::before { animation: none !important; }
  .jm-scroll-progress { display: none; }
}
@media print {
  .jm-reveal, .jm-motion-enabled .jm-reveal:not(.is-visible) { opacity: 1 !important; transform: none !important; transition: none !important; }
  .jm-scroll-progress { display: none; }
}
