.logo-ticker { display: grid; grid-template-columns: 240px minmax(0,1fr); align-items: stretch; width: 100%; min-height: 112px; background: #eeeee8; border-top: 1px solid rgba(23,21,28,.14); border-bottom: 1px solid rgba(23,21,28,.14); overflow: hidden; }
.ticker-label { display: flex; align-items: center; padding: 0 3vw; border-right: 1px solid rgba(23,21,28,.14); color: #69646d; font-size: 9px; font-weight: 600; letter-spacing: .15em; line-height: 1.5; text-transform: uppercase; }
.ticker-window { display: flex; align-items: center; overflow: hidden; mask-image: linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent); }
.ticker-track { display: flex; width: max-content; animation: tickerScroll 55s linear infinite; }
.ticker-window:hover .ticker-track { animation-play-state: paused; }
.logo-set { display: flex; align-items: center; flex-shrink: 0; gap: 72px; padding: 0 36px; }
.partner-logo { display: inline-flex; align-items: center; flex-shrink: 0; gap: 12px; color: #332e38; white-space: nowrap; }
.partner-logo img { width: 30px; height: 30px; object-fit: contain; filter: grayscale(1) brightness(0); opacity: .72; }
.partner-logo b { font: 600 14px/1.1 var(--display); letter-spacing: -.025em; }
@keyframes tickerScroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ticker-track { animation-play-state: paused; } }
@media (max-width:800px) { .logo-ticker { grid-template-columns: 1fr; min-height: 128px; } .ticker-label { padding: 15px 7vw 11px; border-right: 0; border-bottom: 1px solid rgba(23,21,28,.1); } .ticker-window { min-height: 82px; } .logo-set { gap: 50px; padding: 0 25px; } }
.logo-set .partner-logo:nth-child(1) img { content: url('assets/partner-logos/aws.svg'); width: 56px; height: 40px; }
.logo-set .partner-logo:nth-child(7) img { content: url('assets/partner-logos/murata.svg'); width: 96px; height: 34px; }
.logo-set .partner-logo:nth-child(8) img { content: url('assets/partner-logos/auckland.svg'); width: 146px; height: 44px; }
.logo-set .partner-logo:nth-child(9) img { content: url('assets/partner-logos/mpi.webp'); width: 120px; height: 42px; }
.logo-set .partner-logo:nth-child(10) img { content: url('assets/partner-logos/stm.svg'); width: 62px; height: 42px; }
.logo-set .partner-logo:nth-child(11) img { content: url('assets/partner-logos/sprout.webp'); }
.logo-set .partner-logo:nth-child(12) img { content: url('assets/partner-logos/massey.webp'); width: 124px; height: 44px; }
.logo-set .partner-logo:nth-child(13) img { content: url('assets/partner-logos/wsp.webp'); }
.logo-set .partner-logo:nth-child(14) img { content: url('assets/partner-logos/ici.webp'); width: 70px; height: 48px; }
.logo-set .partner-logo:nth-child(15) img { content: url('assets/partner-logos/voco.svg'); width: 76px; height: 38px; }
.logo-set .partner-logo:nth-child(1) b,
.logo-set .partner-logo:nth-child(7) b,
.logo-set .partner-logo:nth-child(8) b,
.logo-set .partner-logo:nth-child(9) b,
.logo-set .partner-logo:nth-child(10) b,
.logo-set .partner-logo:nth-child(12) b,
.logo-set .partner-logo:nth-child(14) b,
.logo-set .partner-logo:nth-child(15) b { display: none; }

/* Supplied partner artwork: preserve exact marks while unifying them visually. */
.logo-set .partner-logo:nth-child(1) img { content: url('assets/partner-logos/aws-user.webp'); width: 72px; height: 46px; }
.logo-set .partner-logo:nth-child(4) img { content: url('assets/partner-logos/mokosmart-user.webp'); width: 64px; height: 58px; }
.logo-set .partner-logo:nth-child(9) img { content: url('assets/partner-logos/mpi-user.webp'); width: 184px; height: 48px; }
.logo-set .partner-logo:nth-child(11) img { content: url('assets/partner-logos/sprout-user.webp'); width: 112px; height: 54px; }
.logo-set .partner-logo:nth-child(12) img { content: url('assets/partner-logos/massey-user.webp'); width: 142px; height: 52px; }
.logo-set .partner-logo:nth-child(13) img { content: url('assets/partner-logos/water-supply-products-user.webp'); width: 94px; height: 52px; }
.logo-set .partner-logo:nth-child(14) img { content: url('assets/partner-logos/infrastructure-cook-islands-user.webp'); width: 148px; height: 58px; }
.logo-set .partner-logo:nth-child(1) img,
.logo-set .partner-logo:nth-child(4) img,
.logo-set .partner-logo:nth-child(9) img,
.logo-set .partner-logo:nth-child(11) img,
.logo-set .partner-logo:nth-child(12) img,
.logo-set .partner-logo:nth-child(13) img,
.logo-set .partner-logo:nth-child(14) img { object-fit: contain; filter: grayscale(1) contrast(1.12); mix-blend-mode: multiply; opacity: .82; }
.logo-set .partner-logo:nth-child(4) b,
.logo-set .partner-logo:nth-child(9) b,
.logo-set .partner-logo:nth-child(11) b,
.logo-set .partner-logo:nth-child(13) b,
.logo-set .partner-logo:nth-child(14) b { display: none; }
.logo-set .partner-logo:nth-child(8) { display: none; }
