.team-section {
    position: relative;
    width: 100%;
    padding: 6rem 0;
    overflow: hidden;
    background: #000;
    color: #fff;
}

.team-header { width: min(1400px, 95%); margin: 0 auto 3rem; }
.team-marquee { position: relative; width: 100%; overflow: hidden; padding: 28px 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); }
.team-track { display: flex; width: max-content; }
.team-track.scrolling { animation: team-scroll 35s linear infinite; }
.team-track.scrolling:hover { animation-play-state: paused; }
.team-track.scrolling.is-manually-accelerated { animation-play-state: running !important; }
.team-track.is-manually-moving { animation-play-state: paused !important; }
.team-group { display: flex; flex: 0 0 auto; align-items: stretch; gap: 30px; padding-right: 30px; }
.team-card { position: relative; flex: 0 0 320px; width: 320px; overflow: hidden; background: rgba(10,10,10,.8); border: 1px solid rgba(var(--color-primary),.25); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.team-card:hover { border-color: rgb(var(--color-primary)); box-shadow: 0 0 20px rgba(var(--color-primary),.3); transform: translateY(-5px); }
.team-card-image { width: 100%; aspect-ratio: 4 / 5; overflow: hidden; }
.team-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.team-card:hover .team-card-image img { transform: scale(1.04); }
.team-card-info { padding: 18px; }
.team-card-role { display: block; margin-bottom: 7px; color: var(--color-pop-yellow); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.team-card-info h3 { margin: 0 0 .75rem; color: #fff; font-size: 1.5rem; line-height: 1.1; }
.team-bio-open { margin-top: .9rem; padding: .45rem .7rem; color: #fff; background: transparent; border: 2px solid #fff; font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }
.team-bio-open:hover, .team-bio-open:focus-visible { color: #080808; background: var(--color-pop-yellow); box-shadow: 3px 3px 0 var(--color-pop-red); }
@keyframes team-scroll { from { transform: translate3d(0,0,0); } to { transform: translate3d(-50%,0,0); } }


/* Member bio dialog */
.team-bio-modal { width: min(760px, calc(100vw - 2rem)); max-width: none; max-height: calc(100vh - 2rem); padding: 0; overflow: auto; color: #fff; background: #101010; border: 3px solid #fff; box-shadow: 7px 7px 0 var(--color-pop-red); }
.team-bio-modal::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(4px); }
.team-bio-modal__layout { display: grid; grid-template-columns: minmax(180px,.75fr) 1.25fr; min-height: 340px; }
.team-bio-modal__image { min-height: 100%; background: #222; }
.team-bio-modal__image img { display: block; width: 100%; height: 100%; min-height: 340px; object-fit: cover; }
.team-bio-modal__body { position: relative; align-self: center; padding: clamp(1.5rem,4vw,2.5rem); }
.team-bio-modal__close { position: absolute; top: .75rem; right: .75rem; display: grid; width: 2.25rem; height: 2.25rem; padding: 0; color: #fff; background: var(--color-pop-red); border: 2px solid #fff; font-size: 1.4rem; line-height: 1; place-items: center; cursor: pointer; }
.team-bio-modal__role { margin: 0 0 .5rem; color: var(--color-pop-yellow); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.team-bio-modal h2 { margin: 0 2.5rem 1rem 0; color: #fff; font-size: clamp(1.7rem,4vw,2.5rem); font-weight: 900; line-height: 1; text-transform: uppercase; }
.team-bio-modal__text { color: rgba(255,255,255,.82); font-size: .95rem; line-height: 1.65; overflow-wrap: anywhere; }
.team-bio-modal__text > :last-child { margin-bottom: 0; }

@media (max-width: 768px) {
    .team-section { width: 100%; padding: 1.5rem 0; }
    .team-header { padding: 0 1.5rem; }
    .team-marquee { padding: 20px 0; }
    .team-card { flex-basis: 260px; width: 260px; }
    .team-group { gap: 20px; padding-right: 20px; }
}
@media (max-width: 560px) {
    .team-bio-modal__layout { grid-template-columns: 1fr; }
    .team-bio-modal__image { max-height: 40vh; }
    .team-bio-modal__image img { min-height: 0; max-height: 40vh; object-position: center 35%; }
}

.carousel-control-row { display: flex; justify-content: flex-end; margin: -18px clamp(22px, 6vw, 84px) 0; }
.carousel-controls { position: relative; z-index: 3; display: flex; gap: 6px; }
.carousel-controls button { display: grid; width: 34px; height: 30px; padding: 0; place-items: center; color: #080808; background: var(--color-pop-yellow); border: 1px solid #fff; box-shadow: 2px 2px 0 var(--color-pop-red); font-size: 18px; font-weight: 900; line-height: 1; cursor: pointer; }
.carousel-controls button:hover, .carousel-controls button:focus-visible { color: #fff; background: var(--color-pop-red); outline: 2px solid #fff; outline-offset: 2px; }
.carousel-controls button:active { transform: translate(2px, 2px); box-shadow: none; }
.software-section__header { margin-bottom: 34px; }
.software-section .carousel-control-row { margin-top: -18px; }
.resound-section .carousel-control-row { margin-top: -18px; }
