/* Shared motion: lightweight entrances, tactile controls and subtle Horizon highlights. */
:root{--motion-ease:cubic-bezier(.22,.61,.36,1)}
@keyframes horizon-enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes horizon-image-enter{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes horizon-menu-enter{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@keyframes horizon-cart-update{0%{background:#fff0d2}100%{background:transparent}}
@media(prefers-reduced-motion:no-preference){
 .ph-copy,.rf-hero-grid>div:first-child{animation:horizon-enter .65s var(--motion-ease) both}
 .ph-image,.rf-hero-image{animation:horizon-image-enter .8s var(--motion-ease) both}
 .site-dropdown[open] .site-submenu{animation:horizon-menu-enter .2s var(--motion-ease) both}
 .motion-reveal{opacity:0;translate:0 18px;transition:opacity .6s var(--motion-ease),translate .6s var(--motion-ease),transform .25s ease,box-shadow .25s ease,border-color .25s ease;transition-delay:var(--reveal-delay,0ms)}
 .motion-reveal.is-visible{opacity:1;translate:0 0}
 .oc-table tr.motion-updated,.rf-cart li.motion-updated{animation:horizon-cart-update .65s ease}
}
.reference-home :is(.rf-button,.hn-button,.ph-button,.rf-add,.oc-remove){transition:transform .22s var(--motion-ease),background .22s ease,color .22s ease,box-shadow .22s ease,border-color .22s ease}
.reference-home :is(.rf-button,.hn-button,.ph-button,.rf-add,.oc-remove):active{transform:translateY(1px) scale(.985)}
.reference-home :is(.rf-button,.hn-button,.ph-button) i{transition:transform .25s var(--motion-ease)}
.reference-home :is(.rf-product,.site-card,.site-person,.site-departments article,.ab-highlights>div,.rf-stats>div,.hn-form-panel,.oc-help){transition:transform .28s var(--motion-ease),box-shadow .28s ease,border-color .28s ease}
.reference-home :is(.rf-product-image img,.sp-image img,.rf-feature-image img,.ph-image img,.site-avatar img,.site-job img){transition:transform .5s var(--motion-ease)}
.reference-home :is(.hn-form input,.hn-form textarea,.hn-form select){transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}
.reference-home :is(.hn-form input,.hn-form textarea,.hn-form select):focus{border-color:#d49a41;background:#fffdf8;box-shadow:0 0 0 3px #f3a13212}
.reference-home :is(.rf-faq summary,.site-faq summary){transition:color .2s ease,background .2s ease}
.reference-home :is(.rf-faq summary,.site-faq summary):after{transition:transform .2s ease}
.reference-home :is(.rf-faq details[open],.site-faq details[open]) summary{color:#9c610e}
.reference-home .site-dropdown>summary i{transition:transform .2s ease}
.reference-home .site-dropdown[open]>summary i{transform:rotate(180deg)}
.reference-home .site-submenu a{transition:background .2s ease,color .2s ease,padding-left .2s ease}
.reference-home .hn-floating-wa{transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
@media(hover:hover) and (pointer:fine){
 .reference-home :is(.rf-button,.hn-button,.ph-button,.rf-add):hover{transform:translateY(-3px);box-shadow:0 7px 18px #073c721c}
 .reference-home :is(.rf-button,.hn-button,.ph-button):hover i.fa-arrow-right{transform:translateX(4px)}
 .reference-home :is(.rf-product,.site-card,.site-person,.site-departments article,.ab-highlights>div,.rf-stats>div):hover{transform:translateY(-4px);border-color:#d9a24e;box-shadow:0 10px 26px #073c7210}
 .reference-home .sp-product:hover{transform:translateY(-2px);box-shadow:none;border-bottom-color:#d99c3d}
 .reference-home :is(.rf-product-image:hover img,.sp-image:hover img,.rf-feature-image:hover img,.ph-image:hover img){transform:scale(1.035)}
 .reference-home .site-person:hover .site-avatar img{transform:scale(1.055)}
 .reference-home .site-submenu a:hover{padding-left:16px}
 .reference-home :is(.rf-faq summary,.site-faq summary):hover{color:#9c610e}
 .reference-home .hn-floating-wa:hover{transform:translateY(-4px) scale(1.04);box-shadow:0 8px 23px #073c7233}
 .reference-home .hn-link:not(.is-active):not(summary):after{content:'';position:absolute;height:2px;bottom:7px;left:0;width:100%;background:#f3a132;transform:scaleX(0);transform-origin:left;transition:transform .22s ease}
 .reference-home .hn-link:not(.is-active):not(summary):hover:after{transform:scaleX(1)}
 .reference-home .rf-footer a:hover{color:#9c610e;text-decoration:underline;text-underline-offset:4px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .reference-home *, .reference-home *:before,.reference-home *:after{animation:none!important;transition:none!important}
 .motion-reveal{opacity:1!important;translate:none!important}
 .reference-home :is(.rf-button,.hn-button,.ph-button,.rf-add,.oc-remove,.rf-product,.site-card,.site-person,.site-departments article,.ab-highlights>div,.rf-stats>div,.hn-floating-wa):is(:hover,:active){transform:none!important}
 .reference-home :is(.rf-product-image,.sp-image,.rf-feature-image,.ph-image,.site-avatar):hover img{transform:none!important}
}
@media print{.motion-reveal{opacity:1!important;translate:none!important;transform:none!important}}
/* Visible, coordinated motion. Strong selectors prevent card styles from overriding reveals. */
@keyframes horizon-classic-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes horizon-classic-image{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes horizon-gentle-drift{0%,100%{translate:0 0}50%{translate:0 -5px}}
@keyframes horizon-gold-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.motion-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:1100;background:#f3a132;transform:scaleX(0);transform-origin:left;pointer-events:none;box-shadow:0 0 8px #f3a13233}
.ph-copy,.rf-hero-grid>div:first-child,.ph-image,.rf-hero-image{animation:none}
@media(prefers-reduced-motion:no-preference){
 .motion-ready .ph-copy>*,.motion-ready .rf-hero-grid>:where(div:first-child)>*{animation:horizon-classic-rise .9s var(--motion-ease) both;animation-delay:.12s}
 .motion-ready .ph-copy h1,.motion-ready .rf-hero-grid h1{animation-delay:.22s}
 .motion-ready .ph-copy>p,.motion-ready .rf-hero-grid>div:first-child>p{animation-delay:.36s}
 .motion-ready .ph-copy>.ph-button,.motion-ready .rf-hero-grid .rf-buttons{animation-delay:.48s}
 .motion-ready .rf-hero-small{animation-delay:.6s}
 .motion-ready .ph-image,.motion-ready .rf-hero-image{animation:horizon-classic-image 1.15s var(--motion-ease) .25s both}
 .motion-ready .ph-image img,.motion-ready .rf-hero-image img{animation:horizon-gentle-drift 7s ease-in-out 1.5s infinite}
 .motion-paused .ph-image img,.motion-paused .rf-hero-image img{animation-play-state:paused}
 .ph-hero,.rf-hero{position:relative}
 .motion-ready .ph-hero:after,.motion-ready .rf-hero:after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:#f3a132;transform-origin:left;animation:horizon-gold-line 1.4s var(--motion-ease) .15s both;pointer-events:none}
 .reference-home main .motion-reveal{opacity:0;translate:0 32px;transition:opacity .85s var(--motion-ease),translate .85s var(--motion-ease),transform .28s ease,box-shadow .28s ease,border-color .28s ease;transition-delay:var(--reveal-delay,0ms)}
 .reference-home .motion-reveal.is-visible{opacity:1;translate:0 0}
}
@media(hover:hover) and (pointer:fine){
 .reference-home :is(.rf-button,.hn-button,.ph-button,.rf-add){position:relative;overflow:hidden}
 .reference-home :is(.rf-button,.hn-button,.ph-button,.rf-add):before{content:'';position:absolute;top:-40%;bottom:-40%;left:-80%;width:45%;background:linear-gradient(90deg,transparent,#ffffff30,transparent);transform:skewX(-18deg);transition:left .65s ease;pointer-events:none}
 .reference-home :is(.rf-button,.hn-button,.ph-button,.rf-add):hover:before{left:145%}
 .reference-home :is(.site-card,.site-person,.ab-highlights>div,.rf-stats>div):hover{transform:translateY(-6px);box-shadow:0 14px 32px #073c7218}
}
@media(prefers-reduced-motion:reduce){.motion-progress{display:none}.reference-home .motion-reveal{opacity:1!important;translate:none!important}}
@media print{.motion-progress{display:none}.reference-home .motion-reveal{opacity:1!important;translate:none!important}}
/* Establish the hidden starting frame without an unwanted fade-out. */
@media(prefers-reduced-motion:no-preference){html:not(.motion-ready) .motion-reveal{transition:none!important}}
