/* Racing motion: transform/opacity only, with a pause button and reduced-motion support. */
.hero-motion{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.hero-motion i{position:absolute;right:-48%;top:18%;height:1px;width:44%;background:linear-gradient(90deg,transparent,#ff9b3b,transparent);opacity:0;transform:rotate(-19deg);animation:racing-trace 7.5s linear infinite}
.hero-motion i:nth-child(2){top:68%;width:65%;animation-delay:2.6s;animation-duration:8s;background:linear-gradient(90deg,transparent,#a7d5f8,transparent)}
.hero-motion i:nth-child(3){top:85%;width:30%;animation-delay:4.7s;animation-duration:6.8s}
@keyframes racing-trace{0%,40%{transform:translateX(0) rotate(-19deg);opacity:0}46%{opacity:.62}69%{opacity:.35}78%,100%{transform:translateX(-330%) rotate(-19deg);opacity:0}}
.home-page .hero-photo{transform-origin:70% 50%;animation:hero-drift 16s ease-in-out infinite alternate}
@keyframes hero-drift{from{transform:scale(1.01)}to{transform:scale(1.085) translateX(-1%)}}
.home-page .hero-content>.eyebrow{animation:hero-enter .8s .2s both}
.home-page .hero h1{animation:hero-enter 1s .35s both}
.home-page .hero-lead{animation:hero-enter 1s .6s both}
.home-page .hero-actions{animation:hero-enter 1s .85s both}
@keyframes hero-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.home-page .hero h1 em{position:relative;display:inline-block}
.home-page .hero h1 em:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,#ed7d24,#ffdda8,transparent);transform-origin:left;animation:precision-line 5.5s 1.2s infinite}
@keyframes precision-line{0%,8%{transform:scaleX(0);opacity:0}30%,65%{transform:scaleX(1);opacity:.8}90%,100%{transform:scaleX(1);opacity:0}}
.home-page .reveal-item{transition:opacity .75s ease,transform .85s cubic-bezier(.2,.7,.25,1);transition-delay:var(--reveal-delay,0ms)}
.home-page.motion-ready .reveal-item:not(.is-visible){opacity:0;transform:translateY(28px)}
.home-page .section-head{position:relative}
.home-page .section-head:before{content:"";position:absolute;left:-16px;top:4px;width:3px;height:38px;background:var(--orange);transform-origin:top;transition:transform .8s .15s}
.home-page.motion-ready .section-head:not(.is-visible):before{transform:scaleY(0)}
.home-page .product-feature{overflow:hidden;transition:box-shadow .35s,transform .35s}
.home-page .product-feature img{transition:transform .75s cubic-bezier(.2,.7,.25,1),filter .6s}
.home-page .product-feature:hover{transform:translateY(-6px);box-shadow:0 18px 35px #0a243b17}
.home-page .product-feature:hover img{transform:scale(1.045);filter:contrast(1.035)}
.home-page .brand-tile{position:relative;overflow:hidden;transition:background .3s}
.home-page .brand-tile:after{content:"";position:absolute;left:0;bottom:0;right:0;height:3px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .4s}
.home-page .brand-tile:hover:after,.home-page .brand-tile:focus-visible:after{transform:scaleX(1)}
.home-page .brand-tile .arrow{transition:transform .35s}
.home-page .brand-tile:hover .arrow{transform:translate(4px,-4px)}
.home-page .news-item{transition:background .3s,padding .3s}
.home-page .news-item:hover{padding-left:12px;background:#f5f8fa;text-decoration:none}
.home-page .service-card{position:relative;overflow:hidden;transition:background .4s,transform .4s}
.home-page .service-card:hover{background:#e8eff4;transform:translateY(-4px);text-decoration:none}
.home-page .service-card:after{content:"";position:absolute;right:-35px;top:0;width:90px;height:100%;background:linear-gradient(100deg,transparent,#fff9,transparent);transform:translateX(150px) skewX(-20deg);transition:transform .85s}
.home-page .service-card:hover:after{transform:translateX(-650px) skewX(-20deg)}
.home-page .button span{transition:transform .3s}.home-page .button:hover span{transform:translateX(5px)}
.home-page .intro-line .eyebrow{position:relative;padding-left:15px}
.home-page .intro-line .eyebrow:before{content:"";position:absolute;left:0;top:6px;width:5px;height:5px;border-radius:50%;background:#ed7d24;box-shadow:0 0 0 0 #ed7d2425;animation:notice-signal 3s ease-out infinite}
@keyframes notice-signal{0%,100%{box-shadow:0 0 0 0 #ed7d2425}65%{box-shadow:0 0 0 7px #ed7d2400}}
.home-page .brandmark:after{animation:home-logo-glint 9s 2s infinite}
@keyframes home-logo-glint{0%,78%{transform:translateX(-240px) rotate(25deg)}94%,100%{transform:translateX(270px) rotate(25deg)}}
.motion-stop *,.motion-stop *:before,.motion-stop *:after{animation:none!important;transition:none!important}
.motion-stop .reveal-item{opacity:1!important;transform:none!important}
@media(max-width:500px){.home-page .hero h1{font-size:clamp(25px,7.4vw,36px)}.home-page .section-head:before{left:-11px}.hero-motion i{width:75%}}
@media(prefers-reduced-motion:reduce){.home-page *,.home-page *:before,.home-page *:after{animation:none!important;transition:none!important}.home-page .reveal-item{opacity:1!important;transform:none!important}.hero-motion{display:none}}

.intro-running .hero-content>*{animation-play-state:paused!important}

/* Anniversary: keep the approved artwork, animate its individual vector parts. */
.anniversary{position:relative;overflow:hidden}
.anniversary:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(117deg,transparent 0 110px,#064e8605 111px 112px,transparent 113px 220px);pointer-events:none}
.anniversary-grid{position:relative;z-index:1}
.anniversary-art{display:block;width:100%;height:auto;overflow:visible}
.anniversary-art .anniv-twenty{transform-origin:190px 220px}
.anniversary-art .anniv-thirty{transform-origin:740px 220px}
.anniversary-art .anniv-plus{transform-origin:335px 192px}
.motion-ready .anniv-thirty{opacity:0}
.anniv-arrow-reveal{transform-origin:400px 218px}
.motion-ready .anniv-arrow-reveal{transform:scaleX(0)}
.anniversary-started .anniv-plus{animation:anniv-plus 2.4s ease-in-out both}
.anniversary-started .anniv-arrow-reveal{animation:anniv-arrow-reveal .65s .1s ease-out both}
.anniversary-started .anniv-thirty{animation:anniv-thirty 2.4s cubic-bezier(.2,.75,.25,1) both}
.anniversary-started .anniv-glint{animation:anniv-glint 2.4s ease-in-out both}
.anniversary-started .anniv-flash{animation:anniv-flash 2.4s linear both}
@keyframes anniv-plus{0%,8%,42%,100%{transform:scale(1)}22%{transform:scale(1.16)}}
@keyframes anniv-arrow-reveal{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* Hidden first, then already oversized: one continuous descent to the final size. */
@keyframes anniv-thirty{0%,28%{transform:translateX(-210px) scale(3.8);opacity:0;filter:drop-shadow(0 5px 9px #081b2b30)}32%{transform:translateX(-210px) scale(3.8);opacity:1;filter:drop-shadow(0 5px 9px #081b2b30)}88%,100%{transform:translateX(0) scale(1);opacity:1;filter:drop-shadow(0 0 0 #081b2b00)}}
@keyframes anniv-glint{0%,28%{transform:translateX(0)}65%,100%{transform:translateX(1350px)}}
@keyframes anniv-flash{0%,84%,96%,100%{opacity:0}88%{opacity:.18}}
.anniversary-complete .anniversary-art *{animation:none!important}
.anniversary-complete .anniv-thirty,.motion-stop .anniv-thirty{opacity:1!important}
.anniversary-complete .anniv-arrow-reveal,.motion-stop .anniv-arrow-reveal{transform:scaleX(1)!important}
/* Repeating movement is active only while each section is on screen. */
.primary-brands .brand-tile:before{content:"";position:absolute;top:0;bottom:0;left:-80%;width:55%;background:linear-gradient(110deg,transparent,#ed7d2413,transparent);transform:skewX(-18deg);pointer-events:none}
.primary-brands.motion-inview .brand-tile:before{animation:brand-pass 8s ease-in-out infinite}
.primary-brands.motion-inview .brand-tile:nth-child(2):before{animation-delay:1.3s}
.primary-brands.motion-inview .brand-tile:nth-child(3):before{animation-delay:2.6s}
@keyframes brand-pass{0%,55%{transform:translateX(0) skewX(-18deg)}80%,100%{transform:translateX(380%) skewX(-18deg)}}
.keirin-promo.motion-inview .keirin-visual>img{animation:keirin-bank-drift 17s ease-in-out infinite alternate}
@keyframes keirin-bank-drift{from{transform:scale(1.015) translateX(0)}to{transform:scale(1.065) translateX(-1%)}}
.keirin-promo-copy h2 em{position:relative;display:inline-block}
.keirin-promo-copy h2 em:after{content:"";position:absolute;left:0;bottom:-8px;width:100%;height:3px;background:linear-gradient(90deg,#ed7d24,#ffd3a3,transparent);transform-origin:left}
.keirin-promo.motion-inview h2 em:after{animation:precision-line 6s 1s infinite}
.hero-actions .button:first-child{position:relative;overflow:hidden}
.hero-actions .button:first-child:after{content:"";position:absolute;inset:-20% auto -20% -65%;width:50%;background:linear-gradient(100deg,transparent,#ed7d2435,transparent);pointer-events:none;animation:brand-pass 7s 3s infinite}
.hero-motion i:nth-child(4){top:36%;width:55%;animation-delay:1.4s;animation-duration:6.2s}
.hero-motion i:nth-child(5){top:52%;width:36%;animation-delay:3.8s;animation-duration:6.9s;background:linear-gradient(90deg,transparent,#dceeff,transparent)}
.motion-stop .anniversary-art *{animation:none!important}
@media(prefers-reduced-motion:reduce){.anniversary-art *{animation:none!important}.anniv-thirty{opacity:1!important}.anniv-arrow-reveal{transform:scaleX(1)!important}.anniversary:before,.primary-brands .brand-tile:before,.hero-actions .button:after{display:none}}
