@keyframes marquee-primary{0%{transform:translate(0,0)}to{transform:translate3d(calc(-100% - var(--marquee-gap)), 0, 0)}}@keyframes marquee-secondary{0%{transform:translate(100%)}to{transform:translate(0,0)}}.app-marquee-viewport{--marquee-gap:1rem;--marquee-duration:34s}.app-marquee-trackShell{width:100%;min-height:7rem;padding:.35rem 0;position:relative;overflow:hidden}.app-marquee-track{will-change:transform;width:max-content;position:absolute;inset:0 auto 0 0}.app-marquee-track--primary{animation:marquee-primary var(--marquee-duration) linear infinite}.app-marquee-track--secondary{animation:marquee-secondary var(--marquee-duration) linear infinite}.app-marquee-track-inner{align-items:center;gap:var(--marquee-gap);flex-wrap:nowrap;width:max-content;display:flex}.app-marquee-viewport:hover .app-marquee-track{animation-play-state:paused}.app-card{flex-direction:column;flex:none;justify-content:center;align-items:center;gap:.55rem;min-width:88px;padding:.45rem .35rem;transition:transform .25s,opacity .25s;display:inline-flex}.app-card:hover{transform:translateY(-2px)}.app-card-iconFrame{flex-shrink:0;justify-content:center;align-items:center;width:3.6rem;height:3.6rem;transition:transform .25s;display:inline-flex}.app-card:hover .app-card-iconFrame{transform:translateY(-1px)}.app-card-icon{object-fit:contain;width:1.95rem;height:1.95rem;transition:transform .25s}.app-card:hover .app-card-icon{transform:scale(1.06)}.app-card-label{letter-spacing:.01em;color:var(--vi-text-body-strong);text-align:center;text-wrap:balance;max-width:6.75rem;font-family:Nunito,sans-serif;font-size:.8rem;font-weight:700;line-height:1.15}@media (min-width:640px){.app-marquee-viewport{--marquee-gap:1.25rem;--marquee-duration:38s}.app-card{min-width:96px}}@media (min-width:1024px){.app-marquee-viewport{--marquee-gap:1.5rem;--marquee-duration:42s}.app-card{min-width:104px}}@media (prefers-reduced-motion:reduce){.app-marquee-track{animation:none;position:static}.app-marquee-track--secondary{display:none}.app-marquee-trackShell{min-height:auto}}
@keyframes marquee-vertical{0%{transform:translate(0,0)}to{transform:translateY(-50%)}}@keyframes marquee-vertical-reverse{0%{transform:translateY(calc(-50% - 2rem))}to{transform:translate(0,0)}}.marquee-container{backface-visibility:hidden;perspective:1000px;width:100%;height:min(800px,90vh);position:relative;overflow:hidden;transform:translate(0,0);-webkit-mask-image:linear-gradient(#0000,#000 10% 90%,#0000);mask-image:linear-gradient(#0000,#000 10% 90%,#0000)}.marquee-content{backface-visibility:hidden;perspective:1000px;will-change:transform;flex-direction:column;gap:1rem;animation:75s linear infinite marquee-vertical;display:flex;transform:translate(0,0)}.marquee-wrapper{grid-template-columns:1fr;gap:1rem;width:100%;padding:0 .5rem;display:grid}@media (min-width:640px){.marquee-wrapper{grid-template-columns:repeat(2,1fr);gap:1.5rem;padding:0 1rem}.marquee-content{gap:1.5rem}}@media (min-width:1024px){.marquee-wrapper{grid-template-columns:repeat(3,1fr);gap:2rem;padding:0}.marquee-content{gap:2rem}}.marquee-column{gap:inherit;flex-direction:column;display:flex}.marquee-item{transform:translate3d(var(--offset,0), 0, 0);transition:transform .8s cubic-bezier(.4,0,.2,1)}.marquee-container:before,.marquee-container:after{content:"";z-index:2;pointer-events:none;width:100%;height:20%;transition:opacity .3s ease-in-out;position:absolute;left:0}.marquee-container:before{background:linear-gradient(to bottom, var(--vi-bg-page) 0%, transparent 100%);top:0}.marquee-container:after{background:linear-gradient(to top, var(--vi-bg-page) 0%, transparent 100%);bottom:0}.marquee-container:hover .marquee-content{animation-play-state:paused}
.testimonial-card{background:var(--vi-bg-card);border:1px solid var(--vi-fill-accent-18);box-shadow:inset 0 1px 0 var(--vi-fill-white-90), 0 12px 30px var(--vi-shadow-warm-sm);cursor:default;border-radius:16px;flex-direction:column;gap:18px;height:100%;padding:22px;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;display:flex;position:relative;overflow:hidden}.testimonial-card:after{background:linear-gradient(90deg, var(--vi-fill-accent-35), var(--vi-fill-highlight-20), transparent);content:"";opacity:.72;height:1px;position:absolute;top:0;left:22px;right:22px}.testimonial-card__quote{color:var(--vi-text-secondary);letter-spacing:0;text-wrap:pretty;margin:0;font-family:Lora,Georgia,serif;font-size:clamp(16px,1.35vw,18px);font-style:italic;font-weight:500;line-height:1.58;position:relative}.testimonial-card__highlight{background:color-mix(in srgb, var(--vi-bg-highlight-soft) 89%, transparent);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--vi-text-primary);font:inherit;border-radius:3px;padding:1px 3px;font-weight:700}.testimonial-card__footer{border-top:1px solid var(--vi-border-primary);justify-content:space-between;align-items:center;gap:14px;margin-top:auto;padding-top:16px;display:flex}.testimonial-card__author{align-items:center;gap:10px;min-width:0;display:flex}.testimonial-card__avatar{border:1px solid var(--vi-border-strong);object-fit:cover;border-radius:50%;flex:none;width:38px;height:38px}.testimonial-card__avatar--initials{background:var(--vi-fill-accent-10);color:var(--vi-accent-primary-strong);justify-content:center;align-items:center;font-family:Lora,Georgia,serif;font-size:12px;font-weight:700;display:flex}.testimonial-card__name{color:var(--vi-text-secondary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:Nunito,sans-serif;font-size:14px;font-weight:800;line-height:1.2;overflow:hidden}.testimonial-card__rating{color:var(--vi-accent-highlight-strong);flex:none;align-items:center;gap:2px;line-height:1;display:inline-flex}.testimonial-card__rating-star{fill:currentColor;stroke-width:0;width:12px;height:12px}@media (hover:hover) and (pointer:fine){.testimonial-card:hover{background:linear-gradient(180deg, var(--vi-bg-card), var(--vi-bg-panel-elevated));border-color:var(--vi-fill-accent-30);box-shadow:inset 0 1px 0 var(--vi-fill-white-90), 0 18px 40px var(--vi-shadow-warm-md);transform:translateY(-3px)}}@media (max-width:420px){.testimonial-card{gap:16px;padding:19px}.testimonial-card:after{left:19px;right:19px}.testimonial-card__footer{align-items:flex-start;gap:10px}.testimonial-card__quote{font-size:16px}}
