/* Motion follows the content; the page remains fully visible without JS. */
.hero-copy { animation: rise-in .8s cubic-bezier(.2,.75,.2,1) both; }
.hero-panel { animation: rise-in .9s .18s cubic-bezier(.2,.75,.2,1) both; }
.hero .primary { position: relative; overflow: hidden; }
.hero .primary::after { content:""; position:absolute; inset:0; background:linear-gradient(105deg,transparent 30%,#ffffff42 50%,transparent 70%); transform:translateX(-150%); animation: sheen 7s 1.5s infinite; pointer-events:none; }
.visual-image img { transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.visual-strip:hover .visual-image img { transform:scale(1.035); }
.btn, .visual-copy a, .header-call { transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease; }
.btn:hover { transform:translateY(-3px); }
.primary:hover { box-shadow:0 18px 36px #087cf066; }
.visual-copy a:hover, .header-call:hover { text-decoration:underline; text-underline-offset:5px; }
.reveal-ready { opacity:0; transform:translateY(25px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.75,.2,1); }
.reveal-ready.is-visible { opacity:1; transform:none; }
.service-grid article:nth-child(2), .client-list article:nth-child(2) { transition-delay:.08s; }
.service-grid article:nth-child(3), .client-list article:nth-child(3) { transition-delay:.16s; }
.service-grid article:nth-child(4), .client-list article:nth-child(4) { transition-delay:.24s; }
@keyframes rise-in { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:none; } }
@keyframes sheen { 0%,78%,100% { transform:translateX(-150%); } 88% { transform:translateX(150%); } }
.scroll-progress { position:fixed; top:0; left:0; z-index:50; width:100%; height:3px; background:#59b8ff; transform:scaleX(0); transform-origin:left; pointer-events:none; }
.service-ribbon { overflow:hidden; background:#0a2c59; color:#eaf5ff; border-top:1px solid #ffffff25; border-bottom:1px solid #ffffff25; }
.ribbon-track { display:flex; width:max-content; align-items:center; gap:0; animation:ribbon-scroll 38s linear infinite; }
.ribbon-track span { flex:none; padding:17px 30px; font-size:.875rem; font-weight:800; letter-spacing:.045em; white-space:nowrap; }
.ribbon-track span::before { content:"✦"; color:#65bdff; margin-right:28px; }
.service-ribbon:hover .ribbon-track { animation-play-state:paused; }
@keyframes ribbon-scroll { to { transform:translateX(-50%); } }
.service-grid article { display:flex; flex-direction:column; min-height:300px; transition:background .25s,box-shadow .25s,transform .25s,opacity .7s; }
.service-grid article:hover { box-shadow:0 20px 44px #0b315414; z-index:1; }
.service-grid h3 { margin:30px 0 12px; }
.service-grid p { margin:0 0 24px; }
.service-grid article a { margin-top:auto; color:#075fcb; font-size:.9rem; font-weight:800; display:inline-flex; justify-content:space-between; align-items:center; gap:12px; min-height:44px; }
.service-grid article a span { font-size:1.35rem; transition:transform .2s; }
.service-grid article a:hover span { transform:translate(3px,-3px); }
.service-feature { background:#082b58; color:white; }
.service-feature p { color:#d3e5f8; }
.service-feature .num,.service-feature a { color:#8cd1ff; }
.service-feature:hover { background:#0c3a73 !important; }
@media (max-width:900px) { .hero { min-height:0; } .hero-panel { align-self:stretch; } }
@media (max-width:560px) { .hero { min-height:0; } .hero-panel { min-height:0; } .panel-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (prefers-reduced-motion:reduce) {
  .ribbon-track { animation:none; flex-wrap:wrap; width:auto; }
  .ribbon-track span[aria-hidden="true"] { display:none; }
  .hero-copy,.hero-panel,.hero .primary::after { animation:none; }
  .reveal-ready { opacity:1; transform:none; transition:none; }
  .btn,.visual-image img,.visual-copy a,.header-call { transition:none; }
  .btn:hover,.visual-strip:hover .visual-image img { transform:none; }
}
