/* Home page redesign overrides */
.hero {
  display: flex;
  min-height: auto;
  flex-direction: column;
  justify-content: center;
  padding: clamp(24px, 3.5vh, 44px) 0 clamp(28px, 4vh, 48px);
  background: linear-gradient(120deg, rgba(33,66,161,.05), transparent 38%), radial-gradient(circle at 0% 10%, rgba(33,66,161,.15), transparent 30%), radial-gradient(circle at 100% 20%, rgba(255,122,0,.16), transparent 27%), linear-gradient(180deg,#fff 0%,#f3f5fc 100%);
}

/* Restate the .container width: these rules sit on the same element and load later,
   so a bare width:100% here would cancel the site gutter and run the hero edge to edge. */
.hero-grid { width: min(calc(100% - 40px), var(--container)); grid-template-columns: .98fr 1.02fr; gap: clamp(34px,5vw,70px); }
.hero h1 { max-width: 710px; margin-bottom: 14px; font-size: clamp(3.2rem,7vw,4.5rem); line-height:1.14; letter-spacing:-.02em; }
.hero .lead { color: var(--muted); }
.hero-art { position:relative; display: grid; min-height: 0; place-items: center; }
.hero-art > img { animation: none; }
.hero-visual-frame { position:relative; z-index:1; overflow:hidden; display:flex; flex-direction:column; width:100%; max-width:580px; padding:0; border:1px solid rgba(33,66,161,.12); border-radius:28px; background:rgba(255,255,255,.96); box-shadow:0 28px 70px rgba(33,66,161,.14); backdrop-filter:blur(16px); }
.hero-visual-frame > img { width:100%; border-radius:20px; }

/* Hero visual: looping video + Upwork proof + trust points */
.hero-visual-video { overflow:hidden; flex:0 0 auto; aspect-ratio:2.2/1; background:linear-gradient(180deg,#f8f9fd 0%,#ffffff 100%); }
.hero-visual-video video { display:block; width:100%; height:100%; object-fit:cover; object-position:center; pointer-events:none; }
.hero-proof-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr); align-items:stretch; }
.hero-upwork,.hero-clutch,.hero-iso { min-width:0; margin:0; }
.hero-badges-row { grid-column:1/-1; display:flex; align-items:center; justify-content:center; gap:28px; padding:12px 22px; }
.hero-badge-item { display:inline-flex; align-items:center; gap:8px; color:var(--primary-deep); font-size:.82rem; font-weight:600; }
.hero-badge-sep { width:1px; height:16px; background:rgba(33,66,161,.18); border-radius:99px; margin:0 8px; }
.hero-badge-job-icon { display:grid; width:24px; height:24px; place-items:center; border-radius:50%; border:2px solid var(--primary); color:var(--primary); font-size:.68rem; }
.hero-upwork { display:flex; flex-direction:column; justify-content:center; gap:8px; padding:16px 16px 16px 18px; }
.hero-upwork-brand { margin:0; line-height:0; }
.hero-upwork-brand img { display:block; width:auto; height:24px; }
.hero-clutch .hero-upwork-brand img { height:22px; }
.hero-upwork-stars { display:flex; gap:2px; color:#f5a623; font-size:.78rem; flex-shrink:0; }
.hero-upwork-count { display:inline-flex; align-items:center; gap:7px; width:fit-content; color:var(--primary-deep); font-size:.9rem; font-weight:500; }
.hero-upwork-count i { font-size:.68rem; color:var(--muted); transition:transform var(--transition); }
.hero-upwork-count:hover { color:var(--primary); }
.hero-upwork-count:hover i { transform:translateX(2px); }
.hero-upwork-badges { display:flex; flex-direction:column; gap:10px; margin:6px 0 0; padding:0; list-style:none; }
.hero-upwork-badges li { display:flex; align-items:center; gap:10px; color:var(--primary-deep); font-size:.88rem; font-weight:600; }
.hero-upwork-badge { display:grid; width:28px; height:28px; flex:0 0 auto; place-items:center; }
.hero-upwork-badge img { display:block; width:28px; height:28px; object-fit:contain; }
.hero-clutch { position:relative; display:flex; flex-direction:column; justify-content:center; gap:8px; padding:16px; }
.hero-clutch::before { content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:1px; height:60%; background:rgba(33,66,161,.18); border-radius:99px; }
.hero-clutch-rating { display:flex; align-items:center; gap:6px; flex-wrap:nowrap; }
.hero-clutch-score { font-family:"Poppins",sans-serif; font-size:.82rem; font-weight:700; color:var(--primary-deep); white-space:nowrap; }
.hero-clutch-label { margin:0; color:var(--muted); font-size:.78rem; font-weight:500; }
.hero-iso { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; padding:16px; text-align:center; }
.hero-iso::before { content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:1px; height:60%; background:rgba(33,66,161,.18); border-radius:99px; }
.hero-iso-badge { display:inline-flex; flex-direction:column; align-items:center; justify-content:center; width:58px; height:58px; border-radius:50%; border:3px solid var(--primary); background:var(--primary); color:#fff; line-height:1; gap:1px; }
.hero-iso-top { font-family:"Poppins",sans-serif; font-size:.75rem; font-weight:700; letter-spacing:.04em; }
.hero-iso-num { font-family:"Poppins",sans-serif; font-size:.68rem; font-weight:800; letter-spacing:.02em; }
.hero-iso-bot { font-family:"Poppins",sans-serif; font-size:.44rem; font-weight:600; letter-spacing:.08em; opacity:.85; }
.hero-iso-text { margin:0; color:var(--primary-deep); font-size:.82rem; font-weight:600; line-height:1.4; }

/* Inline architecture schematic (replaces the hero raster on the LCP path) */
.hero-schematic { width:100%; height:auto; aspect-ratio:600/400; border-radius:20px; background:linear-gradient(180deg,#f8f9fd 0%,#f0f2fa 100%); }
.hs-label { fill:var(--muted); font-family:"Inter",sans-serif; font-size:13px; font-weight:700; letter-spacing:.06em; text-anchor:middle; text-transform:uppercase; }
.hs-card rect { fill:var(--white); stroke:rgba(33,66,161,.18); stroke-width:1.5; }
.hs-card-text { fill:var(--primary-deep); font-family:"Inter",sans-serif; font-size:15px; font-weight:600; text-anchor:middle; }
.hs-node rect { fill:rgba(33,66,161,.08); stroke:rgba(33,66,161,.26); stroke-width:1.5; }
.hs-node-title { fill:var(--primary-deep); font-family:"Poppins",sans-serif; font-size:16px; font-weight:600; text-anchor:middle; }
.hs-node-sub { fill:var(--muted); font-family:"Inter",sans-serif; font-size:13px; text-anchor:middle; }
.hs-model-title { fill:var(--white); font-family:"Poppins",sans-serif; font-size:17px; font-weight:600; text-anchor:middle; }
.hs-model-sub { fill:rgba(255,255,255,.82); font-family:"Inter",sans-serif; font-size:13px; text-anchor:middle; }
.hs-pulse { fill:var(--accent); opacity:.35; transform-box:fill-box; transform-origin:center; animation:hsPulse 2.6s ease-out infinite; }
.hs-pulse-core { fill:var(--accent); }
.hs-wires path { fill:none; stroke:rgba(33,66,161,.3); stroke-dasharray:5 6; stroke-width:2; }
.hs-dot { fill:var(--primary); animation:hsFlow 2.4s linear infinite; }
.hs-dot-b { animation-delay:-.8s; }
.hs-dot-c { animation-delay:-1.6s; }
.hs-footnote { fill:var(--muted); font-family:"Inter",sans-serif; font-size:13px; text-anchor:middle; }
@keyframes hsFlow { 0% { opacity:0; transform:translateX(0); } 12% { opacity:1; } 88% { opacity:1; } 100% { opacity:0; transform:translateX(36px); } }
@keyframes hsPulse { 0% { opacity:.4; transform:scale(.6); } 70% { opacity:0; transform:scale(1.5); } 100% { opacity:0; transform:scale(1.5); } }

/* Bottom band: outcome metrics + technology stack */
.hero-band { display:grid; width:min(calc(100% - 40px), var(--container)); gap:clamp(20px,3vw,34px); margin-top:clamp(30px,4.5vh,48px); grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); align-items:center; }
.hero-metrics { display:grid; margin:0; gap:14px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.hero-metric { padding:16px 18px; border:1px solid rgba(33,66,161,.14); border-radius:var(--radius-sm); background:rgba(255,255,255,.72); }
.hero-metric dt { color:var(--muted); font-size:.76rem; font-weight:600; line-height:1.35; order:2; }
.hero-metric dd { display:block; margin:0 0 4px; order:1; }
.hero-metric strong { color:var(--primary-deep); font-family:"Poppins",sans-serif; font-size:clamp(1.5rem,2.4vw,1.95rem); font-weight:700; line-height:1; }
.hero-metric { display:flex; flex-direction:column; }
.hero-stack { min-width:0; padding-left:clamp(0px,2vw,26px); border-left:1px solid var(--line); }
.hero-stack-heading { margin:0 0 12px; color:var(--muted); font-family:"Inter",sans-serif; font-size:.74rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.hero-stack-rail { display:flex; gap:22px; flex-wrap:wrap; }
.hero-stack-group { min-width:0; }
/* --primary on white is 4.19:1 — below the 4.5:1 floor for text this size.
   --primary-dark is 6.46:1. Scoped to the hero so the base token is untouched. */
.hero .eyebrow { color:var(--primary-dark); }
.hero-stack-label { display:block; margin-bottom:7px; color:var(--primary-dark); font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.hero-stack-list { display:flex; margin:0; padding:0; gap:6px; flex-wrap:wrap; list-style:none; }
.hero-stack-list li { padding:5px 11px; color:var(--primary-deep); border:1px solid rgba(33,66,161,.16); border-radius:999px; background:rgba(255,255,255,.8); font-size:.73rem; font-weight:600; white-space:nowrap; }

/* Staggered entrance */
.hero-step { opacity:0; transform:translateY(16px); animation:heroEnter 500ms cubic-bezier(.22,.61,.36,1) forwards; }
.hero-step[data-step="1"] { animation-delay:60ms; }
.hero-step[data-step="2"] { animation-delay:120ms; }
.hero-step[data-step="3"] { animation-delay:180ms; }
.hero-step[data-step="4"] { animation-delay:240ms; }
.hero-step[data-step="5"] { animation-delay:300ms; }
.hero-step[data-step="6"] { animation-delay:360ms; }
@keyframes heroEnter { to { opacity:1; transform:translateY(0); } }
.hero-visual-topline { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:2px 6px 0; color:var(--muted); font-size:.75rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.hero-visual-topline span { display:inline-flex; align-items:center; gap:8px; }
.hero-visual-topline i { color:#35b36c; border-radius:50%; box-shadow:0 0 0 5px rgba(53,179,108,.12); font-size:.48rem; }
.hero-visual-topline strong { color:var(--primary); }
.hero-impact-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-top:10px; }
.hero-impact-grid span { display:flex; min-height:58px; align-items:center; justify-content:center; gap:8px; padding:8px; border-radius:15px; color:var(--primary-deep); background:#f0f2fa; font-size:.76rem; }
.hero-impact-grid i { color:var(--primary); }
.hero-scroll { position:absolute; z-index:4; bottom:14px; left:50%; display:inline-flex; align-items:center; gap:9px; transform:translateX(-50%); color:var(--muted); font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.hero-scroll i { display:inline-grid; width:30px; height:30px; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--primary); background:var(--white); animation:scrollCue 1.8s ease-in-out infinite; }
@keyframes scrollCue { 0%,100% { transform:translateY(0); } 50% { transform:translateY(5px); } }

/* Continuous left-to-right technology motion */
.tech-track { transform:translateX(-50%); animation:marqueeForward 30s linear infinite; }
@keyframes marqueeForward { from { transform:translateX(-50%); } to { transform:translateX(0); } }

/* Two review collections */
.reviews-section { overflow:hidden; background:var(--white); }
.review-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.review-panel { min-width:0; padding:26px; border:1px solid rgba(33,66,161,.11); border-radius:28px; background:#fff; box-shadow:var(--shadow-sm); }
.review-panel.upwork-panel { border-top:4px solid #14a800; }
.review-panel-head { display:grid; align-items:center; grid-template-columns:auto 1fr auto; gap:13px; margin-bottom:20px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.review-panel-head > strong { padding:5px 10px; border-radius:999px; color:var(--primary); background:var(--bg-blue); font-size:.75rem; }
.upwork-panel .review-panel-head > strong { color:#0e7c00; background:#ecf8e9; }
.review-panel-head span { display:block; color:var(--muted); font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.review-panel-head h3 { margin:2px 0 0; font-size:1.08rem; }
.review-source-icon { display:grid; width:48px; height:48px; place-items:center; border-radius:15px; color:var(--white); font-size:1.1rem; }
.review-source-icon.direct { background:var(--primary); }
.review-source-icon.upwork { background:#14a800; }
.testimonial-shell.compact { max-width:none; }
.testimonial-shell.compact .testimonial { min-height:325px; padding:25px 5px 8px; border:0; box-shadow:none; }
.testimonial-shell.compact .testimonial blockquote { min-height:155px; font-size:clamp(1rem,1.6vw,1.22rem); line-height:1.6; }
.upwork-avatar { background:#14a800; }

/* Numbers */
.numbers-section { background:linear-gradient(180deg,#fff,#f7fbfd); }
.stats-card { overflow:hidden; padding:0; border-radius:30px; box-shadow:0 24px 60px rgba(33,66,161,.17); }

/* Certificates */
.certificate-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.certificate-card { display:flex; min-height:155px; align-items:center; gap:22px; padding:28px; border:1px solid var(--line); border-radius:22px; background:var(--white); box-shadow:var(--shadow-sm); transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition); }
.certificate-card:hover { transform:translateY(-4px); border-color:rgba(33,66,161,.24); box-shadow:var(--shadow-md); }
.certificate-seal { display:grid; width:72px; height:72px; flex:0 0 auto; place-items:center; border:7px solid #d8dfee; border-radius:50%; color:var(--white); background:var(--primary); box-shadow:0 0 0 2px var(--primary); font-size:1.45rem; }
.certificate-seal.orange { border-color:#fff0d3; background:var(--accent); box-shadow:0 0 0 2px var(--accent); }
.certificate-card > div > span { color:var(--primary); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.certificate-card h3 { margin:4px 0 7px; }
.certificate-card p { margin:0; font-size:.86rem; }

/* Awards moving from left to right */
.awards-section { overflow:hidden; background:radial-gradient(circle at 10% 20%,rgba(255,122,0,.12),transparent 28%),linear-gradient(135deg,#0c1540,#1a338e); }
.awards-section .section-head h2 { color:var(--white); }
.awards-section .section-head p { color:rgba(255,255,255,.75); }
.awards-section .eyebrow { color:#8ca5e8; }
.award-shell { overflow:hidden; width:100%; padding:12px 0; mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.award-track { display:flex; width:max-content; transform:translateX(-50%); animation:awardForward 34s linear infinite; }
.award-track:hover { animation-play-state:paused; }
.award-group { display:flex; gap:18px; padding-right:18px; }
.award-logo { display:flex; min-width:290px; min-height:104px; align-items:center; gap:16px; padding:20px 24px; border:1px solid rgba(255,255,255,.13); border-radius:20px; color:var(--white); background:rgba(255,255,255,.08); backdrop-filter:blur(10px); }
.award-logo > i { display:grid; width:52px; height:52px; flex:0 0 auto; place-items:center; border-radius:16px; color:#0f1d52; background:var(--accent); font-size:1.25rem; }
.award-logo strong { display:block; font-family:"Poppins",sans-serif; }
.award-logo span { color:rgba(255,255,255,.66); font-size:.75rem; }
@keyframes awardForward { from { transform:translateX(-50%); } to { transform:translateX(0); } }

@media (max-width:1199px) {
  .hero-grid { gap:clamp(26px,3.4vw,44px); }
  .hero h1 { font-size:clamp(2.8rem,6vw,5rem); }
  .hero-band { grid-template-columns:1fr; }
  .hero-stack { padding-left:0; border-left:0; }
}

/* The base collapse in style.css cannot win here — this file loads later and its
   .hero-grid rule has equal specificity, so the single-column switch is restated. */
@media (max-width:991px) {
  .hero-grid { grid-template-columns:1fr; }
  .hero h1 { max-width:none; font-size:clamp(2.1rem,7vw,2.8rem); }
  .hero .lead { max-width:none; }
  .hero-art { width:100%; max-width:580px; margin-inline:auto; min-height:0; }
  .hero-proof-grid { grid-template-columns:1fr; }
  .hero-clutch::before,.hero-iso::before { display:none; }
  .hero-clutch { border-top:1px solid rgba(33,66,161,.12); }
  .hero-iso { border-top:1px solid rgba(33,66,161,.12); }
  .hero-upwork,
  .hero-clutch { align-items:center; text-align:center; }
}

@media (max-width:920px) {
  .hero { height:auto; min-height:0; max-height:none; padding-top:48px; }
  .hero-scroll { display:none; }
  .hero-band { margin-top:34px; }
  .review-columns { grid-template-columns:1fr; }
}

@media (max-width:680px) {
  .hero { min-height:auto; padding:36px 0 70px; }
  .hero h1 { font-size:clamp(1.85rem,8vw,2.25rem); }
  .hero-visual-frame { border-radius:22px; }
  .hero-badges-row { flex-wrap:wrap; gap:10px 16px; padding:12px 16px; }
  .hero-impact-grid span { min-height:48px; font-size:.67rem; }
  .certificate-grid { grid-template-columns:1fr; }
  .review-panel { padding:20px; border-radius:22px; }
  .review-panel-head { grid-template-columns:auto minmax(0,1fr); }
  .review-panel-head > strong { grid-column:2; justify-self:start; }
  .testimonial-shell.compact .testimonial { min-height:300px; }
  .certificate-card { align-items:flex-start; padding:22px; }
  .certificate-seal { width:60px; height:60px; }
  .award-logo { min-width:250px; }
  .review-columns {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 16px;
    padding-bottom: 12px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
  }
  .review-columns::-webkit-scrollbar { display: none; }
  .review-columns > .review-panel {
    flex: 0 0 min(310px, calc(100vw - 48px));
    scroll-snap-align: start;
    min-width: 0;
  }
}

@media (max-width:600px) {
  .hero-actions { display:grid; gap:10px; grid-template-columns:1fr; }
  .hero-actions .btn { width:100%; }
  .hero-trust { gap:12px 18px; }
  .hero-metrics { gap:10px; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); }
  .hero-metric { padding:13px 14px; }
  .hero-metric dt { font-size:.72rem; }
  /* Stack rail scrolls sideways rather than wrapping into a tall block */
  .hero-stack-rail { flex-wrap:nowrap; overflow-x:auto; padding-bottom:8px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .hero-stack-rail::-webkit-scrollbar { display:none; }
  .hero-stack-group { flex:0 0 auto; }
  .hero-stack-list { flex-wrap:nowrap; }
}

@media (prefers-reduced-motion:reduce) {
  .tech-track,.award-track,.hero-visual-frame,.hero-scroll i,.hs-dot,.hs-pulse { animation:none !important; transform:none !important; }
  .hs-pulse { opacity:.35; }
  .hero-step { opacity:1; transform:none; animation:none !important; }
  .hero-visual-video video { animation:none !important; }
}

/* ── "Our services" on white background (index only) ─────────── */
.services-light { background:var(--white); }
.services-light::before { display:none; }
.services-light .section-head h2 { color:var(--primary-deep); }
.services-light .section-head p  { color:var(--muted); }
.services-light .eyebrow {
  color:var(--primary);
  background:transparent;
  border-color:transparent;
}
.services-light .service-card {
  border:1px solid var(--line);
  background:var(--white);
  box-shadow:0 8px 24px rgba(33,66,161,.06);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.services-light .service-card:hover {
  border-color:rgba(255,122,0,.4);
  background:var(--white);
  box-shadow:0 22px 48px rgba(33,66,161,.14),0 0 0 1px rgba(255,122,0,.12);
}
.services-light .sc-num { color:rgba(33,66,161,.06); }
.services-light .service-card h3 { color:var(--primary-deep); }
.services-light .service-card p  { color:var(--muted); }

/* ── Home technology marquee (single continuous row) ─────────── */
.home-tech {
  overflow:hidden;
  padding:28px 0;
  background:var(--primary);
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.home-tech-head { margin-bottom:32px; text-align:center; }
.home-tech-head .eyebrow { margin-bottom:0; justify-content:center; color:#a9c0ff; }
.home-tech-marquee {
  position:relative;
  width:100%;
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.home-tech-track {
  display:flex;
  gap:14px;
  width:max-content;
  animation:home-tech-scroll 80s linear infinite;
}
.home-tech-marquee:hover .home-tech-track { animation-play-state:paused; }
.home-tech-group { display:flex; gap:14px; padding-right:14px; }
.home-cat-group { align-items:center; }
.home-cat-chip {
  display:inline-flex;
  align-items:center;
  gap:8px;
  height:46px;
  padding:0 20px;
  border-radius:100px;
  font-family:"Poppins",sans-serif;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  white-space:nowrap;
  flex-shrink:0;
  cursor:default;
}
/* .home-cat-chip:hover { transform:translateY(-2px); } */
.home-cat-chip.orange { background:#FF7A00; color:#fff; box-shadow:0 0 20px rgba(255,122,0,.4); }
.home-cat-chip.blue   { background:#4a72ff; color:#fff; box-shadow:0 0 20px rgba(74,114,255,.4); }
.home-cat-chip i { font-size:.85rem; opacity:.9; }
.home-strip-sep {
  display:inline-flex;
  align-self:center;
  flex-shrink:0;
  width:1px;
  height:30px;
  background:rgba(255,255,255,.25);
  margin:0 6px;
}
.home-tech-pill {
  display:inline-flex;
  align-items:center;
  gap:9px;
  height:46px;
  padding:0 20px;
  border-radius:100px;
  border:1px solid rgba(255,255,255,.7);
  background:#fff;
  color:var(--primary-deep);
  font-family:"Poppins",sans-serif;
  font-size:.82rem;
  font-weight:600;
  white-space:nowrap;
  box-shadow:0 6px 16px rgba(6,16,54,.28);
  transition:transform .25s ease,box-shadow .25s ease;
}
.home-tech-pill i { font-size:1rem; color:var(--primary); }

/* Left → right continuous flow (two identical groups = seamless loop) */
@keyframes home-tech-scroll {
  from { transform:translateX(-50%); }
  to   { transform:translateX(0); }
}
@media (prefers-reduced-motion:reduce) {
  .home-tech-track { animation:none; flex-wrap:wrap; justify-content:center; }
}
