/* University emblem marquee. No panel or background is added around the emblems. */
.hero-image-stage.school-grid-stage{display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;background:transparent!important;border:0!important;box-shadow:none!important}
.hero-image-stage.school-grid-stage:before,.hero-image-stage.school-grid-stage:after,.hero-visual:before,.hero-visual:after{display:none!important}
.hero-visual{display:block!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.school-grid{width:100%;padding:clamp(16px,2.5vw,28px) 0 18px;box-sizing:border-box}
.school-grid-marquee{width:100%;overflow:hidden;mask-image:linear-gradient(90deg,transparent 0%,#000 12%,#000 88%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 12%,#000 88%,transparent 100%)}
.school-grid-row{width:100%;overflow:visible;margin:0 0 clamp(18px,2.4vw,28px)}
/* No gap here on purpose: the seamless loop relies on translateX(-50%) matching half of the track exactly. */
.school-grid-track{display:flex;width:max-content;align-items:flex-start;animation:school-marquee-left 36s linear infinite;will-change:transform}
.school-grid-row:hover .school-grid-track{animation-play-state:paused}
@keyframes school-marquee-left{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes school-marquee-right{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.school-grid-item{position:relative;z-index:1;display:flex;flex:0 0 clamp(112px,10.5vw,132px);flex-direction:column;align-items:center;gap:8px;color:#132c57;text-align:center;transition:transform .4s cubic-bezier(.34,1.56,.64,1);transform-origin:center center}
.school-grid-item:hover{z-index:5;transform:scale(1.15)}
.school-grid-item:hover .school-grid-logo,.school-grid-item:hover .school-grid-logo img{box-shadow:none!important;filter:none!important}
.school-grid-logo{display:grid;place-items:center;width:clamp(76px,7vw,88px);height:clamp(76px,7vw,88px);padding:0;box-sizing:border-box;background:transparent;box-shadow:none}
.school-grid-logo img{position:static!important;inset:auto!important;display:block;width:auto!important;height:auto!important;max-width:88px!important;max-height:88px!important;min-width:0!important;min-height:0!important;object-fit:contain}
.school-grid-name{max-width:9em;font-size:clamp(11px,1.05vw,14px);font-weight:650;line-height:1.35;letter-spacing:.01em;white-space:normal}
.school-grid-caption{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:clamp(14px,2.2vw,26px);color:#365a8d;font-size:clamp(12px,1.2vw,16px);letter-spacing:.08em;white-space:nowrap}.school-grid-caption:before,.school-grid-caption:after{content:"";width:30px;height:1px;background:#83a4cf}
/* 窄屏断点收到 580px：确保任何宽度下 3 行 × 8 所都足以铺满一屏（一组宽 > 容器宽），
   行数恒为 3 行，只缩小每格尺寸。每格 88px 有意留出余量，避免临界的同屏重复。 */
@media(max-width:580px){.school-grid{padding:12px 0 10px}.school-grid-row{margin-bottom:14px}.school-grid-track{animation-duration:34s}.school-grid-item{flex-basis:88px;gap:6px}.school-grid-logo{width:54px;height:54px}.school-grid-logo img{max-width:54px!important;max-height:54px!important}.school-grid-name{font-size:10.5px}.school-grid-caption{margin-top:12px;font-size:11px;gap:8px}.school-grid-caption:before,.school-grid-caption:after{width:18px}}
@media(prefers-reduced-motion:reduce){.school-grid-track{animation:none!important;transform:none!important}.school-grid-item{transition:none!important}.school-grid-item:hover{transform:none!important}}
