Help
RSS
API
Feed
Maltego
Contact
Domain > sidelinecaptions.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-10-28
34.198.244.72
(
ClassC
)
2025-11-21
50.28.107.89
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyDate: Fri, 21 Nov 2025 17:57:47 GMTServer: ApacheLocation: https://sidelinecaptions.com/Content-Length: 237Content-Type: text/html; charsetiso-8859-1 !DOCTYPE HTML PUBLIC -//IETF//DTD HTML 2.0//EN>html>head>title>301 Moved Permanently/title>/head>body>h1>Moved Permanently/h1>p>The document has moved a hrefhttps://sidelinecaptions.com/>here/a>./p>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Fri, 21 Nov 2025 17:57:47 GMTServer: ApacheLast-Modified: Thu, 20 Nov 2025 19:17:30 GMTAccept-Ranges: bytesContent-Length: 337927Cache-Control: public, max-age2592000Content-Type: text/html !DOCTYPE html>html langen>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0> title>Sideline Captions - AI-Powered Photo Captioning for Sports Photographers/title> meta namedescription contentSideline Captions automatically generates professional captions for your sports photos using AI. Save hours every game with intelligent player recognition and publication-ready captions in AP, Getty, and Imagn styles.> meta namekeywords contentsports photography, photo captioning, AI captions, Photo Mechanic, sports photos, caption automation, AP style captions, Getty Images captions> meta nameauthor contentCrawford Ifland> link relcanonical hrefhttps://sidelinecaptions.com> !-- Open Graph / Facebook --> meta propertyog:type contentwebsite> meta propertyog:url contenthttps://sidelinecaptions.com> meta propertyog:title contentSideline Captions - AI-Powered Sports Photo Captioning> meta propertyog:description contentAutomatically generate professional captions for your sports photos using AI. Save hours every game with intelligent player recognition.> meta propertyog:image contenthttps://sidelinecaptions.com/images/hero.webp> !-- Twitter --> meta propertytwitter:card contentsummary_large_image> meta propertytwitter:url contenthttps://sidelinecaptions.com> meta propertytwitter:title contentSideline Captions - AI-Powered Sports Photo Captioning> meta propertytwitter:description contentAutomatically generate professional captions for your sports photos using AI. Save hours every game with intelligent player recognition.> meta propertytwitter:image contenthttps://sidelinecaptions.com/images/hero.webp> link relicon typeimage/png hrefimages/logo.png> !-- Preconnect to external domains for faster loading --> link relpreconnect hrefhttps://fonts.googleapis.com> link relpreconnect hrefhttps://fonts.gstatic.com crossorigin> link relpreconnect hrefhttps://cdn.tailwindcss.com> link reldns-prefetch hrefhttps://cdn.tailwindcss.com> !-- Load Google Fonts with link tag (better than @import) -->link hrefhttps://fonts.googleapis.com/css2?familyInter:wght@300;400;500;600;700;800;900&displayswap relstylesheet>!-- Meta Pixel Code --> script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;nf.fbqfunction(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbqn;n.pushn;n.loaded!0;n.version2.0; n.queue;tb.createElement(e);t.async!0; t.srcv;sb.getElementsByTagName(e)0; s.parentNode.insertBefore(t,s)}(window, document,script, https://connect.facebook.net/en_US/fbevents.js); fbq(init, 1878513732766659); fbq(track, PageView); /script> noscript>img height1 width1 styledisplay:none srchttps://www.facebook.com/tr?id1878513732766659&evPageView&noscript1 />/noscript> !-- End Meta Pixel Code --> !-- Inline critical CSS for above-the-fold content --> style> html { scroll-behavior: smooth; } body { font-family: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif; margin: 0; padding: 0; } /* Critical styles for initial render */ .gradient-text { background: linear-gradient(135deg, #667eea 0%, #353eb7 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .gradient-bg { background: linear-gradient(135deg, #667eea 0%, #353eb7 100%); } @keyframes growUp { from { transform: scaleY(0); } to { transform: scaleY(1); } } .bar-chart-bar.animate { animation: growUp 0.8s ease-out forwards; } .bar-1.animate { animation-delay: 0.4s; } .bar-2.animate { animation-delay: 0.6s; } .bar-3.animate { animation-delay: 0.8s; } .feature-card { transition: transform 0.3s ease, box-shadow 0.3s ease; } .feature-card:hover { transform: translateY(-4px); box-shadow: 0 20px 25px -5px rgba(102, 126, 234, 0.15), 0 10px 10px -5px rgba(102, 126, 234, 0.1); } /* Prevent FOUC (Flash of Unstyled Content) for Tailwind responsive classes */ /* Base: hide md:hidden elements */ .md\:hidden { display: none; } @media (min-width: 768px) { .md\:hidden { display: none !important; } .hidden.md\:inline { display: inline !important; } .hidden.md\:block { display: block !important; } .hidden.md\:flex { display: flex !important; } } @media (max-width: 767px) { /* Keep hidden class working on mobile */ .hidden { display: none !important; } /* Mobile menu should stay hidden unless toggled */ #mobile-menu.hidden { display: none !important; } /* Only show md:hidden elements that are meant to be visible on mobile */ /* But DONT override elements that also have hidden class */ .md\:hidden:not(.hidden) { display: block !important; } /* Mobile menu button should be visible */ .md\:hidden.md\:block { display: block !important; } /* Reduce font sizes on mobile for regular text only (not headings) */ p.text-6xl, span.text-6xl, blockquote.text-6xl { font-size: 2rem !important; line-height: 2.25rem !important; } p.text-5xl, span.text-5xl, blockquote.text-5xl { font-size: 1.75rem !important; line-height: 2rem !important; } p.text-4xl, span.text-4xl, blockquote.text-4xl { font-size: 1.5rem !important; line-height: 1.75rem !important; } p.text-3xl:not(.gradient-text), span.text-3xl, blockquote.text-3xl { font-size: 1.25rem !important; line-height: 1.5rem !important; } /* Slightly larger size for gradient-text paragraphs */ p.text-3xl.gradient-text { font-size: 1.5rem !important; line-height: 1.75rem !important; } p.text-2xl, span.text-2xl, blockquote.text-2xl { font-size: 1.125rem !important; line-height: 1.375rem !important; } p.text-xl, span.text-xl, blockquote.text-xl { font-size: 0.9375rem !important; line-height: 1.25rem !important; } p.text-lg, span.text-lg, blockquote.text-lg { font-size: 0.875rem !important; line-height: 1.25rem !important; } /* Keep button text larger on mobile */ button span.text-lg, button span.font-semibold.text-lg { font-size: 1.125rem !important; line-height: 1.5rem !important; } p.text-base, span.text-base, blockquote.text-base { font-size: 1.0625rem !important; line-height: 1.375rem !important; } /* Reduce button text sizes */ button.text-lg, a.text-lg { font-size: 0.875rem !important; } button.text-base, a.text-base { font-size: 0.8125rem !important; } /* Ensure mobile download buttons are centered */ .mobile-download { margin-left: auto !important; margin-right: auto !important; } /* Force centering of mobile download button wrappers */ div.flex.justify-center.mt-8.md\:hidden, div.flex.justify-center.mt-4.md\:hidden { display: flex !important; justify-content: center !important; width: 100% !important; align-items: center !important; } } /* Mobile-only message styling */ .mobile-only-message { visibility: hidden; opacity: 0; position: absolute; width: 0; height: 0; overflow: hidden; } .mobile-only-message.show { visibility: visible; opacity: 1; position: static; width: auto; height: auto; overflow: visible; animation: fadeIn 0.3s ease-in; } .download-button { text-decoration: none; } .desktop-download, .mobile-download { display: none; } .desktop-download.is-visible, .mobile-download.is-visible { display: inline-flex !important; align-items: center; justify-content: center; } .mobile-download-aux { display: none; } .mobile-download-aux.is-visible { display: inline-block !important; } .email-modal { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; z-index: 1000; } .email-modal.is-visible { display: flex; } .email-modal-backdrop { position: absolute; inset: 0; background: rgba(15, 18, 28, 0.85); backdrop-filter: blur(6px); } .email-modal-content { position: relative; width: min(90vw, 420px); background: #0f172a; border: 1px solid rgba(148, 163, 184, 0.2); border-radius: 18px; padding: 28px 28px 32px; z-index: 1001; color: #e2e8f0; box-shadow: 0 24px 60px rgba(15, 23, 42, 0.4); } .email-modal h3 { margin-top: 0; margin-bottom: 12px; font-size: 1.5rem; font-weight: 700; } .email-modal p { margin: 0 0 18px; color: #cbd5f5; } .email-modal form { display: flex; flex-direction: column; gap: 16px; } .email-modal label { font-size: 0.9rem; color: #94a3b8; } .email-modal inputtypeemail { width: 100%; padding: 12px 14px; border-radius: 10px; border: 1px solid rgba(148, 163, 184, 0.3); background: rgba(15, 23, 42, 0.6); color: #f8fafc; font-size: 1rem; } .email-modal inputtypeemail:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.25); } .email-modal buttontypesubmit { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 18px; border-radius: 10px; border: none; font-size: 1rem; font-weight: 600; background: linear-gradient(135deg, #6366f1 0%, #4338ca 100%); color: #fff; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease; } .email-modal buttontypesubmit:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 12px 24px rgba(99, 102, 241, 0.35); } .email-modal buttontypesubmit:disabled { opacity: 0.65; cursor: not-allowed; } .email-modal-close { position: absolute; top: 18px; right: 18px; background: transparent; border: none; color: #94a3b8; font-size: 1.5rem; cursor: pointer; } .email-modal-close:hover { color: #e2e8f0; } .email-link-status { min-height: 20px; font-size: 0.9rem; margin-top: 12px; } .email-link-status.success { color: #4ade80; } .email-link-status.error { color: #f87171; } .recaptcha-container { display: flex; justify-content: center; } body.modal-open { overflow: hidden; } .contact-modal { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; z-index: 1000; } .contact-modal.is-visible { display: flex; } .contact-modal-backdrop { position: absolute; inset: 0; background: rgba(15, 18, 28, 0.85); backdrop-filter: blur(6px); } .contact-modal-content { position: relative; width: min(90vw, 500px); max-height: 90vh; overflow-y: auto; background: #0f172a; border: 1px solid rgba(148, 163, 184, 0.2); border-radius: 18px; padding: 28px 28px 32px; z-index: 1001; color: #e2e8f0; box-shadow: 0 24px 60px rgba(15, 23, 42, 0.4); } .contact-modal h3 { margin-top: 0; margin-bottom: 12px; font-size: 1.5rem; font-weight: 700; } .contact-modal p { margin: 0 0 18px; color: #cbd5f5; } .contact-modal form { display: flex; flex-direction: column; gap: 16px; } .contact-modal .form-field { display: flex; flex-direction: column; gap: 6px; } .contact-modal label { font-size: 0.9rem; color: #94a3b8; } .contact-modal inputtypetext, .contact-modal inputtypeemail, .contact-modal textarea { width: 100%; padding: 12px 14px; border-radius: 10px; border: 1px solid rgba(148, 163, 184, 0.3); background: rgba(15, 23, 42, 0.6); color: #f8fafc; font-size: 1rem; font-family: inherit; } .contact-modal inputtypetext:disabled, .contact-modal inputtypeemail:disabled, .contact-modal textarea:disabled { opacity: 0.5; cursor: not-allowed; } .contact-modal textarea { min-height: 120px; resize: vertical; } .contact-modal inputtypetext:focus, .contact-modal inputtypeemail:focus, .contact-modal textarea:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.25); } .contact-modal inputtypecheckbox { width: 18px; height: 18px; cursor: pointer; accent-color: #6366f1; } .contact-modal .checkbox-field { display: flex; align-items: center; gap: 10px; } .contact-modal .checkbox-field label { cursor: pointer; user-select: none; } .contact-modal buttontypesubmit { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 18px; border-radius: 10px; border: none; font-size: 1rem; font-weight: 600; background: linear-gradient(135deg, #6366f1 0%, #4338ca 100%); color: #fff; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease; } .contact-modal buttontypesubmit:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 12px 24px rgba(99, 102, 241, 0.35); } .contact-modal buttontypesubmit:disabled { opacity: 0.65; cursor: not-allowed; } .contact-modal-close { position: absolute; top: 18px; right: 18px; background: transparent; border: none; color: #94a3b8; font-size: 1.5rem; cursor: pointer; } .contact-modal-close:hover { color: #e2e8f0; } .contact-status { min-height: 20px; font-size: 0.9rem; margin-top: 12px; } .contact-status.success { color: #4ade80; } .contact-status.error { color: #f87171; } @keyframes pulse { 0%, 100% { opacity: 0.4; } 50% { opacity: 1; } } .counter-loading { animation: pulse 1.5s ease-in-out infinite; opacity: 0; /* Hide until content is ready */ } #images-processed-counter { opacity: 0 !important; transition: opacity 1s ease-out; } #images-processed-counter.fade-in { opacity: 1 !important; } /* Keep content hidden until parent fades in */ #images-processed-counter:not(.fade-in) span.counter-content { opacity: 0 !important; } #images-processed-counter.fade-in span.counter-content:not(.counter-loading) { opacity: 1; } @keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } /* Sports Tags Section Styles */ .sports-tags-container { overflow: hidden; position: relative; width: 100vw; margin-left: calc(-50vw + 50%); padding: 0 1rem; } .sports-tags-row { display: flex; gap: 1rem; will-change: transform; } .sports-tag { padding: 1rem 2rem; border-radius: 1.125rem; font-weight: 500; font-size: 1.25rem; white-space: nowrap; flex-shrink: 0; color: #ffffff !important; display: inline-flex; align-items: center; gap: 0.5rem; } .sports-tag svg { width: 1.25rem; height: 1.25rem; flex-shrink: 0; } @media (min-width: 768px) { .sports-tag { padding: 1.25rem 2.5rem; font-size: 1.5rem; } .sports-tag svg { width: 1.5rem; height: 1.5rem; } } .sports-tag-gradient-1 { background: linear-gradient(135deg, rgba(102, 126, 234, 0.6) 0%, rgba(53, 62, 183, 0.6) 100%); } .sports-tag-gradient-2 { background: linear-gradient(135deg, rgba(87, 122, 163, 0.6) 0%, rgba(69, 60, 152, 0.6) 100%); } .sports-tag-gradient-3 { background: linear-gradient(135deg, rgba(148, 86, 210, 0.6) 0%, rgba(106, 164, 245, 0.6) 100%); } /* How It Works Accordion Styles */ .how-it-works-box { transition: all 0.5s ease-in-out; overflow: hidden; position: relative; cursor: pointer; border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; } .how-it-works-box.collapsed { max-height: 100px; opacity: 0.6; } .how-it-works-box.collapsed .box-icon { display: none; } .how-it-works-box.collapsed p { display: none; } .how-it-works-box.expanded { max-height: 500px; opacity: 1; } .how-it-works-box.expanded .box-icon { display: flex; } .gradient-border { position: absolute; left: 0; top: 0; width: 4px; height: 0; background: linear-gradient(to bottom, #667eea, #353eb7); z-index: 1; transition: height 0.1s ease-out; } .gradient-border.animating { animation: borderGrow 5s linear forwards; } @keyframes borderGrow { from { height: 0; } to { height: 100%; } } .how-it-works-image { width: 100%; height: 525px; object-fit: cover; opacity: 1; transition: opacity 0.5s ease-in-out; } @media (max-width: 767px) { .how-it-works-image { display: none; } } /* Sticky scroll container for How It Works section */ .how-it-works-container { position: relative; } .how-it-works-sticky-wrapper { position: sticky; top: 0; z-index: 10; } .how-it-works-spacer { height: 300vh; /* Creates scroll space for 3 steps */ pointer-events: none; background: #09090b; /* Match bg-zinc-950 from section */ } /style> !-- Load Tailwind CSS with defer to ensure DOM is ready --> script srchttps://cdn.tailwindcss.com>/script> !-- AOS (Animate On Scroll) - Lightweight animation library --> link hrefhttps://unpkg.com/aos@2.3.1/dist/aos.css relstylesheet> script srchttps://unpkg.com/aos@2.3.1/dist/aos.js>/script> !-- JSON-LD Schema --> script typeapplication/ld+json> { @context: https://schema.org, @graph: { @type: SoftwareApplication, @id: https://sidelinecaptions.com/#software, name: Sideline Captions, alternateName: Sideline – AI-Generated Captions for Sports Photography, url: https://sidelinecaptions.com/, applicationCategory: PhotographySoftware, operatingSystem: macOS, softwareVersion: 2.5, datePublished: 2025-10-27, description: Sideline Captions is a macOS app that automatically generates professional, industry-standard captions for sports photos using AI. It identifies players via Photo Mechanic code-replacement rosters, understands game action, and writes captions directly into image metadata. Supports AP, Getty, and Imagn caption styles and includes FTP automation for remote workflows., creator: { @type: Person, name: Crawford Ifland, url: https://crawfordifland.com/, sameAs: https://crawfordifland.com/ }, publisher: { @type: Organization, name: Ifland Visuals, url: https://iflandvisuals.com/, logo: https://sidelinecaptions.com/logo.png }, featureList: Automatic AI-generated sports photo captions, Integration with Photo Mechanic code replacements, AP, Getty, and Imagn caption styles, Supports JPEG and RAW files, Local folder and FTP monitoring, Writes captions directly to XMP metadata, Support for 9 popular sports, including basketball, baseball, football, soccer, and more , audience: { @type: Audience, audienceType: Sports photographers, wire service photographers, photo editors, athletic departments }, offers: { @type: Offer, name: Free Trial, price: 0.00, priceCurrency: USD, availability: https://schema.org/InStock, url: https://sidelinecaptions.com/, description: Free tier with 500 AI-generated captions included. }, { @type: Offer, name: Sideline Captions Pro – Lifetime License, price: 49.00, priceCurrency: USD, availability: https://schema.org/InStock, url: https://sidelinecaptions.com/, description: One-time purchase for a lifetime Sideline Captions license with unlimited AI-generated captions and FTP automation. } }, { @type: Product, @id: https://sidelinecaptions.com/#product, name: Sideline Captions Pro, brand: { @type: Brand, name: Sideline Captions }, image: https://sidelinecaptions.com/images/app-preview.png, description: Lifetime-licensed macOS app that generates AI captions for sports photos., sku: SIDELINE-PRO, category: Photography Software, url: https://sidelinecaptions.com/, offers: { @type: Offer, price: 49.00, priceCurrency: USD, availability: https://schema.org/InStock, url: https://sidelinecaptions.com/ }, aggregateRating: { @type: AggregateRating, ratingValue: 5.0, reviewCount: 12 } } } /script> script typeapplication/ld+json> { @context: https://schema.org, @type: FAQPage, mainEntity: { @type: Question, name: Which caption styles can Sideline generate?, acceptedAnswer: { @type: Answer, text: Sideline delivers newsroom-standard captions out of the box, including AP, Getty, and Imagn styles, so every frame is ready for the publications and wire services you work with most. } }, { @type: Question, name: How does Sideline identify players in my photos?, acceptedAnswer: { @type: Answer, text: Sideline connects to your Photo Mechanic Code Replacements file, so it already knows the rosters of the teams youre shooting. As soon as new images land in your watch folder, it matches images against those names, understands the play, and writes professional captions automatically. } }, { @type: Question, name: How fast does Sideline caption my images?, acceptedAnswer: { @type: Answer, text: Sideline runs quietly in the background, captioning every image within seconds of hitting your ingest folder. Because it uses JPG previews that are about 0.25MB in size, the average image takes 4.1 seconds to caption. } }, { @type: Question, name: Will Sideline fit into my existing workflow?, acceptedAnswer: { @type: Answer, text: Set Sideline to watch your ingest folder and it writes captions straight to every files metadata. It writes to industry-standard IPTC metadata files, so it slides into whatever editing software you already use. } }, { @type: Question, name: Building Code Replacements files takes a long time. Can Sideline do it for me?, acceptedAnswer: { @type: Answer, text: Paid users can generate Code Replacements files from ESPN rosters, which is perfect when you do not receive rosters ahead of time or need quick updates before the game. } }, { @type: Question, name: Does it handle multiple sports and teams?, acceptedAnswer: { @type: Answer, text: Sideline understands nine popular sports out of the box, with more coming soon, and you can feed it as many rosters as you need, making it ideal for athletic departments, freelancers, and wire shooters covering multiple teams. } }, { @type: Question, name: How does Sidelines FTP mode work?, acceptedAnswer: { @type: Answer, text: Sidelines FTP mode watches a remote FTP server. When new images are added, Sideline downloads and captions them automatically so they are ready to edit and publish as soon as you return from the field. } }, { @type: Question, name: Can I tweak the captions before I publish?, acceptedAnswer: { @type: Answer, text: Captions are written directly to the IPTC metadata, so you can review or fine-tune them in Photo Mechanic, Lightroom, or any editor you already use. Sideline simply drafts the heavy lifting. } }, { @type: Question, name: Whats included in the free trial?, acceptedAnswer: { @type: Answer, text: The free trial gives you 500 AI-generated captions with no credit card required, letting you see Sideline in action on a real assignment before upgrading to lifetime access. } }, { @type: Question, name: Is Sideline Captions a subscription?, acceptedAnswer: { @type: Answer, text: A lifetime license to Sideline Captions is a one-time $49 purchase. You supply your own OpenAI API key for caption generation, which typically costs about one dollar per 1,000 captioned images. } }, { @type: Question, name: How does referral credit work?, acceptedAnswer: { @type: Answer, text: Share your in-app referral code with colleagues so they save $10 on a lifetime license while you receive a $10 refund. } }, { @type: Question, name: What are the system requirements?, acceptedAnswer: { @type: Answer, text: Sideline Captions requires macOS 14.0+. While it can work independently, it is designed to be used in conjunction with Photo Mechanic for the best experience. } } } /script>/head>body classbg-zinc-950 text-gray-100> !-- Navigation --> nav classfixed top-0 w-full bg-zinc-950/80 backdrop-blur-md z-50 border-b border-zinc-800> div classw-full px-6 sm:px-8 lg:px-12 py-4> div classflex items-center justify-between> div classflex items-center space-x-3> img srcimages/logo.png altSideline Captions Logo classh-8 w-8 rounded-xl> div classtext-2xl font-bold gradient-text> span classmd:hidden>Sideline Captions/span> span classhidden md:inline>Sideline Captions/span> /div> /div> div classhidden md:flex space-x-8> a href#how-it-works classtext-gray-400 hover:text-white transition-colors>How It Works/a> a href#benefits classtext-gray-400 hover:text-white transition-colors>Benefits/a> a href#features classtext-gray-400 hover:text-white transition-colors>Features/a> a href#roster-manager classtext-gray-400 hover:text-white transition-colors>Roster Managersup>✨/sup>/a> a href#pricing classtext-gray-400 hover:text-white transition-colors>Pricing/a> a href#faqs classtext-gray-400 hover:text-white transition-colors>FAQ/a> /div> div classflex items-center space-x-3> a hrefhttps://sidelinecaptions.com/downloads/ classdownload-button hidden md:inline-block bg-gradient-to-r from-#667eea to-#353eb7 text-white px-4 md:px-6 py-2 rounded-lg font-semibold hover:shadow-lg transition-all data-aosfade data-aos-duration600 data-aos-delay100> span classhidden md:inline>Download for Free/span> /a> !-- Hamburger Menu Button --> button idmobile-menu-button classmd:hidden text-gray-400 hover:text-white transition-colors p-2 aria-labelToggle menu> svg idmenu-icon classw-6 h-6 fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM4 6h16M4 12h16M4 18h16>/path> /svg> svg idclose-icon classw-6 h-6 hidden fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM6 18L18 6M6 6l12 12>/path> /svg> /button> /div> /div> /div> !-- Mobile Menu --> div idmobile-menu classhidden bg-zinc-950 border-t border-zinc-800 max-h-calc(100vh-73px) overflow-y-auto> div classpx-6 py-4 space-y-4> a href#how-it-works classblock text-gray-400 hover:text-white transition-colors py-2>How It Works/a> a href#benefits classblock text-gray-400 hover:text-white transition-colors py-2>Benefits/a> a href#features classblock text-gray-400 hover:text-white transition-colors py-2>Features/a> a href#roster-manager classblock text-gray-400 hover:text-white transition-colors py-2>Roster Managersup>✨/sup>/a> a href#pricing classblock text-gray-400 hover:text-white transition-colors py-2>Pricing/a> a href#faqs classblock text-gray-400 hover:text-white transition-colors py-2>FAQ/a> button typebutton idcontact-link-mobile classblock text-gray-400 hover:text-white transition-colors py-2 bg-transparent border-none cursor-pointer text-left w-full>Contact/button> /div> /div> /nav> !-- Hero Section --> section classpt-32 pb-0 px-6 sm:px-8 lg:px-12 bg-zinc-950> div classmax-w-7xl mx-auto text-center> h1 classtext-4xl sm:text-5xl md:text-5xl lg:text-6xl font-bold mb-6 leading-tight text-white> span classmd:hidden> span data-aosfade data-aos-duration500 data-aos-delay50>You Shoot./span> br> span data-aosfade data-aos-duration500 data-aos-delay350 classgradient-text>Sideline Captions./span> /span> span classhidden md:inline> span data-aosfade data-aos-duration1200 data-aos-delay0 classinline-block>You Shoot./span> span data-aosfade data-aos-duration1200 data-aos-delay700 classgradient-text inline-block md:ml-2>Sideline Captions./span> /span> /h1> p classtext-base md:text-xl lg:text-2xl text-gray-400 max-w-3xl mx-auto mb-12 leading-normal md:leading-relaxed data-aosfade data-aos-duration1000 data-aos-delay1200> Designed for sports photographers on deadline, Sideline automatically captions your images—delivering fast, accurate, professional results before the final whistle. /p> div classflex flex-col sm:flex-row gap-4 justify-center items-center mb-6> a hrefhttps://sidelinecaptions.com/downloads/ classdownload-button hidden md:inline-flex gradient-bg text-white px-6 py-3 md:px-8 md:py-4 rounded-lg md:rounded-xl font-semibold text-base md:text-lg hover:shadow-xl transition-all transform hover:scale-105 data-aosfade data-aos-duration600 data-aos-delay1900> Download for Free /a> div data-aosfade data-aos-duration600 data-aos-delay1800 classflex justify-center> button typebutton idemail-link-tertiary classmobile-only-message bg-zinc-800 text-gray-300 px-6 pt-3 pb-2 rounded-lg border border-zinc-700 text-center max-w-sm> div classflex items-center justify-center gap-2 mb-0> svg classw-5 h-5 fillcurrentColor viewBox0 0 24 24> path dM17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z/> /svg> span classfont-semibold text-lg>Available for Mac/span> /div> p classtext-10px text-gray-400 -mt-0.5>Email me the download link/p> /button> /div> button idvideo-modal-button classbg-zinc-800 hover:bg-zinc-700 text-white px-6 py-3 md:px-8 md:py-4 rounded-lg md:rounded-xl font-semibold text-base md:text-lg transition-all transform hover:scale-105 flex items-center gap-2 border border-zinc-700 hover:border-zinc-600 data-aosfade data-aos-duration600 data-aos-delay2100> svg classw-5 h-5 fillcurrentColor viewBox0 0 24 24> path dM8 5v14l11-7z/> /svg> See It In Action (6:33) /button> /div> !-- Stats Counter: Under hero buttons, smaller text --> div classmt-0 mb-0 flex justify-center idimages-processed-counter> p classtext-xs md:text-sm text-gray-400 mb-0 pb-0> span classinline-block counter-loading counter-content>/span> /p> /div> div classmd:hidden mt-4 overflow-hidden rounded-t-2xl shadow-2xl mx-auto -mx-3 sm:-mx-4 px-3 sm:px-4 pb-0 data-aosfade data-aos-duration800 data-aos-delay4000> img srcimages/mobile-hero.webp altSideline Captions App Interface classw-full h-full object-contain object-top> /div> div classhidden md:block mt-6 overflow-hidden rounded-t-2xl shadow-2xl mx-auto max-w-5xl hero-image-container styleheight: 480px; data-aosfade data-aos-duration800 data-aos-delay4000> img srcimages/hero.webp altSideline Captions App Interface classw-full h-full object-cover object-top> /div> /div> /section> !-- Problem/Solution Section --> section idwhy-sideline classpb-16 md:pb-32 pt-12 md:pt-16 px-6 sm:px-8 lg:px-12 bg-zinc-900 relative> div classabsolute inset-0 bg-cover bg-center bg-no-repeat opacity-20 stylebackground-image: url(images/lenses.webp);>/div> div classabsolute inset-0 bg-black/55>/div> div classmax-w-4xl mx-auto text-center relative z-10> p classtext-3xl md:text-5xl gradient-text font-semibold mb-6 leading-tight md:leading-normal data-aosfade data-aos-duration600> Captions matter. /p> p classtext-base md:text-xl lg:text-2xl text-gray-300 leading-normal md:leading-relaxed mb-6> Publications need them. Your clients expect them.br>But lets be honest: writing captions kinda sucks. /p> p classtext-base md:text-xl lg:text-2xl text-gray-300 leading-normal md:leading-relaxed mb-6> You know the feeling—stuck typing player names and play descriptions when you’d rather be shooting or editing. Imagine reclaiming that time for what actually matters: your creativity, your clients, and your business. /p> p classtext-base md:text-xl lg:text-2xl text-gray-300 leading-normal md:leading-relaxed mb-8> span classgradient-text>strong>Sideline fixes that./strong>/span> It identifies players from your Photo Mechanic roster, understands the action, and produces professional captions in newsroom-standard formats like AP and Getty—i>automatically, instantly, and accurately./i> /p> div classflex flex-col md:flex-row items-center md:justify-center gap-4 md:gap-6> a hrefhttps://sidelinecaptions.com/downloads/ classdownload-button desktop-download hidden md:inline-flex gradient-bg text-white px-8 py-4 rounded-xl font-semibold text-lg data-aosfade data-aos-duration600 data-aos-delay200> Download for Free /a> div classflex justify-center md:hidden> button typebutton idemail-link-button classdownload-button mobile-download flex flex-col items-center gap-0 bg-zinc-800 text-gray-200 px-6 pt-3 pb-2 rounded-xl font-semibold text-lg border border-zinc-700 hover:bg-zinc-700 transition-all transform hover:scale-105 data-aosfade data-aos-duration600 data-aos-delay200> span classflex items-center gap-2> svg classw-5 h-5 fillcurrentColor viewBox0 0 24 24> path dM17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z/> /svg> span classtext-lg>Available for Mac/span> /span> span classtext-10px text-gray-400 -mt-0.5>Email me the download link/span> /button> /div> /div> /a> /div> /div> /section> !-- How It Works Section --> div classhow-it-works-container> section idhow-it-works classhow-it-works-sticky-wrapper pt-12 md:pt-24 pb-24 px-6 sm:px-8 lg:px-12 bg-zinc-950> div classmax-w-7xl mx-auto> div classtext-center mb-8> h2 classtext-3xl md:text-5xl font-bold mb-4 bg-clip-text text-transparent bg-gradient-to-r from-#667eea to-#353eb7 leading-normal md:leading-normal data-aosfade data-aos-duration600>How Sideline Works/h2> p classtext-xl text-gray-400 max-w-2xl mx-auto data-aosfade data-aos-duration600 data-aos-delay200> Learn how Sidelines AI helps you caption sports photos faster—saving you time, stress, and late nights. /p> /div> div classflex justify-center mb-12 hidden md:flex> button idvideo-modal-button classinline-flex items-center gap-3 bg-zinc-800 hover:bg-zinc-700 text-white px-8 py-4 rounded-xl font-semibold text-lg transition-all transform hover:scale-105 border border-zinc-700 hover:border-zinc-600 data-aosfade data-aos-duration600 data-aos-delay200> svg classw-6 h-6 fillcurrentColor viewBox0 0 24 24> path dM8 5v14l11-7z/> /svg> Watch Demo Video (6:33) /button> /div> !-- Two Column Layout: Image Left, Accordion Right --> div classgrid md:grid-cols-2 gap-8 lg:gap-12> !-- Left Column: Image --> div classflex items-center justify-center> div classrelative w-full rounded-2xl overflow-hidden> img idhow-it-works-main-image srcimages/step1.webp altHow Sideline Works classhow-it-works-image rounded-2xl> /div> /div> !-- Right Column: Accordion Boxes --> div classflex flex-col gap-4> !-- Box 1: Set Your Watch Folder --> div idhow-it-works-box-1 classhow-it-works-box expanded bg-zinc-800 rounded-2xl border border-zinc-700 p-6 md:p-8> div classgradient-border>/div> div classpl-6> div classbox-icon w-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z>/path> /svg> /div> h3 classtext-lg md:text-2xl font-bold mb-4 text-white>1. Set Your Watch Folder/h3> p classtext-gray-300 leading-relaxed> Choose a folder to watch on your computer and Sideline will automatically caption new images as theyre ingested. /p> /div> /div> !-- Box 2: Add Your Roster --> div idhow-it-works-box-2 classhow-it-works-box collapsed bg-zinc-800 rounded-2xl border border-zinc-700 p-6 md:p-8> div classgradient-border>/div> div classpl-6> div classbox-icon w-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z>/path> /svg> /div> h3 classtext-lg md:text-2xl font-bold mb-4 text-white>2. Add Your Roster/h3> p classtext-gray-300 leading-relaxed> Point Sideline to a Photo Mechanic Code Replacements file so it understands players and teams. Dont have a Code Replacements file? strong classbg-clip-text text-transparent bg-gradient-to-r from-#667eea to-#353eb7>Sidelines Roster Manager/strong> strong>can create one for you/strong>.sup>✨/sup> /p> /div> /div> !-- Box 3: Get Publication-Ready Captions --> div idhow-it-works-box-3 classhow-it-works-box collapsed bg-zinc-800 rounded-2xl border border-zinc-700 p-6 md:p-8> div classgradient-border>/div> div classpl-6> div classbox-icon w-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM13 10V3L4 14h7v7l9-11h-7z>/path> /svg> /div> h3 classtext-lg md:text-2xl font-bold mb-4 text-white>3. Get Publication-Ready Captions/h3> p classtext-gray-300 leading-relaxed> Every caption matches the style your publication expects. Whether you need AP, Getty, or Imagn, Sideline delivers captions that are ready to publish instantly. /p> /div> /div> /div> /div> div classflex justify-center mt-8 md:hidden> button typebutton classdownload-button mobile-download flex flex-col items-center gap-0 bg-zinc-800 text-gray-200 px-6 pt-3 pb-2 rounded-xl font-semibold text-lg border border-zinc-700 hover:bg-zinc-700 transition-all transform hover:scale-105> span classflex items-center gap-2> svg classw-5 h-5 fillcurrentColor viewBox0 0 24 24> path dM17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z/> /svg> span classtext-lg>Available for Mac/span> /span> span classtext-10px text-gray-400 -mt-0.5>Email me the download link/span> /button> /div> /div> /section> div classhow-it-works-spacer>/div> /div> !-- Benefits Section --> section idbenefits classpt-12 md:pt-24 pb-24 px-6 sm:px-8 lg:px-12 bg-zinc-900> div classmax-w-7xl mx-auto> div classtext-center mb-16> h2 classtext-3xl md:text-5xl font-bold mb-4 bg-clip-text text-transparent bg-gradient-to-r from-#667eea to-#353eb7 leading-normal data-aosfade data-aos-duration600>The Sideline Advantage/h2> p classtext-xl text-gray-400 max-w-2xl mx-auto data-aosfade data-aos-duration600 data-aos-delay200> See how Sidelines AI captioning can save you time, energy, and frustration every game. /p> /div> div classgrid md:grid-cols-2 lg:grid-cols-3 gap-8> !-- Benefit 1: Save Time --> div classfeature-card bg-zinc-800 p-4 md:p-8 rounded-2xl border border-zinc-700 text-center md:text-left> div classw-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6 mx-auto md:mx-0> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z>/path> /svg> /div> h3 classtext-lg md:text-2xl font-bold mb-4 text-white>Save Time Every Game/h3> p classtext-gray-300 leading-relaxed> Stop wasting time manually writing captions. Sideline watches your ingest folder and automatically generates professional captions in the background for every image as theyre ingested. /p> /div> !-- Benefit 4: Set It and Forget It --> div classfeature-card bg-zinc-800 p-4 md:p-8 rounded-2xl border border-zinc-700 text-center md:text-left> div classw-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6 mx-auto md:mx-0> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z>/path> /svg> /div> h3 classtext-lg md:text-2xl font-bold mb-4 text-white>Set It and Forget It/h3> p classtext-gray-300 leading-relaxed> Configure once, then let Sideline handle the rest. Captions are written directly to your images metadata, so theyre ready when you import into your image editing software. /p> /div> !-- Benefit 5: Deliver On Deadline --> div classfeature-card bg-zinc-800 p-4 md:p-8 rounded-2xl border border-zinc-700 text-center md:text-left> div classw-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6 mx-auto md:mx-0> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM13 7h8m0 0v8m0-8l-8 8-4-4-6 6>/path> /svg> /div> h3 classtext-lg md:text-2xl font-bold mb-4 text-white>Deliver On Deadline/h3> p classtext-gray-300 leading-relaxed> When every minute counts, Sideline ensures you never miss a deadline. Images are captioned in seconds, giving you more time to shoot, edit, and upload. /p> /div> /div> /div> /section> !-- Time Savings Section --> section classw-full pt-12 md:pt-24 pb-24 px-6 sm:px-8 lg:px-12 bg-black> div classmax-w-4xl mx-auto flex flex-col items-center> h2 classtext-3xl md:text-4xl lg:text-5xl font-bold mb-8 text-center bg-clip-text text-transparent bg-gradient-to-r from-#667eea to-#353eb7 leading-normal md:leading-normal lg:leading-normal data-aosfade data-aos-duration600>See How Much Time You Could Save/h2> p classtext-lg md:text-xl text-gray-200 text-center max-w-3xl mb-16 data-aosfade data-aos-duration600 data-aos-delay200> span classblock md:inline-block md:max-w-2xl lg:max-w-4xl xl:max-w-6xl mx-auto w-full px-2 md:px-6> Sideline is span classfont-bold text-white>7.3x faster/span> than manual captioning – reducing captioning time from span classfont-semibold text-gray-100>30 seconds per image/span> to just span classfont-semibold bg-clip-text text-transparent bg-gradient-to-r from-#667eea to-#353eb7>4.1 seconds per image./span> br>Youll save time every game and deliver results faster. /span> /p> !-- Bar Chart --> div idbar-chart-container classw-full flex items-end justify-center gap-8 md:gap-12 styleheight: 450px;> !-- Bar 1 --> div classflex flex-col items-center flex-1 max-w-44 h-full> div classrelative w-full h-full flex flex-col items-end justify-end mb-2> div classbar-chart-bar bar-1 relative w-full rounded-t-lg bg-zinc-700 styleheight: 100%; min-height: 20px; transform-origin: bottom; transform: scaleY(0);> span classabsolute top-0 left-1/2 transform -translate-x-1/2 -translate-y-full text-white text-xs font-normal whitespace-nowrap mb-4 pb-2>30 seconds/image/span> /div> /div> span classtext-gray-400 text-sm text-center mt-2>Manual Captioning/span> /div> !-- Bar 2 --> div classflex flex-col items-center flex-1 max-w-44 h-full> div classrelative w-full h-full flex flex-col items-end justify-end mb-2> div classbar-chart-bar bar-2 relative w-full rounded-t-lg bg-zinc-600 styleheight: 66.7%; min-height: 20px; transform-origin: bottom; transform: scaleY(0);> span classabsolute top-0 left-1/2 transform -translate-x-1/2 -translate-y-full text-white text-xs font-normal whitespace-nowrap mb-4 pb-2>20 seconds/image/span> /div> /div> span classtext-gray-400 text-sm text-center mt-2 md:whitespace-nowrap>Code Replacements/span> /div> !-- Bar 3 --> div classflex flex-col items-center flex-1 max-w-44 h-full> div classrelative w-full h-full flex flex-col items-end justify-end mb-2> div classbar-chart-bar bar-3 relative w-full rounded-t-lg style height: 13.7%; min-height: 20px; background: linear-gradient(to top, #667eea, #353eb7); transform-origin: bottom; transform: scaleY(0); > span classabsolute top-0 left-1/2 transform -translate-x-1/2 -translate-y-full text-white text-sm font-extrabold whitespace-nowrap mb-4 pb-2>4.1 seconds/image/span> /div> /div> span classtext-gray-200 text-sm font-semibold text-center mt-2 flex items-center justify-center gap-1.5> img srcimages/logo.png altSideline Captions classw-4 h-4 object-contain rounded> Sideline Captions /span> /div> /div> !-- Download buttons --> div classmt-8 flex justify-center> a hrefhttps://sidelinecaptions.com/downloads/ classdownload-button desktop-download hidden md:inline-flex gradient-bg text-white px-8 py-4 rounded-xl font-semibold text-lg hover:shadow-xl transition-all transform hover:scale-105 data-aosfade data-aos-duration600 data-aos-delay1000> Download for Free /a> div classflex justify-center md:hidden> button typebutton idemail-link-button-time-savings classdownload-button mobile-download flex flex-col items-center gap-0 bg-zinc-800 text-gray-200 px-6 pt-3 pb-2 rounded-xl font-semibold text-lg border border-zinc-700 hover:bg-zinc-700 transition-all transform hover:scale-105 data-aosfade data-aos-duration600 data-aos-delay1000> span classflex items-center gap-2> svg classw-5 h-5 fillcurrentColor viewBox0 0 24 24> path dM17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z/> /svg> span classtext-lg>Available for Mac/span> /span> span classtext-10px text-gray-400 -mt-0.5>Email me the download link/span> /button> /div> /div> /div> /section> !-- Testimonial Section --> section classpt-12 md:pt-24 pb-24 px-6 sm:px-8 lg:px-12 bg-zinc-900> div classmax-w-4xl mx-auto> div classbg-zinc-900 border border-zinc-700 rounded-3xl p-6 md:p-10 text-center> div classflex justify-center gap-1 mb-6 text-#facc15> svg classw-6 h-6 fillcurrentColor viewBox0 0 20 20 aria-hiddentrue> path dM9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118l-2.8-2.034c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z>/path> /svg> svg classw-6 h-6 fillcurrentColor viewBox0 0 20 20 aria-hiddentrue> path dM9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118l-2.8-2.034c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z>/path> /svg> svg classw-6 h-6 fillcurrentColor viewBox0 0 20 20 aria-hiddentrue> path dM9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118l-2.8-2.034c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z>/path> /svg> svg classw-6 h-6 fillcurrentColor viewBox0 0 20 20 aria-hiddentrue> path dM9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118l-2.8-2.034c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z>/path> /svg> svg classw-6 h-6 fillcurrentColor viewBox0 0 20 20 aria-hiddentrue> path dM9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118l-2.8-2.034c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z>/path> /svg> /div> blockquote classtext-xl md:text-2xl text-gray-200 italic mb-6> Sideline cut my postgame workflow from two hours to 20 minutes. I used to dread captioning, but now I just have Sideline do it for me. My clients think I hired an assistant. /blockquote> p classtext-lg font-bold text-white>Michael K./p> p classtext-base font-medium text-gray-300>Freelance Sports Photographer/p> /div> div classmt-8 md:hidden flex justify-center> button typebutton classdownload-button mobile-download flex flex-col items-center gap-0 bg-zinc-800 text-gray-200 px-6 pt-3 pb-2 rounded-xl font-semibold text-lg border border-zinc-700 hover:bg-zinc-700 transition-all transform hover:scale-105> span classflex items-center gap-2> svg classw-5 h-5 fillcurrentColor viewBox0 0 24 24> path dM17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z/> /svg> span classtext-lg>Available for Mac/span> /span> span classtext-10px text-gray-400 -mt-0.5>Email me the download link/span> /button> /div> /div> /section> !-- Sports Tags Section --> section classsports-tags-section py-12 md:py-16 px-0 bg-zinc-950 overflow-hidden w-full> div classsports-tags-container> !-- Top Row - Animates right on scroll down, left on scroll up --> div classsports-tags-row sports-tags-row-top mb-4> !-- Mix of sports and features for continuous coverage --> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM49.6582 121.729L55.1758 123.047C60.7422 106.348 59.5215 87.5 50.1465 71.2402C40.7227 55.0293 25.0977 44.5312 7.91016 40.9668L6.34766 46.3867C21.9727 49.5605 36.3281 59.1797 45.0195 74.1699C53.7109 89.2578 54.8828 106.494 49.6582 121.729ZM22.8516 56.3477L28.2715 45.8984C28.9551 44.5801 28.5156 43.0664 27.2461 42.4805C25.9277 41.748 24.3652 42.041 23.6816 43.457L18.3105 53.8086C17.5781 55.1758 18.0664 56.7383 19.3848 57.373C20.6543 58.0078 22.168 57.7148 22.8516 56.3477ZM34.668 64.7461L42.9199 56.25C43.9941 55.1758 43.8965 53.6133 42.8711 52.6855C41.7969 51.6602 40.2344 51.5137 39.1602 52.6367L30.957 61.0352C29.8828 62.1094 29.9805 63.7695 31.0547 64.7461C32.0801 65.7227 33.5938 65.8203 34.668 64.7461ZM43.8477 77.6855L54.1992 72.0215C55.5664 71.2891 55.9082 69.6777 55.127 68.5059C54.4434 67.2363 52.9297 66.6992 51.6113 67.4316L41.3574 73.0957C39.9902 73.877 39.6484 75.4883 40.3809 76.6602C41.1621 77.9297 42.5293 78.418 43.8477 77.6855ZM48.877 92.5293L60.3516 89.6973C61.7676 89.3066 62.5488 87.8906 62.207 86.5234C61.8164 85.1562 60.498 84.2285 59.0332 84.6191L47.6562 87.4512C46.1914 87.8418 45.4102 89.2578 45.752 90.625C46.1426 91.9922 47.4121 92.9199 48.877 92.5293ZM49.6094 107.617L61.3281 108.154C62.8418 108.203 63.9648 107.031 64.0137 105.664C64.0137 104.248 62.9883 103.027 61.4746 102.979L49.8047 102.393C48.291 102.344 47.168 103.516 47.1191 104.932C47.0703 106.348 48.1445 107.52 49.6094 107.617ZM119.043 86.1816L120.557 80.7129C104.834 77.5879 90.5273 67.9199 81.8359 52.9297C73.1934 37.8418 72.0215 20.6055 77.1484 5.41992L71.6309 4.15039C66.1133 20.752 67.334 39.5996 76.7578 55.8594C86.1328 72.168 101.807 82.5684 119.043 86.1816ZM77.1973 24.8535C78.7598 24.9512 79.834 23.877 79.834 22.3633C79.9316 20.9473 78.8574 19.7266 77.3926 19.6777L65.6738 19.0918C64.1602 19.043 63.0371 20.2148 63.0371 21.6797C62.9395 23.0469 63.9648 24.2676 65.4785 24.3164ZM78.6133 39.4531C80.1758 39.0625 80.8594 37.6465 80.4688 36.2793C80.1758 34.9121 78.8574 33.9844 77.3926 34.375L65.918 37.207C64.4531 37.5977 63.7695 39.0625 64.209 40.3809C64.502 41.7969 65.7715 42.6758 67.2363 42.2852ZM85.498 53.9551C86.8652 53.1738 87.1582 51.7578 86.4746 50.3906C85.8398 49.2188 84.2773 48.584 83.0078 49.3652L72.6562 55.1758C71.3379 55.8594 71.0449 57.4707 71.7773 58.6914C72.3633 59.9121 73.9258 60.498 75.2441 59.7168ZM95.9961 65.5273C97.1191 64.3555 97.0215 62.7441 95.8984 61.7676C94.9219 60.8398 93.3594 60.7422 92.2852 61.8164L84.0332 70.2637C83.0078 71.2891 83.1055 72.9004 84.1797 73.9258C85.1562 74.8535 86.7188 74.9023 87.793 73.877ZM108.691 73.4863C109.424 72.168 108.838 70.6543 107.617 69.9219C106.348 69.2871 104.785 69.6777 104.102 70.9473L98.6816 81.3965C97.9492 82.7148 98.4863 84.2285 99.707 84.9121C100.977 85.5469 102.588 85.1562 103.223 83.8379ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Baseball/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z/>/svg>Smart Player Identification/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM5.9082 68.2617C22.998 44.7266 49.4629 29.7363 79.9805 29.7363C92.1875 29.7363 103.662 32.0801 114.551 36.7188L112.939 29.3945C102.686 25.6348 91.4551 23.5352 79.9805 23.5352C47.9492 23.5352 19.5312 39.4531 1.51367 63.7695ZM113.428 93.3105L119.336 91.6504C109.766 58.7891 55.4688 51.4648 55.4688 24.5605C55.4688 16.2109 59.9121 10.1074 67.8223 6.15234L63.2812 1.5625C54.7852 6.44531 49.2676 14.6973 49.2676 24.5605C49.2676 56.3477 104.932 64.6973 113.428 93.3105ZM21.9238 108.252L29.248 109.326C19.7266 91.0156 29.1016 64.5996 27.5391 41.9434C27.0996 36.2305 23.4375 25.3418 16.8457 23.7793L15.0879 29.7852C18.4082 29.9805 21.0938 38.1348 21.3379 42.4316C22.7539 62.4512 14.2578 88.1348 21.9238 108.252ZM72.4609 123.145L77.3926 119.434C40.2832 73.3398 34.8145 23.291 40.9668 9.76562L34.2773 10.498C29.1992 29.1992 36.6699 78.4668 72.4609 123.145ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Basketball/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z/>/svg>Team Recognition/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM64.6943 26.9043C72.165 26.9043 78.1221 20.8984 78.1221 13.4766C78.1221 6.00586 72.165-1.42109e-14 64.6943-1.42109e-14C57.2236-1.42109e-14 51.2178 6.00586 51.2178 13.4766C51.2178 20.8984 57.2236 26.9043 64.6943 26.9043ZM43.6006 80.8594L67.3799 94.2383L51.999 107.471C48.7764 110.205 48.7764 113.818 50.7783 116.064C52.8779 118.408 56.4912 118.799 59.8115 115.967L81.1982 97.7539C84.0791 95.2637 83.5908 89.9902 80.124 87.7441L56.833 72.4609L61.4717 56.3477C62.1064 53.9551 64.792 53.6621 66.208 55.7129L73.0439 65.6738C74.6553 67.9687 77.5361 68.8477 80.1728 67.6758L99.8017 58.8867C103.269 57.373 104.538 54.3945 103.024 51.2695C101.56 48.1934 98.581 47.2656 95.1631 48.7793L79.5381 55.7129L68.7471 40.8203C63.1806 33.1055 56.2471 30.0293 44.9189 30.8594L23.0928 32.4219C19.7236 32.666 17.331 34.9121 16.8916 38.4277L13.9619 60.5469C13.4248 64.3555 15.2803 66.9922 18.6982 67.334C22.0674 67.6758 24.2646 65.6738 24.8017 61.9141L27.4873 43.75L36.2764 43.1641C38.3271 42.9687 40.1826 44.4336 39.499 46.7773L34.4697 64.5996C31.4424 75 38.2295 77.832 43.6006 80.8594ZM2.09666 134.424C4.44041 136.426 7.90721 136.572 10.9834 133.594L31.0517 113.721C32.7607 112.012 33.1025 111.621 34.1279 109.033L42.6728 87.0117L40.7197 85.9375C35.9834 83.3008 32.6631 80.7617 30.5146 77.9297L23.0928 104.395L2.19432 125.146C-0.979509 128.271-0.4424 132.178 2.09666 134.424Z transformscale(0.176) translate(-10, -5) fill-opacity0.85/>/svg>Cross Country/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z/>/svg>Roster Management/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM98.872 98.8713C123.14 74.6037 131.685 40.3752 123.579 13.6174C121.528 6.97675 119.575 5.02363 112.935 2.97284C86.2255-5.13262 51.9482 3.4123 27.6318 27.6799C3.41302 51.9475-5.13191 86.2248 2.97356 112.934C4.97552 119.574 6.97747 121.576 13.6181 123.578C40.3759 131.684 74.5556 123.139 98.872 98.8713ZM92.5732 92.5725C70.9423 114.301 42.4755 122.26 16.5478 115.082C12.9833 114.154 12.3974 113.569 11.372 109.809C4.38958 84.0275 12.2997 55.5607 33.9306 33.9787C55.5615 12.2502 83.9794 4.34003 109.761 11.3713C113.569 12.3967 114.155 13.0314 115.132 16.5959C122.261 42.4748 114.253 70.9904 92.5732 92.5725ZM73.4814 4.58417L66.499 11.6154L114.936 60.1018L122.017 53.0705ZM4.63372 73.4807L53.0712 122.016L60.1025 114.936L11.6161 66.4982ZM37.788 75.7756L50.7763 88.7639C51.8017 89.7404 53.3154 89.7404 54.3408 88.7639C55.3173 87.7385 55.3173 86.1271 54.3408 85.1018L41.4013 72.1623C40.3759 71.1857 38.7646 71.1857 37.788 72.1623C36.7626 73.1877 36.7626 74.7502 37.788 75.7756ZM46.3818 67.0842L59.4189 80.1213C60.3954 81.0978 62.0068 81.0978 62.9833 80.1213C63.9599 79.0959 63.9599 77.4846 62.9833 76.4592L50.0439 63.5197C49.0185 62.5432 47.4072 62.5432 46.3818 63.5197C45.454 64.5451 45.454 66.1076 46.3818 67.0842ZM55.0732 58.4416L68.0615 71.4787C69.038 72.4553 70.6493 72.4553 71.6747 71.4787C72.6025 70.4533 72.6025 68.842 71.6747 67.8654L58.6376 54.8771C57.7099 53.9006 56.0497 53.9006 55.0732 54.8771C54.0966 55.9025 54.0966 57.465 55.0732 58.4416ZM63.7158 49.8967L76.6552 62.8361C77.6806 63.7639 79.2919 63.7639 80.3173 62.8361C81.2939 61.8107 81.2939 60.2482 80.3173 59.2228L67.329 46.2346C66.3036 45.258 64.7411 45.258 63.7158 46.2346C62.7392 47.2111 62.7392 48.8713 63.7158 49.8967ZM72.3583 41.2053L85.2978 54.1447C86.3232 55.1213 87.9345 55.1213 88.9599 54.1447C89.9365 53.1682 89.9365 51.5568 88.9599 50.5803L75.9228 37.5432C74.9462 36.6154 73.3837 36.6154 72.3583 37.5432C71.3818 38.5685 71.3818 40.1799 72.3583 41.2053ZM47.3583 82.8068L82.8075 47.3088L79.2431 43.7443L43.7939 79.2424Z transformscale(0.19) translate(-2, -2) fill-opacity0.85/>/svg>Football/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z/>/svg>Caption Generation/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z>/path>/svg>Photo Filtering/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z/>/svg>Lacrosse/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z/>/svg>Associated Press/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM63.5742 38.3789L39.0625 57.2754L48.877 87.5L78.3203 87.5L88.0859 57.2754ZM85.6934 9.42383L63.5254 2.44141L41.3086 9.42383L63.5254 27.3438ZM60.498 4.6875L60.498 45.6055L66.6992 45.6055L66.6992 4.6875ZM107.568 25.3418L99.3164 52.5879L124.17 66.5039L119.678 40.6738ZM121.387 46.9238L119.043 41.2598L81.1035 56.5918L83.4473 62.3047ZM78.0762 121.045L99.1699 111.963L113.916 93.7012L84.5215 93.3105ZM100.83 109.277L75.6836 77.002L70.7031 80.7617L95.9473 112.988ZM49.0234 120.85L42.5781 93.1152L13.1836 93.5059L27.9785 111.768ZM26.2695 109.082L31.2012 112.793L56.3965 80.5664L51.416 76.8066ZM19.5801 25.3418L7.51953 40.6738L3.02734 66.5039L27.8809 52.5879ZM5.76172 46.9238L43.7012 62.3047L46.0449 56.5918L8.10547 41.2598ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Soccer/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z/>/svg>Getty Images/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z/>/svg>Softball/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z/>/svg>Imagn Images/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM64.6943 26.9043C72.165 26.9043 78.1221 20.8984 78.1221 13.4766C78.1221 6.00586 72.165-1.42109e-14 64.6943-1.42109e-14C57.2236-1.42109e-14 51.2178 6.00586 51.2178 13.4766C51.2178 20.8984 57.2236 26.9043 64.6943 26.9043ZM43.6006 80.8594L67.3799 94.2383L51.999 107.471C48.7764 110.205 48.7764 113.818 50.7783 116.064C52.8779 118.408 56.4912 118.799 59.8115 115.967L81.1982 97.7539C84.0791 95.2637 83.5908 89.9902 80.124 87.7441L56.833 72.4609L61.4717 56.3477C62.1064 53.9551 64.792 53.6621 66.208 55.7129L73.0439 65.6738C74.6553 67.9687 77.5361 68.8477 80.1728 67.6758L99.8017 58.8867C103.269 57.373 104.538 54.3945 103.024 51.2695C101.56 48.1934 98.581 47.2656 95.1631 48.7793L79.5381 55.7129L68.7471 40.8203C63.1806 33.1055 56.2471 30.0293 44.9189 30.8594L23.0928 32.4219C19.7236 32.666 17.331 34.9121 16.8916 38.4277L13.9619 60.5469C13.4248 64.3555 15.2803 66.9922 18.6982 67.334C22.0674 67.6758 24.2646 65.6738 24.8017 61.9141L27.4873 43.75L36.2764 43.1641C38.3271 42.9687 40.1826 44.4336 39.499 46.7773L34.4697 64.5996C31.4424 75 38.2295 77.832 43.6006 80.8594ZM2.09666 134.424C4.44041 136.426 7.90721 136.572 10.9834 133.594L31.0517 113.721C32.7607 112.012 33.1025 111.621 34.1279 109.033L42.6728 87.0117L40.7197 85.9375C35.9834 83.3008 32.6631 80.7617 30.5146 77.9297L23.0928 104.395L2.19432 125.146C-0.979509 128.271-0.4424 132.178 2.09666 134.424Z transformscale(0.176) translate(-10, -5) fill-opacity0.85/>/svg>Track & Field/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z/>/svg>Automatic Captioning/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM89.8438 119.385L91.3574 112.402C76.8555 111.914 66.8945 88.623 64.6484 68.7012C89.209 46.4355 106.152 18.75 93.5059 8.05664L88.8672 13.4277C96.5332 19.873 83.1543 42.2363 60.0098 63.2812C37.3535 53.5645 13.7207 50 2.34375 63.0371L7.4707 67.041C16.0156 57.9102 35.791 60.5957 57.5684 70.1172C60.1074 90.8203 71.2891 117.969 89.8438 119.385ZM73.6816 100.049C115.43 74.6582 121.436 42.4805 118.262 31.9336L111.426 33.9844C113.867 42.1387 108.643 71.0449 69.1895 94.5312ZM57.0312 125.635L62.3047 119.922C51.9043 116.504 29.834 95.2148 28.8086 58.9844L21.6309 59.6191C22.7051 95.6543 43.9941 119.141 57.0312 125.635ZM80.8105 42.7734L84.1309 36.4746C66.9434 23.9746 34.7168 14.3066 11.1328 30.5664L11.377 38.1836C32.7148 21.4844 63.5742 30.3711 80.8105 42.7734ZM63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0ZM63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Volleyball/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM49.6582 121.729L55.1758 123.047C60.7422 106.348 59.5215 87.5 50.1465 71.2402C40.7227 55.0293 25.0977 44.5312 7.91016 40.9668L6.34766 46.3867C21.9727 49.5605 36.3281 59.1797 45.0195 74.1699C53.7109 89.2578 54.8828 106.494 49.6582 121.729ZM22.8516 56.3477L28.2715 45.8984C28.9551 44.5801 28.5156 43.0664 27.2461 42.4805C25.9277 41.748 24.3652 42.041 23.6816 43.457L18.3105 53.8086C17.5781 55.1758 18.0664 56.7383 19.3848 57.373C20.6543 58.0078 22.168 57.7148 22.8516 56.3477ZM34.668 64.7461L42.9199 56.25C43.9941 55.1758 43.8965 53.6133 42.8711 52.6855C41.7969 51.6602 40.2344 51.5137 39.1602 52.6367L30.957 61.0352C29.8828 62.1094 29.9805 63.7695 31.0547 64.7461C32.0801 65.7227 33.5938 65.8203 34.668 64.7461ZM43.8477 77.6855L54.1992 72.0215C55.5664 71.2891 55.9082 69.6777 55.127 68.5059C54.4434 67.2363 52.9297 66.6992 51.6113 67.4316L41.3574 73.0957C39.9902 73.877 39.6484 75.4883 40.3809 76.6602C41.1621 77.9297 42.5293 78.418 43.8477 77.6855ZM48.877 92.5293L60.3516 89.6973C61.7676 89.3066 62.5488 87.8906 62.207 86.5234C61.8164 85.1562 60.498 84.2285 59.0332 84.6191L47.6562 87.4512C46.1914 87.8418 45.4102 89.2578 45.752 90.625C46.1426 91.9922 47.4121 92.9199 48.877 92.5293ZM49.6094 107.617L61.3281 108.154C62.8418 108.203 63.9648 107.031 64.0137 105.664C64.0137 104.248 62.9883 103.027 61.4746 102.979L49.8047 102.393C48.291 102.344 47.168 103.516 47.1191 104.932C47.0703 106.348 48.1445 107.52 49.6094 107.617ZM119.043 86.1816L120.557 80.7129C104.834 77.5879 90.5273 67.9199 81.8359 52.9297C73.1934 37.8418 72.0215 20.6055 77.1484 5.41992L71.6309 4.15039C66.1133 20.752 67.334 39.5996 76.7578 55.8594C86.1328 72.168 101.807 82.5684 119.043 86.1816ZM77.1973 24.8535C78.7598 24.9512 79.834 23.877 79.834 22.3633C79.9316 20.9473 78.8574 19.7266 77.3926 19.6777L65.6738 19.0918C64.1602 19.043 63.0371 20.2148 63.0371 21.6797C62.9395 23.0469 63.9648 24.2676 65.4785 24.3164ZM78.6133 39.4531C80.1758 39.0625 80.8594 37.6465 80.4688 36.2793C80.1758 34.9121 78.8574 33.9844 77.3926 34.375L65.918 37.207C64.4531 37.5977 63.7695 39.0625 64.209 40.3809C64.502 41.7969 65.7715 42.6758 67.2363 42.2852ZM85.498 53.9551C86.8652 53.1738 87.1582 51.7578 86.4746 50.3906C85.8398 49.2188 84.2773 48.584 83.0078 49.3652L72.6562 55.1758C71.3379 55.8594 71.0449 57.4707 71.7773 58.6914C72.3633 59.9121 73.9258 60.498 75.2441 59.7168ZM95.9961 65.5273C97.1191 64.3555 97.0215 62.7441 95.8984 61.7676C94.9219 60.8398 93.3594 60.7422 92.2852 61.8164L84.0332 70.2637C83.0078 71.2891 83.1055 72.9004 84.1797 73.9258C85.1562 74.8535 86.7188 74.9023 87.793 73.877ZM108.691 73.4863C109.424 72.168 108.838 70.6543 107.617 69.9219C106.348 69.2871 104.785 69.6777 104.102 70.9473L98.6816 81.3965C97.9492 82.7148 98.4863 84.2285 99.707 84.9121C100.977 85.5469 102.588 85.1562 103.223 83.8379ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Baseball/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z/>/svg>FTP Mode/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM5.9082 68.2617C22.998 44.7266 49.4629 29.7363 79.9805 29.7363C92.1875 29.7363 103.662 32.0801 114.551 36.7188L112.939 29.3945C102.686 25.6348 91.4551 23.5352 79.9805 23.5352C47.9492 23.5352 19.5312 39.4531 1.51367 63.7695ZM113.428 93.3105L119.336 91.6504C109.766 58.7891 55.4688 51.4648 55.4688 24.5605C55.4688 16.2109 59.9121 10.1074 67.8223 6.15234L63.2812 1.5625C54.7852 6.44531 49.2676 14.6973 49.2676 24.5605C49.2676 56.3477 104.932 64.6973 113.428 93.3105ZM21.9238 108.252L29.248 109.326C19.7266 91.0156 29.1016 64.5996 27.5391 41.9434C27.0996 36.2305 23.4375 25.3418 16.8457 23.7793L15.0879 29.7852C18.4082 29.9805 21.0938 38.1348 21.3379 42.4316C22.7539 62.4512 14.2578 88.1348 21.9238 108.252ZM72.4609 123.145L77.3926 119.434C40.2832 73.3398 34.8145 23.291 40.9668 9.76562L34.2773 10.498C29.1992 29.1992 36.6699 78.4668 72.4609 123.145ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Basketball/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM18.4082 110.84L126.221 110.84C137.305 110.84 142.48 104.639 142.529 93.75L104.541 58.3496C101.66 55.6641 98.4375 54.3457 94.873 54.3457C91.3086 54.3457 88.2324 55.6152 85.3027 58.252L56.6895 83.7891L44.9219 73.0469C42.2363 70.6543 39.4531 69.3848 36.377 69.3848C33.4473 69.3848 30.8105 70.5566 28.2715 72.9492L4.39453 94.7266C5.0293 105.664 9.22852 110.84 18.4082 110.84ZM18.9941 114.795L128.906 114.795C141.553 114.795 147.949 108.398 147.949 95.9961L147.949 18.8477C147.949 6.39648 141.553 0 128.906 0L18.9941 0C6.39648 0 0 6.34766 0 18.8477L0 95.9961C0 108.496 6.39648 114.795 18.9941 114.795ZM19.1895 106.152C12.3535 106.152 8.64258 102.539 8.64258 95.5078L8.64258 19.2871C8.64258 12.3047 12.3535 8.64258 19.1895 8.64258L128.76 8.64258C135.449 8.64258 139.258 12.3047 139.258 19.2871L139.258 95.5078C139.258 102.539 135.449 106.152 128.76 106.152Z transformscale(0.162) translate(-1, 0) fill-opacity0.85/>path dM46.5332 58.2031C54.6875 58.2031 61.3281 51.5625 61.3281 43.3594C61.3281 35.2051 54.6875 28.4668 46.5332 28.4668C38.3301 28.4668 31.6895 35.2051 31.6895 43.3594C31.6895 51.5625 38.3301 58.2031 46.5332 58.2031Z transformscale(0.162) translate(-1, 0) fill-opacity0.85/>/svg>RAW+ JPEG Support/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM64.6943 26.9043C72.165 26.9043 78.1221 20.8984 78.1221 13.4766C78.1221 6.00586 72.165-1.42109e-14 64.6943-1.42109e-14C57.2236-1.42109e-14 51.2178 6.00586 51.2178 13.4766C51.2178 20.8984 57.2236 26.9043 64.6943 26.9043ZM43.6006 80.8594L67.3799 94.2383L51.999 107.471C48.7764 110.205 48.7764 113.818 50.7783 116.064C52.8779 118.408 56.4912 118.799 59.8115 115.967L81.1982 97.7539C84.0791 95.2637 83.5908 89.9902 80.124 87.7441L56.833 72.4609L61.4717 56.3477C62.1064 53.9551 64.792 53.6621 66.208 55.7129L73.0439 65.6738C74.6553 67.9687 77.5361 68.8477 80.1728 67.6758L99.8017 58.8867C103.269 57.373 104.538 54.3945 103.024 51.2695C101.56 48.1934 98.581 47.2656 95.1631 48.7793L79.5381 55.7129L68.7471 40.8203C63.1806 33.1055 56.2471 30.0293 44.9189 30.8594L23.0928 32.4219C19.7236 32.666 17.331 34.9121 16.8916 38.4277L13.9619 60.5469C13.4248 64.3555 15.2803 66.9922 18.6982 67.334C22.0674 67.6758 24.2646 65.6738 24.8017 61.9141L27.4873 43.75L36.2764 43.1641C38.3271 42.9687 40.1826 44.4336 39.499 46.7773L34.4697 64.5996C31.4424 75 38.2295 77.832 43.6006 80.8594ZM2.09666 134.424C4.44041 136.426 7.90721 136.572 10.9834 133.594L31.0517 113.721C32.7607 112.012 33.1025 111.621 34.1279 109.033L42.6728 87.0117L40.7197 85.9375C35.9834 83.3008 32.6631 80.7617 30.5146 77.9297L23.0928 104.395L2.19432 125.146C-0.979509 128.271-0.4424 132.178 2.09666 134.424Z transformscale(0.176) translate(-10, -5) fill-opacity0.85/>/svg>Cross Country/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z/>/svg>Smart Player Identification/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM98.872 98.8713C123.14 74.6037 131.685 40.3752 123.579 13.6174C121.528 6.97675 119.575 5.02363 112.935 2.97284C86.2255-5.13262 51.9482 3.4123 27.6318 27.6799C3.41302 51.9475-5.13191 86.2248 2.97356 112.934C4.97552 119.574 6.97747 121.576 13.6181 123.578C40.3759 131.684 74.5556 123.139 98.872 98.8713ZM92.5732 92.5725C70.9423 114.301 42.4755 122.26 16.5478 115.082C12.9833 114.154 12.3974 113.569 11.372 109.809C4.38958 84.0275 12.2997 55.5607 33.9306 33.9787C55.5615 12.2502 83.9794 4.34003 109.761 11.3713C113.569 12.3967 114.155 13.0314 115.132 16.5959C122.261 42.4748 114.253 70.9904 92.5732 92.5725ZM73.4814 4.58417L66.499 11.6154L114.936 60.1018L122.017 53.0705ZM4.63372 73.4807L53.0712 122.016L60.1025 114.936L11.6161 66.4982ZM37.788 75.7756L50.7763 88.7639C51.8017 89.7404 53.3154 89.7404 54.3408 88.7639C55.3173 87.7385 55.3173 86.1271 54.3408 85.1018L41.4013 72.1623C40.3759 71.1857 38.7646 71.1857 37.788 72.1623C36.7626 73.1877 36.7626 74.7502 37.788 75.7756ZM46.3818 67.0842L59.4189 80.1213C60.3954 81.0978 62.0068 81.0978 62.9833 80.1213C63.9599 79.0959 63.9599 77.4846 62.9833 76.4592L50.0439 63.5197C49.0185 62.5432 47.4072 62.5432 46.3818 63.5197C45.454 64.5451 45.454 66.1076 46.3818 67.0842ZM55.0732 58.4416L68.0615 71.4787C69.038 72.4553 70.6493 72.4553 71.6747 71.4787C72.6025 70.4533 72.6025 68.842 71.6747 67.8654L58.6376 54.8771C57.7099 53.9006 56.0497 53.9006 55.0732 54.8771C54.0966 55.9025 54.0966 57.465 55.0732 58.4416ZM63.7158 49.8967L76.6552 62.8361C77.6806 63.7639 79.2919 63.7639 80.3173 62.8361C81.2939 61.8107 81.2939 60.2482 80.3173 59.2228L67.329 46.2346C66.3036 45.258 64.7411 45.258 63.7158 46.2346C62.7392 47.2111 62.7392 48.8713 63.7158 49.8967ZM72.3583 41.2053L85.2978 54.1447C86.3232 55.1213 87.9345 55.1213 88.9599 54.1447C89.9365 53.1682 89.9365 51.5568 88.9599 50.5803L75.9228 37.5432C74.9462 36.6154 73.3837 36.6154 72.3583 37.5432C71.3818 38.5685 71.3818 40.1799 72.3583 41.2053ZM47.3583 82.8068L82.8075 47.3088L79.2431 43.7443L43.7939 79.2424Z transformscale(0.19) translate(-2, -2) fill-opacity0.85/>/svg>Football/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z/>/svg>Team Recognition/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z/>/svg>Lacrosse/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z/>/svg>Roster Management/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM63.5742 38.3789L39.0625 57.2754L48.877 87.5L78.3203 87.5L88.0859 57.2754ZM85.6934 9.42383L63.5254 2.44141L41.3086 9.42383L63.5254 27.3438ZM60.498 4.6875L60.498 45.6055L66.6992 45.6055L66.6992 4.6875ZM107.568 25.3418L99.3164 52.5879L124.17 66.5039L119.678 40.6738ZM121.387 46.9238L119.043 41.2598L81.1035 56.5918L83.4473 62.3047ZM78.0762 121.045L99.1699 111.963L113.916 93.7012L84.5215 93.3105ZM100.83 109.277L75.6836 77.002L70.7031 80.7617L95.9473 112.988ZM49.0234 120.85L42.5781 93.1152L13.1836 93.5059L27.9785 111.768ZM26.2695 109.082L31.2012 112.793L56.3965 80.5664L51.416 76.8066ZM19.5801 25.3418L7.51953 40.6738L3.02734 66.5039L27.8809 52.5879ZM5.76172 46.9238L43.7012 62.3047L46.0449 56.5918L8.10547 41.2598ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Soccer/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z/>/svg>Caption Generation/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z/>/svg>Softball/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z/>/svg>Associated Press/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM64.6943 26.9043C72.165 26.9043 78.1221 20.8984 78.1221 13.4766C78.1221 6.00586 72.165-1.42109e-14 64.6943-1.42109e-14C57.2236-1.42109e-14 51.2178 6.00586 51.2178 13.4766C51.2178 20.8984 57.2236 26.9043 64.6943 26.9043ZM43.6006 80.8594L67.3799 94.2383L51.999 107.471C48.7764 110.205 48.7764 113.818 50.7783 116.064C52.8779 118.408 56.4912 118.799 59.8115 115.967L81.1982 97.7539C84.0791 95.2637 83.5908 89.9902 80.124 87.7441L56.833 72.4609L61.4717 56.3477C62.1064 53.9551 64.792 53.6621 66.208 55.7129L73.0439 65.6738C74.6553 67.9687 77.5361 68.8477 80.1728 67.6758L99.8017 58.8867C103.269 57.373 104.538 54.3945 103.024 51.2695C101.56 48.1934 98.581 47.2656 95.1631 48.7793L79.5381 55.7129L68.7471 40.8203C63.1806 33.1055 56.2471 30.0293 44.9189 30.8594L23.0928 32.4219C19.7236 32.666 17.331 34.9121 16.8916 38.4277L13.9619 60.5469C13.4248 64.3555 15.2803 66.9922 18.6982 67.334C22.0674 67.6758 24.2646 65.6738 24.8017 61.9141L27.4873 43.75L36.2764 43.1641C38.3271 42.9687 40.1826 44.4336 39.499 46.7773L34.4697 64.5996C31.4424 75 38.2295 77.832 43.6006 80.8594ZM2.09666 134.424C4.44041 136.426 7.90721 136.572 10.9834 133.594L31.0517 113.721C32.7607 112.012 33.1025 111.621 34.1279 109.033L42.6728 87.0117L40.7197 85.9375C35.9834 83.3008 32.6631 80.7617 30.5146 77.9297L23.0928 104.395L2.19432 125.146C-0.979509 128.271-0.4424 132.178 2.09666 134.424Z transformscale(0.176) translate(-10, -5) fill-opacity0.85/>/svg>Track & Field/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z/>/svg>Getty Images/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM89.8438 119.385L91.3574 112.402C76.8555 111.914 66.8945 88.623 64.6484 68.7012C89.209 46.4355 106.152 18.75 93.5059 8.05664L88.8672 13.4277C96.5332 19.873 83.1543 42.2363 60.0098 63.2812C37.3535 53.5645 13.7207 50 2.34375 63.0371L7.4707 67.041C16.0156 57.9102 35.791 60.5957 57.5684 70.1172C60.1074 90.8203 71.2891 117.969 89.8438 119.385ZM73.6816 100.049C115.43 74.6582 121.436 42.4805 118.262 31.9336L111.426 33.9844C113.867 42.1387 108.643 71.0449 69.1895 94.5312ZM57.0312 125.635L62.3047 119.922C51.9043 116.504 29.834 95.2148 28.8086 58.9844L21.6309 59.6191C22.7051 95.6543 43.9941 119.141 57.0312 125.635ZM80.8105 42.7734L84.1309 36.4746C66.9434 23.9746 34.7168 14.3066 11.1328 30.5664L11.377 38.1836C32.7148 21.4844 63.5742 30.3711 80.8105 42.7734ZM63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0ZM63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Volleyball/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z/>/svg>Imagn Images/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM49.6582 121.729L55.1758 123.047C60.7422 106.348 59.5215 87.5 50.1465 71.2402C40.7227 55.0293 25.0977 44.5312 7.91016 40.9668L6.34766 46.3867C21.9727 49.5605 36.3281 59.1797 45.0195 74.1699C53.7109 89.2578 54.8828 106.494 49.6582 121.729ZM22.8516 56.3477L28.2715 45.8984C28.9551 44.5801 28.5156 43.0664 27.2461 42.4805C25.9277 41.748 24.3652 42.041 23.6816 43.457L18.3105 53.8086C17.5781 55.1758 18.0664 56.7383 19.3848 57.373C20.6543 58.0078 22.168 57.7148 22.8516 56.3477ZM34.668 64.7461L42.9199 56.25C43.9941 55.1758 43.8965 53.6133 42.8711 52.6855C41.7969 51.6602 40.2344 51.5137 39.1602 52.6367L30.957 61.0352C29.8828 62.1094 29.9805 63.7695 31.0547 64.7461C32.0801 65.7227 33.5938 65.8203 34.668 64.7461ZM43.8477 77.6855L54.1992 72.0215C55.5664 71.2891 55.9082 69.6777 55.127 68.5059C54.4434 67.2363 52.9297 66.6992 51.6113 67.4316L41.3574 73.0957C39.9902 73.877 39.6484 75.4883 40.3809 76.6602C41.1621 77.9297 42.5293 78.418 43.8477 77.6855ZM48.877 92.5293L60.3516 89.6973C61.7676 89.3066 62.5488 87.8906 62.207 86.5234C61.8164 85.1562 60.498 84.2285 59.0332 84.6191L47.6562 87.4512C46.1914 87.8418 45.4102 89.2578 45.752 90.625C46.1426 91.9922 47.4121 92.9199 48.877 92.5293ZM49.6094 107.617L61.3281 108.154C62.8418 108.203 63.9648 107.031 64.0137 105.664C64.0137 104.248 62.9883 103.027 61.4746 102.979L49.8047 102.393C48.291 102.344 47.168 103.516 47.1191 104.932C47.0703 106.348 48.1445 107.52 49.6094 107.617ZM119.043 86.1816L120.557 80.7129C104.834 77.5879 90.5273 67.9199 81.8359 52.9297C73.1934 37.8418 72.0215 20.6055 77.1484 5.41992L71.6309 4.15039C66.1133 20.752 67.334 39.5996 76.7578 55.8594C86.1328 72.168 101.807 82.5684 119.043 86.1816ZM77.1973 24.8535C78.7598 24.9512 79.834 23.877 79.834 22.3633C79.9316 20.9473 78.8574 19.7266 77.3926 19.6777L65.6738 19.0918C64.1602 19.043 63.0371 20.2148 63.0371 21.6797C62.9395 23.0469 63.9648 24.2676 65.4785 24.3164ZM78.6133 39.4531C80.1758 39.0625 80.8594 37.6465 80.4688 36.2793C80.1758 34.9121 78.8574 33.9844 77.3926 34.375L65.918 37.207C64.4531 37.5977 63.7695 39.0625 64.209 40.3809C64.502 41.7969 65.7715 42.6758 67.2363 42.2852ZM85.498 53.9551C86.8652 53.1738 87.1582 51.7578 86.4746 50.3906C85.8398 49.2188 84.2773 48.584 83.0078 49.3652L72.6562 55.1758C71.3379 55.8594 71.0449 57.4707 71.7773 58.6914C72.3633 59.9121 73.9258 60.498 75.2441 59.7168ZM95.9961 65.5273C97.1191 64.3555 97.0215 62.7441 95.8984 61.7676C94.9219 60.8398 93.3594 60.7422 92.2852 61.8164L84.0332 70.2637C83.0078 71.2891 83.1055 72.9004 84.1797 73.9258C85.1562 74.8535 86.7188 74.9023 87.793 73.877ZM108.691 73.4863C109.424 72.168 108.838 70.6543 107.617 69.9219C106.348 69.2871 104.785 69.6777 104.102 70.9473L98.6816 81.3965C97.9492 82.7148 98.4863 84.2285 99.707 84.9121C100.977 85.5469 102.588 85.1562 103.223 83.8379ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Baseball/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z/>/svg>Automatic Captioning/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM5.9082 68.2617C22.998 44.7266 49.4629 29.7363 79.9805 29.7363C92.1875 29.7363 103.662 32.0801 114.551 36.7188L112.939 29.3945C102.686 25.6348 91.4551 23.5352 79.9805 23.5352C47.9492 23.5352 19.5312 39.4531 1.51367 63.7695ZM113.428 93.3105L119.336 91.6504C109.766 58.7891 55.4688 51.4648 55.4688 24.5605C55.4688 16.2109 59.9121 10.1074 67.8223 6.15234L63.2812 1.5625C54.7852 6.44531 49.2676 14.6973 49.2676 24.5605C49.2676 56.3477 104.932 64.6973 113.428 93.3105ZM21.9238 108.252L29.248 109.326C19.7266 91.0156 29.1016 64.5996 27.5391 41.9434C27.0996 36.2305 23.4375 25.3418 16.8457 23.7793L15.0879 29.7852C18.4082 29.9805 21.0938 38.1348 21.3379 42.4316C22.7539 62.4512 14.2578 88.1348 21.9238 108.252ZM72.4609 123.145L77.3926 119.434C40.2832 73.3398 34.8145 23.291 40.9668 9.76562L34.2773 10.498C29.1992 29.1992 36.6699 78.4668 72.4609 123.145ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Basketball/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM64.6943 26.9043C72.165 26.9043 78.1221 20.8984 78.1221 13.4766C78.1221 6.00586 72.165-1.42109e-14 64.6943-1.42109e-14C57.2236-1.42109e-14 51.2178 6.00586 51.2178 13.4766C51.2178 20.8984 57.2236 26.9043 64.6943 26.9043ZM43.6006 80.8594L67.3799 94.2383L51.999 107.471C48.7764 110.205 48.7764 113.818 50.7783 116.064C52.8779 118.408 56.4912 118.799 59.8115 115.967L81.1982 97.7539C84.0791 95.2637 83.5908 89.9902 80.124 87.7441L56.833 72.4609L61.4717 56.3477C62.1064 53.9551 64.792 53.6621 66.208 55.7129L73.0439 65.6738C74.6553 67.9687 77.5361 68.8477 80.1728 67.6758L99.8017 58.8867C103.269 57.373 104.538 54.3945 103.024 51.2695C101.56 48.1934 98.581 47.2656 95.1631 48.7793L79.5381 55.7129L68.7471 40.8203C63.1806 33.1055 56.2471 30.0293 44.9189 30.8594L23.0928 32.4219C19.7236 32.666 17.331 34.9121 16.8916 38.4277L13.9619 60.5469C13.4248 64.3555 15.2803 66.9922 18.6982 67.334C22.0674 67.6758 24.2646 65.6738 24.8017 61.9141L27.4873 43.75L36.2764 43.1641C38.3271 42.9687 40.1826 44.4336 39.499 46.7773L34.4697 64.5996C31.4424 75 38.2295 77.832 43.6006 80.8594ZM2.09666 134.424C4.44041 136.426 7.90721 136.572 10.9834 133.594L31.0517 113.721C32.7607 112.012 33.1025 111.621 34.1279 109.033L42.6728 87.0117L40.7197 85.9375C35.9834 83.3008 32.6631 80.7617 30.5146 77.9297L23.0928 104.395L2.19432 125.146C-0.979509 128.271-0.4424 132.178 2.09666 134.424Z transformscale(0.176) translate(-10, -5) fill-opacity0.85/>/svg>Cross Country/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z/>/svg>FTP Mode/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM98.872 98.8713C123.14 74.6037 131.685 40.3752 123.579 13.6174C121.528 6.97675 119.575 5.02363 112.935 2.97284C86.2255-5.13262 51.9482 3.4123 27.6318 27.6799C3.41302 51.9475-5.13191 86.2248 2.97356 112.934C4.97552 119.574 6.97747 121.576 13.6181 123.578C40.3759 131.684 74.5556 123.139 98.872 98.8713ZM92.5732 92.5725C70.9423 114.301 42.4755 122.26 16.5478 115.082C12.9833 114.154 12.3974 113.569 11.372 109.809C4.38958 84.0275 12.2997 55.5607 33.9306 33.9787C55.5615 12.2502 83.9794 4.34003 109.761 11.3713C113.569 12.3967 114.155 13.0314 115.132 16.5959C122.261 42.4748 114.253 70.9904 92.5732 92.5725ZM73.4814 4.58417L66.499 11.6154L114.936 60.1018L122.017 53.0705ZM4.63372 73.4807L53.0712 122.016L60.1025 114.936L11.6161 66.4982ZM37.788 75.7756L50.7763 88.7639C51.8017 89.7404 53.3154 89.7404 54.3408 88.7639C55.3173 87.7385 55.3173 86.1271 54.3408 85.1018L41.4013 72.1623C40.3759 71.1857 38.7646 71.1857 37.788 72.1623C36.7626 73.1877 36.7626 74.7502 37.788 75.7756ZM46.3818 67.0842L59.4189 80.1213C60.3954 81.0978 62.0068 81.0978 62.9833 80.1213C63.9599 79.0959 63.9599 77.4846 62.9833 76.4592L50.0439 63.5197C49.0185 62.5432 47.4072 62.5432 46.3818 63.5197C45.454 64.5451 45.454 66.1076 46.3818 67.0842ZM55.0732 58.4416L68.0615 71.4787C69.038 72.4553 70.6493 72.4553 71.6747 71.4787C72.6025 70.4533 72.6025 68.842 71.6747 67.8654L58.6376 54.8771C57.7099 53.9006 56.0497 53.9006 55.0732 54.8771C54.0966 55.9025 54.0966 57.465 55.0732 58.4416ZM63.7158 49.8967L76.6552 62.8361C77.6806 63.7639 79.2919 63.7639 80.3173 62.8361C81.2939 61.8107 81.2939 60.2482 80.3173 59.2228L67.329 46.2346C66.3036 45.258 64.7411 45.258 63.7158 46.2346C62.7392 47.2111 62.7392 48.8713 63.7158 49.8967ZM72.3583 41.2053L85.2978 54.1447C86.3232 55.1213 87.9345 55.1213 88.9599 54.1447C89.9365 53.1682 89.9365 51.5568 88.9599 50.5803L75.9228 37.5432C74.9462 36.6154 73.3837 36.6154 72.3583 37.5432C71.3818 38.5685 71.3818 40.1799 72.3583 41.2053ZM47.3583 82.8068L82.8075 47.3088L79.2431 43.7443L43.7939 79.2424Z transformscale(0.19) translate(-2, -2) fill-opacity0.85/>/svg>Football/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM18.4082 110.84L126.221 110.84C137.305 110.84 142.48 104.639 142.529 93.75L104.541 58.3496C101.66 55.6641 98.4375 54.3457 94.873 54.3457C91.3086 54.3457 88.2324 55.6152 85.3027 58.252L56.6895 83.7891L44.9219 73.0469C42.2363 70.6543 39.4531 69.3848 36.377 69.3848C33.4473 69.3848 30.8105 70.5566 28.2715 72.9492L4.39453 94.7266C5.0293 105.664 9.22852 110.84 18.4082 110.84ZM18.9941 114.795L128.906 114.795C141.553 114.795 147.949 108.398 147.949 95.9961L147.949 18.8477C147.949 6.39648 141.553 0 128.906 0L18.9941 0C6.39648 0 0 6.34766 0 18.8477L0 95.9961C0 108.496 6.39648 114.795 18.9941 114.795ZM19.1895 106.152C12.3535 106.152 8.64258 102.539 8.64258 95.5078L8.64258 19.2871C8.64258 12.3047 12.3535 8.64258 19.1895 8.64258L128.76 8.64258C135.449 8.64258 139.258 12.3047 139.258 19.2871L139.258 95.5078C139.258 102.539 135.449 106.152 128.76 106.152Z transformscale(0.162) translate(-1, 0) fill-opacity0.85/>path dM46.5332 58.2031C54.6875 58.2031 61.3281 51.5625 61.3281 43.3594C61.3281 35.2051 54.6875 28.4668 46.5332 28.4668C38.3301 28.4668 31.6895 35.2051 31.6895 43.3594C31.6895 51.5625 38.3301 58.2031 46.5332 58.2031Z transformscale(0.162) translate(-1, 0) fill-opacity0.85/>/svg>RAW+ JPEG Support/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z/>/svg>Lacrosse/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM63.5742 38.3789L39.0625 57.2754L48.877 87.5L78.3203 87.5L88.0859 57.2754ZM85.6934 9.42383L63.5254 2.44141L41.3086 9.42383L63.5254 27.3438ZM60.498 4.6875L60.498 45.6055L66.6992 45.6055L66.6992 4.6875ZM107.568 25.3418L99.3164 52.5879L124.17 66.5039L119.678 40.6738ZM121.387 46.9238L119.043 41.2598L81.1035 56.5918L83.4473 62.3047ZM78.0762 121.045L99.1699 111.963L113.916 93.7012L84.5215 93.3105ZM100.83 109.277L75.6836 77.002L70.7031 80.7617L95.9473 112.988ZM49.0234 120.85L42.5781 93.1152L13.1836 93.5059L27.9785 111.768ZM26.2695 109.082L31.2012 112.793L56.3965 80.5664L51.416 76.8066ZM19.5801 25.3418L7.51953 40.6738L3.02734 66.5039L27.8809 52.5879ZM5.76172 46.9238L43.7012 62.3047L46.0449 56.5918L8.10547 41.2598ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Soccer/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z/>/svg>Softball/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM64.6943 26.9043C72.165 26.9043 78.1221 20.8984 78.1221 13.4766C78.1221 6.00586 72.165-1.42109e-14 64.6943-1.42109e-14C57.2236-1.42109e-14 51.2178 6.00586 51.2178 13.4766C51.2178 20.8984 57.2236 26.9043 64.6943 26.9043ZM43.6006 80.8594L67.3799 94.2383L51.999 107.471C48.7764 110.205 48.7764 113.818 50.7783 116.064C52.8779 118.408 56.4912 118.799 59.8115 115.967L81.1982 97.7539C84.0791 95.2637 83.5908 89.9902 80.124 87.7441L56.833 72.4609L61.4717 56.3477C62.1064 53.9551 64.792 53.6621 66.208 55.7129L73.0439 65.6738C74.6553 67.9687 77.5361 68.8477 80.1728 67.6758L99.8017 58.8867C103.269 57.373 104.538 54.3945 103.024 51.2695C101.56 48.1934 98.581 47.2656 95.1631 48.7793L79.5381 55.7129L68.7471 40.8203C63.1806 33.1055 56.2471 30.0293 44.9189 30.8594L23.0928 32.4219C19.7236 32.666 17.331 34.9121 16.8916 38.4277L13.9619 60.5469C13.4248 64.3555 15.2803 66.9922 18.6982 67.334C22.0674 67.6758 24.2646 65.6738 24.8017 61.9141L27.4873 43.75L36.2764 43.1641C38.3271 42.9687 40.1826 44.4336 39.499 46.7773L34.4697 64.5996C31.4424 75 38.2295 77.832 43.6006 80.8594ZM2.09666 134.424C4.44041 136.426 7.90721 136.572 10.9834 133.594L31.0517 113.721C32.7607 112.012 33.1025 111.621 34.1279 109.033L42.6728 87.0117L40.7197 85.9375C35.9834 83.3008 32.6631 80.7617 30.5146 77.9297L23.0928 104.395L2.19432 125.146C-0.979509 128.271-0.4424 132.178 2.09666 134.424Z transformscale(0.176) translate(-10, -5) fill-opacity0.85/>/svg>Track & Field/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM89.8438 119.385L91.3574 112.402C76.8555 111.914 66.8945 88.623 64.6484 68.7012C89.209 46.4355 106.152 18.75 93.5059 8.05664L88.8672 13.4277C96.5332 19.873 83.1543 42.2363 60.0098 63.2812C37.3535 53.5645 13.7207 50 2.34375 63.0371L7.4707 67.041C16.0156 57.9102 35.791 60.5957 57.5684 70.1172C60.1074 90.8203 71.2891 117.969 89.8438 119.385ZM73.6816 100.049C115.43 74.6582 121.436 42.4805 118.262 31.9336L111.426 33.9844C113.867 42.1387 108.643 71.0449 69.1895 94.5312ZM57.0312 125.635L62.3047 119.922C51.9043 116.504 29.834 95.2148 28.8086 58.9844L21.6309 59.6191C22.7051 95.6543 43.9941 119.141 57.0312 125.635ZM80.8105 42.7734L84.1309 36.4746C66.9434 23.9746 34.7168 14.3066 11.1328 30.5664L11.377 38.1836C32.7148 21.4844 63.5742 30.3711 80.8105 42.7734ZM63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0ZM63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Volleyball/span> /div> !-- Bottom Row - Animates left on scroll down, right on scroll up --> !-- Mix of sports and features in different order to avoid same tag above/below --> div classsports-tags-row sports-tags-row-bottom> !-- Mix of sports and features for continuous coverage --> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM63.5742 38.3789L39.0625 57.2754L48.877 87.5L78.3203 87.5L88.0859 57.2754ZM85.6934 9.42383L63.5254 2.44141L41.3086 9.42383L63.5254 27.3438ZM60.498 4.6875L60.498 45.6055L66.6992 45.6055L66.6992 4.6875ZM107.568 25.3418L99.3164 52.5879L124.17 66.5039L119.678 40.6738ZM121.387 46.9238L119.043 41.2598L81.1035 56.5918L83.4473 62.3047ZM78.0762 121.045L99.1699 111.963L113.916 93.7012L84.5215 93.3105ZM100.83 109.277L75.6836 77.002L70.7031 80.7617L95.9473 112.988ZM49.0234 120.85L42.5781 93.1152L13.1836 93.5059L27.9785 111.768ZM26.2695 109.082L31.2012 112.793L56.3965 80.5664L51.416 76.8066ZM19.5801 25.3418L7.51953 40.6738L3.02734 66.5039L27.8809 52.5879ZM5.76172 46.9238L43.7012 62.3047L46.0449 56.5918L8.10547 41.2598ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Soccer/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z/>/svg>Automatic Captioning/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM64.6943 26.9043C72.165 26.9043 78.1221 20.8984 78.1221 13.4766C78.1221 6.00586 72.165-1.42109e-14 64.6943-1.42109e-14C57.2236-1.42109e-14 51.2178 6.00586 51.2178 13.4766C51.2178 20.8984 57.2236 26.9043 64.6943 26.9043ZM43.6006 80.8594L67.3799 94.2383L51.999 107.471C48.7764 110.205 48.7764 113.818 50.7783 116.064C52.8779 118.408 56.4912 118.799 59.8115 115.967L81.1982 97.7539C84.0791 95.2637 83.5908 89.9902 80.124 87.7441L56.833 72.4609L61.4717 56.3477C62.1064 53.9551 64.792 53.6621 66.208 55.7129L73.0439 65.6738C74.6553 67.9687 77.5361 68.8477 80.1728 67.6758L99.8017 58.8867C103.269 57.373 104.538 54.3945 103.024 51.2695C101.56 48.1934 98.581 47.2656 95.1631 48.7793L79.5381 55.7129L68.7471 40.8203C63.1806 33.1055 56.2471 30.0293 44.9189 30.8594L23.0928 32.4219C19.7236 32.666 17.331 34.9121 16.8916 38.4277L13.9619 60.5469C13.4248 64.3555 15.2803 66.9922 18.6982 67.334C22.0674 67.6758 24.2646 65.6738 24.8017 61.9141L27.4873 43.75L36.2764 43.1641C38.3271 42.9687 40.1826 44.4336 39.499 46.7773L34.4697 64.5996C31.4424 75 38.2295 77.832 43.6006 80.8594ZM2.09666 134.424C4.44041 136.426 7.90721 136.572 10.9834 133.594L31.0517 113.721C32.7607 112.012 33.1025 111.621 34.1279 109.033L42.6728 87.0117L40.7197 85.9375C35.9834 83.3008 32.6631 80.7617 30.5146 77.9297L23.0928 104.395L2.19432 125.146C-0.979509 128.271-0.4424 132.178 2.09666 134.424Z transformscale(0.176) translate(-10, -5) fill-opacity0.85/>/svg>Track & Field/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM5.9082 68.2617C22.998 44.7266 49.4629 29.7363 79.9805 29.7363C92.1875 29.7363 103.662 32.0801 114.551 36.7188L112.939 29.3945C102.686 25.6348 91.4551 23.5352 79.9805 23.5352C47.9492 23.5352 19.5312 39.4531 1.51367 63.7695ZM113.428 93.3105L119.336 91.6504C109.766 58.7891 55.4688 51.4648 55.4688 24.5605C55.4688 16.2109 59.9121 10.1074 67.8223 6.15234L63.2812 1.5625C54.7852 6.44531 49.2676 14.6973 49.2676 24.5605C49.2676 56.3477 104.932 64.6973 113.428 93.3105ZM21.9238 108.252L29.248 109.326C19.7266 91.0156 29.1016 64.5996 27.5391 41.9434C27.0996 36.2305 23.4375 25.3418 16.8457 23.7793L15.0879 29.7852C18.4082 29.9805 21.0938 38.1348 21.3379 42.4316C22.7539 62.4512 14.2578 88.1348 21.9238 108.252ZM72.4609 123.145L77.3926 119.434C40.2832 73.3398 34.8145 23.291 40.9668 9.76562L34.2773 10.498C29.1992 29.1992 36.6699 78.4668 72.4609 123.145ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Basketball/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z/>/svg>FTP Mode/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM89.8438 119.385L91.3574 112.402C76.8555 111.914 66.8945 88.623 64.6484 68.7012C89.209 46.4355 106.152 18.75 93.5059 8.05664L88.8672 13.4277C96.5332 19.873 83.1543 42.2363 60.0098 63.2812C37.3535 53.5645 13.7207 50 2.34375 63.0371L7.4707 67.041C16.0156 57.9102 35.791 60.5957 57.5684 70.1172C60.1074 90.8203 71.2891 117.969 89.8438 119.385ZM73.6816 100.049C115.43 74.6582 121.436 42.4805 118.262 31.9336L111.426 33.9844C113.867 42.1387 108.643 71.0449 69.1895 94.5312ZM57.0312 125.635L62.3047 119.922C51.9043 116.504 29.834 95.2148 28.8086 58.9844L21.6309 59.6191C22.7051 95.6543 43.9941 119.141 57.0312 125.635ZM80.8105 42.7734L84.1309 36.4746C66.9434 23.9746 34.7168 14.3066 11.1328 30.5664L11.377 38.1836C32.7148 21.4844 63.5742 30.3711 80.8105 42.7734ZM63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0ZM63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Volleyball/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM18.4082 110.84L126.221 110.84C137.305 110.84 142.48 104.639 142.529 93.75L104.541 58.3496C101.66 55.6641 98.4375 54.3457 94.873 54.3457C91.3086 54.3457 88.2324 55.6152 85.3027 58.252L56.6895 83.7891L44.9219 73.0469C42.2363 70.6543 39.4531 69.3848 36.377 69.3848C33.4473 69.3848 30.8105 70.5566 28.2715 72.9492L4.39453 94.7266C5.0293 105.664 9.22852 110.84 18.4082 110.84ZM18.9941 114.795L128.906 114.795C141.553 114.795 147.949 108.398 147.949 95.9961L147.949 18.8477C147.949 6.39648 141.553 0 128.906 0L18.9941 0C6.39648 0 0 6.34766 0 18.8477L0 95.9961C0 108.496 6.39648 114.795 18.9941 114.795ZM19.1895 106.152C12.3535 106.152 8.64258 102.539 8.64258 95.5078L8.64258 19.2871C8.64258 12.3047 12.3535 8.64258 19.1895 8.64258L128.76 8.64258C135.449 8.64258 139.258 12.3047 139.258 19.2871L139.258 95.5078C139.258 102.539 135.449 106.152 128.76 106.152Z transformscale(0.162) translate(-1, 0) fill-opacity0.85/>path dM46.5332 58.2031C54.6875 58.2031 61.3281 51.5625 61.3281 43.3594C61.3281 35.2051 54.6875 28.4668 46.5332 28.4668C38.3301 28.4668 31.6895 35.2051 31.6895 43.3594C31.6895 51.5625 38.3301 58.2031 46.5332 58.2031Z transformscale(0.162) translate(-1, 0) fill-opacity0.85/>/svg>RAW+ JPEG Support/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM64.6943 26.9043C72.165 26.9043 78.1221 20.8984 78.1221 13.4766C78.1221 6.00586 72.165-1.42109e-14 64.6943-1.42109e-14C57.2236-1.42109e-14 51.2178 6.00586 51.2178 13.4766C51.2178 20.8984 57.2236 26.9043 64.6943 26.9043ZM43.6006 80.8594L67.3799 94.2383L51.999 107.471C48.7764 110.205 48.7764 113.818 50.7783 116.064C52.8779 118.408 56.4912 118.799 59.8115 115.967L81.1982 97.7539C84.0791 95.2637 83.5908 89.9902 80.124 87.7441L56.833 72.4609L61.4717 56.3477C62.1064 53.9551 64.792 53.6621 66.208 55.7129L73.0439 65.6738C74.6553 67.9687 77.5361 68.8477 80.1728 67.6758L99.8017 58.8867C103.269 57.373 104.538 54.3945 103.024 51.2695C101.56 48.1934 98.581 47.2656 95.1631 48.7793L79.5381 55.7129L68.7471 40.8203C63.1806 33.1055 56.2471 30.0293 44.9189 30.8594L23.0928 32.4219C19.7236 32.666 17.331 34.9121 16.8916 38.4277L13.9619 60.5469C13.4248 64.3555 15.2803 66.9922 18.6982 67.334C22.0674 67.6758 24.2646 65.6738 24.8017 61.9141L27.4873 43.75L36.2764 43.1641C38.3271 42.9687 40.1826 44.4336 39.499 46.7773L34.4697 64.5996C31.4424 75 38.2295 77.832 43.6006 80.8594ZM2.09666 134.424C4.44041 136.426 7.90721 136.572 10.9834 133.594L31.0517 113.721C32.7607 112.012 33.1025 111.621 34.1279 109.033L42.6728 87.0117L40.7197 85.9375C35.9834 83.3008 32.6631 80.7617 30.5146 77.9297L23.0928 104.395L2.19432 125.146C-0.979509 128.271-0.4424 132.178 2.09666 134.424Z transformscale(0.176) translate(-10, -5) fill-opacity0.85/>/svg>Cross Country/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z/>/svg>Smart Player Identification/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM49.6582 121.729L55.1758 123.047C60.7422 106.348 59.5215 87.5 50.1465 71.2402C40.7227 55.0293 25.0977 44.5312 7.91016 40.9668L6.34766 46.3867C21.9727 49.5605 36.3281 59.1797 45.0195 74.1699C53.7109 89.2578 54.8828 106.494 49.6582 121.729ZM22.8516 56.3477L28.2715 45.8984C28.9551 44.5801 28.5156 43.0664 27.2461 42.4805C25.9277 41.748 24.3652 42.041 23.6816 43.457L18.3105 53.8086C17.5781 55.1758 18.0664 56.7383 19.3848 57.373C20.6543 58.0078 22.168 57.7148 22.8516 56.3477ZM34.668 64.7461L42.9199 56.25C43.9941 55.1758 43.8965 53.6133 42.8711 52.6855C41.7969 51.6602 40.2344 51.5137 39.1602 52.6367L30.957 61.0352C29.8828 62.1094 29.9805 63.7695 31.0547 64.7461C32.0801 65.7227 33.5938 65.8203 34.668 64.7461ZM43.8477 77.6855L54.1992 72.0215C55.5664 71.2891 55.9082 69.6777 55.127 68.5059C54.4434 67.2363 52.9297 66.6992 51.6113 67.4316L41.3574 73.0957C39.9902 73.877 39.6484 75.4883 40.3809 76.6602C41.1621 77.9297 42.5293 78.418 43.8477 77.6855ZM48.877 92.5293L60.3516 89.6973C61.7676 89.3066 62.5488 87.8906 62.207 86.5234C61.8164 85.1562 60.498 84.2285 59.0332 84.6191L47.6562 87.4512C46.1914 87.8418 45.4102 89.2578 45.752 90.625C46.1426 91.9922 47.4121 92.9199 48.877 92.5293ZM49.6094 107.617L61.3281 108.154C62.8418 108.203 63.9648 107.031 64.0137 105.664C64.0137 104.248 62.9883 103.027 61.4746 102.979L49.8047 102.393C48.291 102.344 47.168 103.516 47.1191 104.932C47.0703 106.348 48.1445 107.52 49.6094 107.617ZM119.043 86.1816L120.557 80.7129C104.834 77.5879 90.5273 67.9199 81.8359 52.9297C73.1934 37.8418 72.0215 20.6055 77.1484 5.41992L71.6309 4.15039C66.1133 20.752 67.334 39.5996 76.7578 55.8594C86.1328 72.168 101.807 82.5684 119.043 86.1816ZM77.1973 24.8535C78.7598 24.9512 79.834 23.877 79.834 22.3633C79.9316 20.9473 78.8574 19.7266 77.3926 19.6777L65.6738 19.0918C64.1602 19.043 63.0371 20.2148 63.0371 21.6797C62.9395 23.0469 63.9648 24.2676 65.4785 24.3164ZM78.6133 39.4531C80.1758 39.0625 80.8594 37.6465 80.4688 36.2793C80.1758 34.9121 78.8574 33.9844 77.3926 34.375L65.918 37.207C64.4531 37.5977 63.7695 39.0625 64.209 40.3809C64.502 41.7969 65.7715 42.6758 67.2363 42.2852ZM85.498 53.9551C86.8652 53.1738 87.1582 51.7578 86.4746 50.3906C85.8398 49.2188 84.2773 48.584 83.0078 49.3652L72.6562 55.1758C71.3379 55.8594 71.0449 57.4707 71.7773 58.6914C72.3633 59.9121 73.9258 60.498 75.2441 59.7168ZM95.9961 65.5273C97.1191 64.3555 97.0215 62.7441 95.8984 61.7676C94.9219 60.8398 93.3594 60.7422 92.2852 61.8164L84.0332 70.2637C83.0078 71.2891 83.1055 72.9004 84.1797 73.9258C85.1562 74.8535 86.7188 74.9023 87.793 73.877ZM108.691 73.4863C109.424 72.168 108.838 70.6543 107.617 69.9219C106.348 69.2871 104.785 69.6777 104.102 70.9473L98.6816 81.3965C97.9492 82.7148 98.4863 84.2285 99.707 84.9121C100.977 85.5469 102.588 85.1562 103.223 83.8379ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Baseball/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z/>/svg>Team Recognition/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z/>/svg>Softball/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z/>/svg>Roster Management/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z/>/svg>Lacrosse/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z/>/svg>Caption Generation/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM98.872 98.8713C123.14 74.6037 131.685 40.3752 123.579 13.6174C121.528 6.97675 119.575 5.02363 112.935 2.97284C86.2255-5.13262 51.9482 3.4123 27.6318 27.6799C3.41302 51.9475-5.13191 86.2248 2.97356 112.934C4.97552 119.574 6.97747 121.576 13.6181 123.578C40.3759 131.684 74.5556 123.139 98.872 98.8713ZM92.5732 92.5725C70.9423 114.301 42.4755 122.26 16.5478 115.082C12.9833 114.154 12.3974 113.569 11.372 109.809C4.38958 84.0275 12.2997 55.5607 33.9306 33.9787C55.5615 12.2502 83.9794 4.34003 109.761 11.3713C113.569 12.3967 114.155 13.0314 115.132 16.5959C122.261 42.4748 114.253 70.9904 92.5732 92.5725ZM73.4814 4.58417L66.499 11.6154L114.936 60.1018L122.017 53.0705ZM4.63372 73.4807L53.0712 122.016L60.1025 114.936L11.6161 66.4982ZM37.788 75.7756L50.7763 88.7639C51.8017 89.7404 53.3154 89.7404 54.3408 88.7639C55.3173 87.7385 55.3173 86.1271 54.3408 85.1018L41.4013 72.1623C40.3759 71.1857 38.7646 71.1857 37.788 72.1623C36.7626 73.1877 36.7626 74.7502 37.788 75.7756ZM46.3818 67.0842L59.4189 80.1213C60.3954 81.0978 62.0068 81.0978 62.9833 80.1213C63.9599 79.0959 63.9599 77.4846 62.9833 76.4592L50.0439 63.5197C49.0185 62.5432 47.4072 62.5432 46.3818 63.5197C45.454 64.5451 45.454 66.1076 46.3818 67.0842ZM55.0732 58.4416L68.0615 71.4787C69.038 72.4553 70.6493 72.4553 71.6747 71.4787C72.6025 70.4533 72.6025 68.842 71.6747 67.8654L58.6376 54.8771C57.7099 53.9006 56.0497 53.9006 55.0732 54.8771C54.0966 55.9025 54.0966 57.465 55.0732 58.4416ZM63.7158 49.8967L76.6552 62.8361C77.6806 63.7639 79.2919 63.7639 80.3173 62.8361C81.2939 61.8107 81.2939 60.2482 80.3173 59.2228L67.329 46.2346C66.3036 45.258 64.7411 45.258 63.7158 46.2346C62.7392 47.2111 62.7392 48.8713 63.7158 49.8967ZM72.3583 41.2053L85.2978 54.1447C86.3232 55.1213 87.9345 55.1213 88.9599 54.1447C89.9365 53.1682 89.9365 51.5568 88.9599 50.5803L75.9228 37.5432C74.9462 36.6154 73.3837 36.6154 72.3583 37.5432C71.3818 38.5685 71.3818 40.1799 72.3583 41.2053ZM47.3583 82.8068L82.8075 47.3088L79.2431 43.7443L43.7939 79.2424Z transformscale(0.19) translate(-2, -2) fill-opacity0.85/>/svg>Football/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z/>/svg>Associated Press/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM63.5742 38.3789L39.0625 57.2754L48.877 87.5L78.3203 87.5L88.0859 57.2754ZM85.6934 9.42383L63.5254 2.44141L41.3086 9.42383L63.5254 27.3438ZM60.498 4.6875L60.498 45.6055L66.6992 45.6055L66.6992 4.6875ZM107.568 25.3418L99.3164 52.5879L124.17 66.5039L119.678 40.6738ZM121.387 46.9238L119.043 41.2598L81.1035 56.5918L83.4473 62.3047ZM78.0762 121.045L99.1699 111.963L113.916 93.7012L84.5215 93.3105ZM100.83 109.277L75.6836 77.002L70.7031 80.7617L95.9473 112.988ZM49.0234 120.85L42.5781 93.1152L13.1836 93.5059L27.9785 111.768ZM26.2695 109.082L31.2012 112.793L56.3965 80.5664L51.416 76.8066ZM19.5801 25.3418L7.51953 40.6738L3.02734 66.5039L27.8809 52.5879ZM5.76172 46.9238L43.7012 62.3047L46.0449 56.5918L8.10547 41.2598ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Soccer/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z/>/svg>Getty Images/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM64.6943 26.9043C72.165 26.9043 78.1221 20.8984 78.1221 13.4766C78.1221 6.00586 72.165-1.42109e-14 64.6943-1.42109e-14C57.2236-1.42109e-14 51.2178 6.00586 51.2178 13.4766C51.2178 20.8984 57.2236 26.9043 64.6943 26.9043ZM43.6006 80.8594L67.3799 94.2383L51.999 107.471C48.7764 110.205 48.7764 113.818 50.7783 116.064C52.8779 118.408 56.4912 118.799 59.8115 115.967L81.1982 97.7539C84.0791 95.2637 83.5908 89.9902 80.124 87.7441L56.833 72.4609L61.4717 56.3477C62.1064 53.9551 64.792 53.6621 66.208 55.7129L73.0439 65.6738C74.6553 67.9687 77.5361 68.8477 80.1728 67.6758L99.8017 58.8867C103.269 57.373 104.538 54.3945 103.024 51.2695C101.56 48.1934 98.581 47.2656 95.1631 48.7793L79.5381 55.7129L68.7471 40.8203C63.1806 33.1055 56.2471 30.0293 44.9189 30.8594L23.0928 32.4219C19.7236 32.666 17.331 34.9121 16.8916 38.4277L13.9619 60.5469C13.4248 64.3555 15.2803 66.9922 18.6982 67.334C22.0674 67.6758 24.2646 65.6738 24.8017 61.9141L27.4873 43.75L36.2764 43.1641C38.3271 42.9687 40.1826 44.4336 39.499 46.7773L34.4697 64.5996C31.4424 75 38.2295 77.832 43.6006 80.8594ZM2.09666 134.424C4.44041 136.426 7.90721 136.572 10.9834 133.594L31.0517 113.721C32.7607 112.012 33.1025 111.621 34.1279 109.033L42.6728 87.0117L40.7197 85.9375C35.9834 83.3008 32.6631 80.7617 30.5146 77.9297L23.0928 104.395L2.19432 125.146C-0.979509 128.271-0.4424 132.178 2.09666 134.424Z transformscale(0.176) translate(-10, -5) fill-opacity0.85/>/svg>Track & Field/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z/>/svg>Imagn Images/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM5.9082 68.2617C22.998 44.7266 49.4629 29.7363 79.9805 29.7363C92.1875 29.7363 103.662 32.0801 114.551 36.7188L112.939 29.3945C102.686 25.6348 91.4551 23.5352 79.9805 23.5352C47.9492 23.5352 19.5312 39.4531 1.51367 63.7695ZM113.428 93.3105L119.336 91.6504C109.766 58.7891 55.4688 51.4648 55.4688 24.5605C55.4688 16.2109 59.9121 10.1074 67.8223 6.15234L63.2812 1.5625C54.7852 6.44531 49.2676 14.6973 49.2676 24.5605C49.2676 56.3477 104.932 64.6973 113.428 93.3105ZM21.9238 108.252L29.248 109.326C19.7266 91.0156 29.1016 64.5996 27.5391 41.9434C27.0996 36.2305 23.4375 25.3418 16.8457 23.7793L15.0879 29.7852C18.4082 29.9805 21.0938 38.1348 21.3379 42.4316C22.7539 62.4512 14.2578 88.1348 21.9238 108.252ZM72.4609 123.145L77.3926 119.434C40.2832 73.3398 34.8145 23.291 40.9668 9.76562L34.2773 10.498C29.1992 29.1992 36.6699 78.4668 72.4609 123.145ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Basketball/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z/>/svg>Automatic Captioning/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM89.8438 119.385L91.3574 112.402C76.8555 111.914 66.8945 88.623 64.6484 68.7012C89.209 46.4355 106.152 18.75 93.5059 8.05664L88.8672 13.4277C96.5332 19.873 83.1543 42.2363 60.0098 63.2812C37.3535 53.5645 13.7207 50 2.34375 63.0371L7.4707 67.041C16.0156 57.9102 35.791 60.5957 57.5684 70.1172C60.1074 90.8203 71.2891 117.969 89.8438 119.385ZM73.6816 100.049C115.43 74.6582 121.436 42.4805 118.262 31.9336L111.426 33.9844C113.867 42.1387 108.643 71.0449 69.1895 94.5312ZM57.0312 125.635L62.3047 119.922C51.9043 116.504 29.834 95.2148 28.8086 58.9844L21.6309 59.6191C22.7051 95.6543 43.9941 119.141 57.0312 125.635ZM80.8105 42.7734L84.1309 36.4746C66.9434 23.9746 34.7168 14.3066 11.1328 30.5664L11.377 38.1836C32.7148 21.4844 63.5742 30.3711 80.8105 42.7734ZM63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0ZM63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Volleyball/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM64.6943 26.9043C72.165 26.9043 78.1221 20.8984 78.1221 13.4766C78.1221 6.00586 72.165-1.42109e-14 64.6943-1.42109e-14C57.2236-1.42109e-14 51.2178 6.00586 51.2178 13.4766C51.2178 20.8984 57.2236 26.9043 64.6943 26.9043ZM43.6006 80.8594L67.3799 94.2383L51.999 107.471C48.7764 110.205 48.7764 113.818 50.7783 116.064C52.8779 118.408 56.4912 118.799 59.8115 115.967L81.1982 97.7539C84.0791 95.2637 83.5908 89.9902 80.124 87.7441L56.833 72.4609L61.4717 56.3477C62.1064 53.9551 64.792 53.6621 66.208 55.7129L73.0439 65.6738C74.6553 67.9687 77.5361 68.8477 80.1728 67.6758L99.8017 58.8867C103.269 57.373 104.538 54.3945 103.024 51.2695C101.56 48.1934 98.581 47.2656 95.1631 48.7793L79.5381 55.7129L68.7471 40.8203C63.1806 33.1055 56.2471 30.0293 44.9189 30.8594L23.0928 32.4219C19.7236 32.666 17.331 34.9121 16.8916 38.4277L13.9619 60.5469C13.4248 64.3555 15.2803 66.9922 18.6982 67.334C22.0674 67.6758 24.2646 65.6738 24.8017 61.9141L27.4873 43.75L36.2764 43.1641C38.3271 42.9687 40.1826 44.4336 39.499 46.7773L34.4697 64.5996C31.4424 75 38.2295 77.832 43.6006 80.8594ZM2.09666 134.424C4.44041 136.426 7.90721 136.572 10.9834 133.594L31.0517 113.721C32.7607 112.012 33.1025 111.621 34.1279 109.033L42.6728 87.0117L40.7197 85.9375C35.9834 83.3008 32.6631 80.7617 30.5146 77.9297L23.0928 104.395L2.19432 125.146C-0.979509 128.271-0.4424 132.178 2.09666 134.424Z transformscale(0.176) translate(-10, -5) fill-opacity0.85/>/svg>Cross Country/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z/>/svg>FTP Mode/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM49.6582 121.729L55.1758 123.047C60.7422 106.348 59.5215 87.5 50.1465 71.2402C40.7227 55.0293 25.0977 44.5312 7.91016 40.9668L6.34766 46.3867C21.9727 49.5605 36.3281 59.1797 45.0195 74.1699C53.7109 89.2578 54.8828 106.494 49.6582 121.729ZM22.8516 56.3477L28.2715 45.8984C28.9551 44.5801 28.5156 43.0664 27.2461 42.4805C25.9277 41.748 24.3652 42.041 23.6816 43.457L18.3105 53.8086C17.5781 55.1758 18.0664 56.7383 19.3848 57.373C20.6543 58.0078 22.168 57.7148 22.8516 56.3477ZM34.668 64.7461L42.9199 56.25C43.9941 55.1758 43.8965 53.6133 42.8711 52.6855C41.7969 51.6602 40.2344 51.5137 39.1602 52.6367L30.957 61.0352C29.8828 62.1094 29.9805 63.7695 31.0547 64.7461C32.0801 65.7227 33.5938 65.8203 34.668 64.7461ZM43.8477 77.6855L54.1992 72.0215C55.5664 71.2891 55.9082 69.6777 55.127 68.5059C54.4434 67.2363 52.9297 66.6992 51.6113 67.4316L41.3574 73.0957C39.9902 73.877 39.6484 75.4883 40.3809 76.6602C41.1621 77.9297 42.5293 78.418 43.8477 77.6855ZM48.877 92.5293L60.3516 89.6973C61.7676 89.3066 62.5488 87.8906 62.207 86.5234C61.8164 85.1562 60.498 84.2285 59.0332 84.6191L47.6562 87.4512C46.1914 87.8418 45.4102 89.2578 45.752 90.625C46.1426 91.9922 47.4121 92.9199 48.877 92.5293ZM49.6094 107.617L61.3281 108.154C62.8418 108.203 63.9648 107.031 64.0137 105.664C64.0137 104.248 62.9883 103.027 61.4746 102.979L49.8047 102.393C48.291 102.344 47.168 103.516 47.1191 104.932C47.0703 106.348 48.1445 107.52 49.6094 107.617ZM119.043 86.1816L120.557 80.7129C104.834 77.5879 90.5273 67.9199 81.8359 52.9297C73.1934 37.8418 72.0215 20.6055 77.1484 5.41992L71.6309 4.15039C66.1133 20.752 67.334 39.5996 76.7578 55.8594C86.1328 72.168 101.807 82.5684 119.043 86.1816ZM77.1973 24.8535C78.7598 24.9512 79.834 23.877 79.834 22.3633C79.9316 20.9473 78.8574 19.7266 77.3926 19.6777L65.6738 19.0918C64.1602 19.043 63.0371 20.2148 63.0371 21.6797C62.9395 23.0469 63.9648 24.2676 65.4785 24.3164ZM78.6133 39.4531C80.1758 39.0625 80.8594 37.6465 80.4688 36.2793C80.1758 34.9121 78.8574 33.9844 77.3926 34.375L65.918 37.207C64.4531 37.5977 63.7695 39.0625 64.209 40.3809C64.502 41.7969 65.7715 42.6758 67.2363 42.2852ZM85.498 53.9551C86.8652 53.1738 87.1582 51.7578 86.4746 50.3906C85.8398 49.2188 84.2773 48.584 83.0078 49.3652L72.6562 55.1758C71.3379 55.8594 71.0449 57.4707 71.7773 58.6914C72.3633 59.9121 73.9258 60.498 75.2441 59.7168ZM95.9961 65.5273C97.1191 64.3555 97.0215 62.7441 95.8984 61.7676C94.9219 60.8398 93.3594 60.7422 92.2852 61.8164L84.0332 70.2637C83.0078 71.2891 83.1055 72.9004 84.1797 73.9258C85.1562 74.8535 86.7188 74.9023 87.793 73.877ZM108.691 73.4863C109.424 72.168 108.838 70.6543 107.617 69.9219C106.348 69.2871 104.785 69.6777 104.102 70.9473L98.6816 81.3965C97.9492 82.7148 98.4863 84.2285 99.707 84.9121C100.977 85.5469 102.588 85.1562 103.223 83.8379ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Baseball/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM18.4082 110.84L126.221 110.84C137.305 110.84 142.48 104.639 142.529 93.75L104.541 58.3496C101.66 55.6641 98.4375 54.3457 94.873 54.3457C91.3086 54.3457 88.2324 55.6152 85.3027 58.252L56.6895 83.7891L44.9219 73.0469C42.2363 70.6543 39.4531 69.3848 36.377 69.3848C33.4473 69.3848 30.8105 70.5566 28.2715 72.9492L4.39453 94.7266C5.0293 105.664 9.22852 110.84 18.4082 110.84ZM18.9941 114.795L128.906 114.795C141.553 114.795 147.949 108.398 147.949 95.9961L147.949 18.8477C147.949 6.39648 141.553 0 128.906 0L18.9941 0C6.39648 0 0 6.34766 0 18.8477L0 95.9961C0 108.496 6.39648 114.795 18.9941 114.795ZM19.1895 106.152C12.3535 106.152 8.64258 102.539 8.64258 95.5078L8.64258 19.2871C8.64258 12.3047 12.3535 8.64258 19.1895 8.64258L128.76 8.64258C135.449 8.64258 139.258 12.3047 139.258 19.2871L139.258 95.5078C139.258 102.539 135.449 106.152 128.76 106.152Z transformscale(0.162) translate(-1, 0) fill-opacity0.85/>path dM46.5332 58.2031C54.6875 58.2031 61.3281 51.5625 61.3281 43.3594C61.3281 35.2051 54.6875 28.4668 46.5332 28.4668C38.3301 28.4668 31.6895 35.2051 31.6895 43.3594C31.6895 51.5625 38.3301 58.2031 46.5332 58.2031Z transformscale(0.162) translate(-1, 0) fill-opacity0.85/>/svg>RAW+ JPEG Support/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z/>/svg>Softball/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z/>/svg>Smart Player Identification/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z/>/svg>Lacrosse/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z/>/svg>Team Recognition/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM98.872 98.8713C123.14 74.6037 131.685 40.3752 123.579 13.6174C121.528 6.97675 119.575 5.02363 112.935 2.97284C86.2255-5.13262 51.9482 3.4123 27.6318 27.6799C3.41302 51.9475-5.13191 86.2248 2.97356 112.934C4.97552 119.574 6.97747 121.576 13.6181 123.578C40.3759 131.684 74.5556 123.139 98.872 98.8713ZM92.5732 92.5725C70.9423 114.301 42.4755 122.26 16.5478 115.082C12.9833 114.154 12.3974 113.569 11.372 109.809C4.38958 84.0275 12.2997 55.5607 33.9306 33.9787C55.5615 12.2502 83.9794 4.34003 109.761 11.3713C113.569 12.3967 114.155 13.0314 115.132 16.5959C122.261 42.4748 114.253 70.9904 92.5732 92.5725ZM73.4814 4.58417L66.499 11.6154L114.936 60.1018L122.017 53.0705ZM4.63372 73.4807L53.0712 122.016L60.1025 114.936L11.6161 66.4982ZM37.788 75.7756L50.7763 88.7639C51.8017 89.7404 53.3154 89.7404 54.3408 88.7639C55.3173 87.7385 55.3173 86.1271 54.3408 85.1018L41.4013 72.1623C40.3759 71.1857 38.7646 71.1857 37.788 72.1623C36.7626 73.1877 36.7626 74.7502 37.788 75.7756ZM46.3818 67.0842L59.4189 80.1213C60.3954 81.0978 62.0068 81.0978 62.9833 80.1213C63.9599 79.0959 63.9599 77.4846 62.9833 76.4592L50.0439 63.5197C49.0185 62.5432 47.4072 62.5432 46.3818 63.5197C45.454 64.5451 45.454 66.1076 46.3818 67.0842ZM55.0732 58.4416L68.0615 71.4787C69.038 72.4553 70.6493 72.4553 71.6747 71.4787C72.6025 70.4533 72.6025 68.842 71.6747 67.8654L58.6376 54.8771C57.7099 53.9006 56.0497 53.9006 55.0732 54.8771C54.0966 55.9025 54.0966 57.465 55.0732 58.4416ZM63.7158 49.8967L76.6552 62.8361C77.6806 63.7639 79.2919 63.7639 80.3173 62.8361C81.2939 61.8107 81.2939 60.2482 80.3173 59.2228L67.329 46.2346C66.3036 45.258 64.7411 45.258 63.7158 46.2346C62.7392 47.2111 62.7392 48.8713 63.7158 49.8967ZM72.3583 41.2053L85.2978 54.1447C86.3232 55.1213 87.9345 55.1213 88.9599 54.1447C89.9365 53.1682 89.9365 51.5568 88.9599 50.5803L75.9228 37.5432C74.9462 36.6154 73.3837 36.6154 72.3583 37.5432C71.3818 38.5685 71.3818 40.1799 72.3583 41.2053ZM47.3583 82.8068L82.8075 47.3088L79.2431 43.7443L43.7939 79.2424Z transformscale(0.19) translate(-2, -2) fill-opacity0.85/>/svg>Football/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z/>/svg>Roster Management/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM63.5742 38.3789L39.0625 57.2754L48.877 87.5L78.3203 87.5L88.0859 57.2754ZM85.6934 9.42383L63.5254 2.44141L41.3086 9.42383L63.5254 27.3438ZM60.498 4.6875L60.498 45.6055L66.6992 45.6055L66.6992 4.6875ZM107.568 25.3418L99.3164 52.5879L124.17 66.5039L119.678 40.6738ZM121.387 46.9238L119.043 41.2598L81.1035 56.5918L83.4473 62.3047ZM78.0762 121.045L99.1699 111.963L113.916 93.7012L84.5215 93.3105ZM100.83 109.277L75.6836 77.002L70.7031 80.7617L95.9473 112.988ZM49.0234 120.85L42.5781 93.1152L13.1836 93.5059L27.9785 111.768ZM26.2695 109.082L31.2012 112.793L56.3965 80.5664L51.416 76.8066ZM19.5801 25.3418L7.51953 40.6738L3.02734 66.5039L27.8809 52.5879ZM5.76172 46.9238L43.7012 62.3047L46.0449 56.5918L8.10547 41.2598ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Soccer/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z/>/svg>Caption Generation/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z>/path>/svg>Photo Filtering/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM64.6943 26.9043C72.165 26.9043 78.1221 20.8984 78.1221 13.4766C78.1221 6.00586 72.165-1.42109e-14 64.6943-1.42109e-14C57.2236-1.42109e-14 51.2178 6.00586 51.2178 13.4766C51.2178 20.8984 57.2236 26.9043 64.6943 26.9043ZM43.6006 80.8594L67.3799 94.2383L51.999 107.471C48.7764 110.205 48.7764 113.818 50.7783 116.064C52.8779 118.408 56.4912 118.799 59.8115 115.967L81.1982 97.7539C84.0791 95.2637 83.5908 89.9902 80.124 87.7441L56.833 72.4609L61.4717 56.3477C62.1064 53.9551 64.792 53.6621 66.208 55.7129L73.0439 65.6738C74.6553 67.9687 77.5361 68.8477 80.1728 67.6758L99.8017 58.8867C103.269 57.373 104.538 54.3945 103.024 51.2695C101.56 48.1934 98.581 47.2656 95.1631 48.7793L79.5381 55.7129L68.7471 40.8203C63.1806 33.1055 56.2471 30.0293 44.9189 30.8594L23.0928 32.4219C19.7236 32.666 17.331 34.9121 16.8916 38.4277L13.9619 60.5469C13.4248 64.3555 15.2803 66.9922 18.6982 67.334C22.0674 67.6758 24.2646 65.6738 24.8017 61.9141L27.4873 43.75L36.2764 43.1641C38.3271 42.9687 40.1826 44.4336 39.499 46.7773L34.4697 64.5996C31.4424 75 38.2295 77.832 43.6006 80.8594ZM2.09666 134.424C4.44041 136.426 7.90721 136.572 10.9834 133.594L31.0517 113.721C32.7607 112.012 33.1025 111.621 34.1279 109.033L42.6728 87.0117L40.7197 85.9375C35.9834 83.3008 32.6631 80.7617 30.5146 77.9297L23.0928 104.395L2.19432 125.146C-0.979509 128.271-0.4424 132.178 2.09666 134.424Z transformscale(0.176) translate(-10, -5) fill-opacity0.85/>/svg>Track & Field/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z/>/svg>Associated Press/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM5.9082 68.2617C22.998 44.7266 49.4629 29.7363 79.9805 29.7363C92.1875 29.7363 103.662 32.0801 114.551 36.7188L112.939 29.3945C102.686 25.6348 91.4551 23.5352 79.9805 23.5352C47.9492 23.5352 19.5312 39.4531 1.51367 63.7695ZM113.428 93.3105L119.336 91.6504C109.766 58.7891 55.4688 51.4648 55.4688 24.5605C55.4688 16.2109 59.9121 10.1074 67.8223 6.15234L63.2812 1.5625C54.7852 6.44531 49.2676 14.6973 49.2676 24.5605C49.2676 56.3477 104.932 64.6973 113.428 93.3105ZM21.9238 108.252L29.248 109.326C19.7266 91.0156 29.1016 64.5996 27.5391 41.9434C27.0996 36.2305 23.4375 25.3418 16.8457 23.7793L15.0879 29.7852C18.4082 29.9805 21.0938 38.1348 21.3379 42.4316C22.7539 62.4512 14.2578 88.1348 21.9238 108.252ZM72.4609 123.145L77.3926 119.434C40.2832 73.3398 34.8145 23.291 40.9668 9.76562L34.2773 10.498C29.1992 29.1992 36.6699 78.4668 72.4609 123.145ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Basketball/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z/>/svg>Getty Images/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM89.8438 119.385L91.3574 112.402C76.8555 111.914 66.8945 88.623 64.6484 68.7012C89.209 46.4355 106.152 18.75 93.5059 8.05664L88.8672 13.4277C96.5332 19.873 83.1543 42.2363 60.0098 63.2812C37.3535 53.5645 13.7207 50 2.34375 63.0371L7.4707 67.041C16.0156 57.9102 35.791 60.5957 57.5684 70.1172C60.1074 90.8203 71.2891 117.969 89.8438 119.385ZM73.6816 100.049C115.43 74.6582 121.436 42.4805 118.262 31.9336L111.426 33.9844C113.867 42.1387 108.643 71.0449 69.1895 94.5312ZM57.0312 125.635L62.3047 119.922C51.9043 116.504 29.834 95.2148 28.8086 58.9844L21.6309 59.6191C22.7051 95.6543 43.9941 119.141 57.0312 125.635ZM80.8105 42.7734L84.1309 36.4746C66.9434 23.9746 34.7168 14.3066 11.1328 30.5664L11.377 38.1836C32.7148 21.4844 63.5742 30.3711 80.8105 42.7734ZM63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0ZM63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Volleyball/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z/>/svg>Imagn Images/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM64.6943 26.9043C72.165 26.9043 78.1221 20.8984 78.1221 13.4766C78.1221 6.00586 72.165-1.42109e-14 64.6943-1.42109e-14C57.2236-1.42109e-14 51.2178 6.00586 51.2178 13.4766C51.2178 20.8984 57.2236 26.9043 64.6943 26.9043ZM43.6006 80.8594L67.3799 94.2383L51.999 107.471C48.7764 110.205 48.7764 113.818 50.7783 116.064C52.8779 118.408 56.4912 118.799 59.8115 115.967L81.1982 97.7539C84.0791 95.2637 83.5908 89.9902 80.124 87.7441L56.833 72.4609L61.4717 56.3477C62.1064 53.9551 64.792 53.6621 66.208 55.7129L73.0439 65.6738C74.6553 67.9687 77.5361 68.8477 80.1728 67.6758L99.8017 58.8867C103.269 57.373 104.538 54.3945 103.024 51.2695C101.56 48.1934 98.581 47.2656 95.1631 48.7793L79.5381 55.7129L68.7471 40.8203C63.1806 33.1055 56.2471 30.0293 44.9189 30.8594L23.0928 32.4219C19.7236 32.666 17.331 34.9121 16.8916 38.4277L13.9619 60.5469C13.4248 64.3555 15.2803 66.9922 18.6982 67.334C22.0674 67.6758 24.2646 65.6738 24.8017 61.9141L27.4873 43.75L36.2764 43.1641C38.3271 42.9687 40.1826 44.4336 39.499 46.7773L34.4697 64.5996C31.4424 75 38.2295 77.832 43.6006 80.8594ZM2.09666 134.424C4.44041 136.426 7.90721 136.572 10.9834 133.594L31.0517 113.721C32.7607 112.012 33.1025 111.621 34.1279 109.033L42.6728 87.0117L40.7197 85.9375C35.9834 83.3008 32.6631 80.7617 30.5146 77.9297L23.0928 104.395L2.19432 125.146C-0.979509 128.271-0.4424 132.178 2.09666 134.424Z transformscale(0.176) translate(-10, -5) fill-opacity0.85/>/svg>Cross Country/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM49.6582 121.729L55.1758 123.047C60.7422 106.348 59.5215 87.5 50.1465 71.2402C40.7227 55.0293 25.0977 44.5312 7.91016 40.9668L6.34766 46.3867C21.9727 49.5605 36.3281 59.1797 45.0195 74.1699C53.7109 89.2578 54.8828 106.494 49.6582 121.729ZM22.8516 56.3477L28.2715 45.8984C28.9551 44.5801 28.5156 43.0664 27.2461 42.4805C25.9277 41.748 24.3652 42.041 23.6816 43.457L18.3105 53.8086C17.5781 55.1758 18.0664 56.7383 19.3848 57.373C20.6543 58.0078 22.168 57.7148 22.8516 56.3477ZM34.668 64.7461L42.9199 56.25C43.9941 55.1758 43.8965 53.6133 42.8711 52.6855C41.7969 51.6602 40.2344 51.5137 39.1602 52.6367L30.957 61.0352C29.8828 62.1094 29.9805 63.7695 31.0547 64.7461C32.0801 65.7227 33.5938 65.8203 34.668 64.7461ZM43.8477 77.6855L54.1992 72.0215C55.5664 71.2891 55.9082 69.6777 55.127 68.5059C54.4434 67.2363 52.9297 66.6992 51.6113 67.4316L41.3574 73.0957C39.9902 73.877 39.6484 75.4883 40.3809 76.6602C41.1621 77.9297 42.5293 78.418 43.8477 77.6855ZM48.877 92.5293L60.3516 89.6973C61.7676 89.3066 62.5488 87.8906 62.207 86.5234C61.8164 85.1562 60.498 84.2285 59.0332 84.6191L47.6562 87.4512C46.1914 87.8418 45.4102 89.2578 45.752 90.625C46.1426 91.9922 47.4121 92.9199 48.877 92.5293ZM49.6094 107.617L61.3281 108.154C62.8418 108.203 63.9648 107.031 64.0137 105.664C64.0137 104.248 62.9883 103.027 61.4746 102.979L49.8047 102.393C48.291 102.344 47.168 103.516 47.1191 104.932C47.0703 106.348 48.1445 107.52 49.6094 107.617ZM119.043 86.1816L120.557 80.7129C104.834 77.5879 90.5273 67.9199 81.8359 52.9297C73.1934 37.8418 72.0215 20.6055 77.1484 5.41992L71.6309 4.15039C66.1133 20.752 67.334 39.5996 76.7578 55.8594C86.1328 72.168 101.807 82.5684 119.043 86.1816ZM77.1973 24.8535C78.7598 24.9512 79.834 23.877 79.834 22.3633C79.9316 20.9473 78.8574 19.7266 77.3926 19.6777L65.6738 19.0918C64.1602 19.043 63.0371 20.2148 63.0371 21.6797C62.9395 23.0469 63.9648 24.2676 65.4785 24.3164ZM78.6133 39.4531C80.1758 39.0625 80.8594 37.6465 80.4688 36.2793C80.1758 34.9121 78.8574 33.9844 77.3926 34.375L65.918 37.207C64.4531 37.5977 63.7695 39.0625 64.209 40.3809C64.502 41.7969 65.7715 42.6758 67.2363 42.2852ZM85.498 53.9551C86.8652 53.1738 87.1582 51.7578 86.4746 50.3906C85.8398 49.2188 84.2773 48.584 83.0078 49.3652L72.6562 55.1758C71.3379 55.8594 71.0449 57.4707 71.7773 58.6914C72.3633 59.9121 73.9258 60.498 75.2441 59.7168ZM95.9961 65.5273C97.1191 64.3555 97.0215 62.7441 95.8984 61.7676C94.9219 60.8398 93.3594 60.7422 92.2852 61.8164L84.0332 70.2637C83.0078 71.2891 83.1055 72.9004 84.1797 73.9258C85.1562 74.8535 86.7188 74.9023 87.793 73.877ZM108.691 73.4863C109.424 72.168 108.838 70.6543 107.617 69.9219C106.348 69.2871 104.785 69.6777 104.102 70.9473L98.6816 81.3965C97.9492 82.7148 98.4863 84.2285 99.707 84.9121C100.977 85.5469 102.588 85.1562 103.223 83.8379ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Baseball/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z/>/svg>Softball/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z/>/svg>Lacrosse/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM98.872 98.8713C123.14 74.6037 131.685 40.3752 123.579 13.6174C121.528 6.97675 119.575 5.02363 112.935 2.97284C86.2255-5.13262 51.9482 3.4123 27.6318 27.6799C3.41302 51.9475-5.13191 86.2248 2.97356 112.934C4.97552 119.574 6.97747 121.576 13.6181 123.578C40.3759 131.684 74.5556 123.139 98.872 98.8713ZM92.5732 92.5725C70.9423 114.301 42.4755 122.26 16.5478 115.082C12.9833 114.154 12.3974 113.569 11.372 109.809C4.38958 84.0275 12.2997 55.5607 33.9306 33.9787C55.5615 12.2502 83.9794 4.34003 109.761 11.3713C113.569 12.3967 114.155 13.0314 115.132 16.5959C122.261 42.4748 114.253 70.9904 92.5732 92.5725ZM73.4814 4.58417L66.499 11.6154L114.936 60.1018L122.017 53.0705ZM4.63372 73.4807L53.0712 122.016L60.1025 114.936L11.6161 66.4982ZM37.788 75.7756L50.7763 88.7639C51.8017 89.7404 53.3154 89.7404 54.3408 88.7639C55.3173 87.7385 55.3173 86.1271 54.3408 85.1018L41.4013 72.1623C40.3759 71.1857 38.7646 71.1857 37.788 72.1623C36.7626 73.1877 36.7626 74.7502 37.788 75.7756ZM46.3818 67.0842L59.4189 80.1213C60.3954 81.0978 62.0068 81.0978 62.9833 80.1213C63.9599 79.0959 63.9599 77.4846 62.9833 76.4592L50.0439 63.5197C49.0185 62.5432 47.4072 62.5432 46.3818 63.5197C45.454 64.5451 45.454 66.1076 46.3818 67.0842ZM55.0732 58.4416L68.0615 71.4787C69.038 72.4553 70.6493 72.4553 71.6747 71.4787C72.6025 70.4533 72.6025 68.842 71.6747 67.8654L58.6376 54.8771C57.7099 53.9006 56.0497 53.9006 55.0732 54.8771C54.0966 55.9025 54.0966 57.465 55.0732 58.4416ZM63.7158 49.8967L76.6552 62.8361C77.6806 63.7639 79.2919 63.7639 80.3173 62.8361C81.2939 61.8107 81.2939 60.2482 80.3173 59.2228L67.329 46.2346C66.3036 45.258 64.7411 45.258 63.7158 46.2346C62.7392 47.2111 62.7392 48.8713 63.7158 49.8967ZM72.3583 41.2053L85.2978 54.1447C86.3232 55.1213 87.9345 55.1213 88.9599 54.1447C89.9365 53.1682 89.9365 51.5568 88.9599 50.5803L75.9228 37.5432C74.9462 36.6154 73.3837 36.6154 72.3583 37.5432C71.3818 38.5685 71.3818 40.1799 72.3583 41.2053ZM47.3583 82.8068L82.8075 47.3088L79.2431 43.7443L43.7939 79.2424Z transformscale(0.19) translate(-2, -2) fill-opacity0.85/>/svg>Football/span> /div> !-- Third Row - Animates right on scroll down, left on scroll up (like first row) --> div classsports-tags-row sports-tags-row-third mt-4> !-- Mix of sports and features for continuous coverage --> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z/>/svg>Lacrosse/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z/>/svg>Roster Management/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM63.5742 38.3789L39.0625 57.2754L48.877 87.5L78.3203 87.5L88.0859 57.2754ZM85.6934 9.42383L63.5254 2.44141L41.3086 9.42383L63.5254 27.3438ZM60.498 4.6875L60.498 45.6055L66.6992 45.6055L66.6992 4.6875ZM107.568 25.3418L99.3164 52.5879L124.17 66.5039L119.678 40.6738ZM121.387 46.9238L119.043 41.2598L81.1035 56.5918L83.4473 62.3047ZM78.0762 121.045L99.1699 111.963L113.916 93.7012L84.5215 93.3105ZM100.83 109.277L75.6836 77.002L70.7031 80.7617L95.9473 112.988ZM49.0234 120.85L42.5781 93.1152L13.1836 93.5059L27.9785 111.768ZM26.2695 109.082L31.2012 112.793L56.3965 80.5664L51.416 76.8066ZM19.5801 25.3418L7.51953 40.6738L3.02734 66.5039L27.8809 52.5879ZM5.76172 46.9238L43.7012 62.3047L46.0449 56.5918L8.10547 41.2598ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Soccer/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z>/path>/svg>Photo Filtering/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM18.4082 110.84L126.221 110.84C137.305 110.84 142.48 104.639 142.529 93.75L104.541 58.3496C101.66 55.6641 98.4375 54.3457 94.873 54.3457C91.3086 54.3457 88.2324 55.6152 85.3027 58.252L56.6895 83.7891L44.9219 73.0469C42.2363 70.6543 39.4531 69.3848 36.377 69.3848C33.4473 69.3848 30.8105 70.5566 28.2715 72.9492L4.39453 94.7266C5.0293 105.664 9.22852 110.84 18.4082 110.84ZM18.9941 114.795L128.906 114.795C141.553 114.795 147.949 108.398 147.949 95.9961L147.949 18.8477C147.949 6.39648 141.553 0 128.906 0L18.9941 0C6.39648 0 0 6.34766 0 18.8477L0 95.9961C0 108.496 6.39648 114.795 18.9941 114.795ZM19.1895 106.152C12.3535 106.152 8.64258 102.539 8.64258 95.5078L8.64258 19.2871C8.64258 12.3047 12.3535 8.64258 19.1895 8.64258L128.76 8.64258C135.449 8.64258 139.258 12.3047 139.258 19.2871L139.258 95.5078C139.258 102.539 135.449 106.152 128.76 106.152Z transformscale(0.162) translate(-1, 0) fill-opacity0.85/>path dM46.5332 58.2031C54.6875 58.2031 61.3281 51.5625 61.3281 43.3594C61.3281 35.2051 54.6875 28.4668 46.5332 28.4668C38.3301 28.4668 31.6895 35.2051 31.6895 43.3594C31.6895 51.5625 38.3301 58.2031 46.5332 58.2031Z transformscale(0.162) translate(-1, 0) fill-opacity0.85/>/svg>RAW+ JPEG Support/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z/>/svg>Smart Player Identification/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z/>/svg>Team Recognition/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z/>/svg>Caption Generation/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM64.6943 26.9043C72.165 26.9043 78.1221 20.8984 78.1221 13.4766C78.1221 6.00586 72.165-1.42109e-14 64.6943-1.42109e-14C57.2236-1.42109e-14 51.2178 6.00586 51.2178 13.4766C51.2178 20.8984 57.2236 26.9043 64.6943 26.9043ZM43.6006 80.8594L67.3799 94.2383L51.999 107.471C48.7764 110.205 48.7764 113.818 50.7783 116.064C52.8779 118.408 56.4912 118.799 59.8115 115.967L81.1982 97.7539C84.0791 95.2637 83.5908 89.9902 80.124 87.7441L56.833 72.4609L61.4717 56.3477C62.1064 53.9551 64.792 53.6621 66.208 55.7129L73.0439 65.6738C74.6553 67.9687 77.5361 68.8477 80.1728 67.6758L99.8017 58.8867C103.269 57.373 104.538 54.3945 103.024 51.2695C101.56 48.1934 98.581 47.2656 95.1631 48.7793L79.5381 55.7129L68.7471 40.8203C63.1806 33.1055 56.2471 30.0293 44.9189 30.8594L23.0928 32.4219C19.7236 32.666 17.331 34.9121 16.8916 38.4277L13.9619 60.5469C13.4248 64.3555 15.2803 66.9922 18.6982 67.334C22.0674 67.6758 24.2646 65.6738 24.8017 61.9141L27.4873 43.75L36.2764 43.1641C38.3271 42.9687 40.1826 44.4336 39.499 46.7773L34.4697 64.5996C31.4424 75 38.2295 77.832 43.6006 80.8594ZM2.09666 134.424C4.44041 136.426 7.90721 136.572 10.9834 133.594L31.0517 113.721C32.7607 112.012 33.1025 111.621 34.1279 109.033L42.6728 87.0117L40.7197 85.9375C35.9834 83.3008 32.6631 80.7617 30.5146 77.9297L23.0928 104.395L2.19432 125.146C-0.979509 128.271-0.4424 132.178 2.09666 134.424Z transformscale(0.176) translate(-10, -5) fill-opacity0.85/>/svg>Track & Field/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z/>/svg>Getty Images/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z/>/svg>Softball/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM89.8438 119.385L91.3574 112.402C76.8555 111.914 66.8945 88.623 64.6484 68.7012C89.209 46.4355 106.152 18.75 93.5059 8.05664L88.8672 13.4277C96.5332 19.873 83.1543 42.2363 60.0098 63.2812C37.3535 53.5645 13.7207 50 2.34375 63.0371L7.4707 67.041C16.0156 57.9102 35.791 60.5957 57.5684 70.1172C60.1074 90.8203 71.2891 117.969 89.8438 119.385ZM73.6816 100.049C115.43 74.6582 121.436 42.4805 118.262 31.9336L111.426 33.9844C113.867 42.1387 108.643 71.0449 69.1895 94.5312ZM57.0312 125.635L62.3047 119.922C51.9043 116.504 29.834 95.2148 28.8086 58.9844L21.6309 59.6191C22.7051 95.6543 43.9941 119.141 57.0312 125.635ZM80.8105 42.7734L84.1309 36.4746C66.9434 23.9746 34.7168 14.3066 11.1328 30.5664L11.377 38.1836C32.7148 21.4844 63.5742 30.3711 80.8105 42.7734ZM63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0ZM63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Volleyball/span> span classsports-tag sports-tag-gradient-1 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z/>/svg>Imagn Images/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z/>/svg>Associated Press/span> span classsports-tag sports-tag-gradient-3 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM49.6582 121.729L55.1758 123.047C60.7422 106.348 59.5215 87.5 50.1465 71.2402C40.7227 55.0293 25.0977 44.5312 7.91016 40.9668L6.34766 46.3867C21.9727 49.5605 36.3281 59.1797 45.0195 74.1699C53.7109 89.2578 54.8828 106.494 49.6582 121.729ZM22.8516 56.3477L28.2715 45.8984C28.9551 44.5801 28.5156 43.0664 27.2461 42.4805C25.9277 41.748 24.3652 42.041 23.6816 43.457L18.3105 53.8086C17.5781 55.1758 18.0664 56.7383 19.3848 57.373C20.6543 58.0078 22.168 57.7148 22.8516 56.3477ZM34.668 64.7461L42.9199 56.25C43.9941 55.1758 43.8965 53.6133 42.8711 52.6855C41.7969 51.6602 40.2344 51.5137 39.1602 52.6367L30.957 61.0352C29.8828 62.1094 29.9805 63.7695 31.0547 64.7461C32.0801 65.7227 33.5938 65.8203 34.668 64.7461ZM43.8477 77.6855L54.1992 72.0215C55.5664 71.2891 55.9082 69.6777 55.127 68.5059C54.4434 67.2363 52.9297 66.6992 51.6113 67.4316L41.3574 73.0957C39.9902 73.877 39.6484 75.4883 40.3809 76.6602C41.1621 77.9297 42.5293 78.418 43.8477 77.6855ZM48.877 92.5293L60.3516 89.6973C61.7676 89.3066 62.5488 87.8906 62.207 86.5234C61.8164 85.1562 60.498 84.2285 59.0332 84.6191L47.6562 87.4512C46.1914 87.8418 45.4102 89.2578 45.752 90.625C46.1426 91.9922 47.4121 92.9199 48.877 92.5293ZM49.6094 107.617L61.3281 108.154C62.8418 108.203 63.9648 107.031 64.0137 105.664C64.0137 104.248 62.9883 103.027 61.4746 102.979L49.8047 102.393C48.291 102.344 47.168 103.516 47.1191 104.932C47.0703 106.348 48.1445 107.52 49.6094 107.617ZM119.043 86.1816L120.557 80.7129C104.834 77.5879 90.5273 67.9199 81.8359 52.9297C73.1934 37.8418 72.0215 20.6055 77.1484 5.41992L71.6309 4.15039C66.1133 20.752 67.334 39.5996 76.7578 55.8594C86.1328 72.168 101.807 82.5684 119.043 86.1816ZM77.1973 24.8535C78.7598 24.9512 79.834 23.877 79.834 22.3633C79.9316 20.9473 78.8574 19.7266 77.3926 19.6777L65.6738 19.0918C64.1602 19.043 63.0371 20.2148 63.0371 21.6797C62.9395 23.0469 63.9648 24.2676 65.4785 24.3164ZM78.6133 39.4531C80.1758 39.0625 80.8594 37.6465 80.4688 36.2793C80.1758 34.9121 78.8574 33.9844 77.3926 34.375L65.918 37.207C64.4531 37.5977 63.7695 39.0625 64.209 40.3809C64.502 41.7969 65.7715 42.6758 67.2363 42.2852ZM85.498 53.9551C86.8652 53.1738 87.1582 51.7578 86.4746 50.3906C85.8398 49.2188 84.2773 48.584 83.0078 49.3652L72.6562 55.1758C71.3379 55.8594 71.0449 57.4707 71.7773 58.6914C72.3633 59.9121 73.9258 60.498 75.2441 59.7168ZM95.9961 65.5273C97.1191 64.3555 97.0215 62.7441 95.8984 61.7676C94.9219 60.8398 93.3594 60.7422 92.2852 61.8164L84.0332 70.2637C83.0078 71.2891 83.1055 72.9004 84.1797 73.9258C85.1562 74.8535 86.7188 74.9023 87.793 73.877ZM108.691 73.4863C109.424 72.168 108.838 70.6543 107.617 69.9219C106.348 69.2871 104.785 69.6777 104.102 70.9473L98.6816 81.3965C97.9492 82.7148 98.4863 84.2285 99.707 84.9121C100.977 85.5469 102.588 85.1562 103.223 83.8379ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Baseball/span> span classsports-tag sports-tag-gradient-2 text-white>svg fillcurrentColor viewBox0 0 24 24>path dM5.9082 68.2617C22.998 44.7266 49.4629 29.7363 79.9805 29.7363C92.1875 29.7363 103.662 32.0801 114.551 36.7188L112.939 29.3945C102.686 25.6348 91.4551 23.5352 79.9805 23.5352C47.9492 23.5352 19.5312 39.4531 1.51367 63.7695ZM113.428 93.3105L119.336 91.6504C109.766 58.7891 55.4688 51.4648 55.4688 24.5605C55.4688 16.2109 59.9121 10.1074 67.8223 6.15234L63.2812 1.5625C54.7852 6.44531 49.2676 14.6973 49.2676 24.5605C49.2676 56.3477 104.932 64.6973 113.428 93.3105ZM21.9238 108.252L29.248 109.326C19.7266 91.0156 29.1016 64.5996 27.5391 41.9434C27.0996 36.2305 23.4375 25.3418 16.8457 23.7793L15.0879 29.7852C18.4082 29.9805 21.0938 38.1348 21.3379 42.4316C22.7539 62.4512 14.2578 88.1348 21.9238 108.252ZM72.4609 123.145L77.3926 119.434C40.2832 73.3398 34.8145 23.291 40.9668 9.76562L34.2773 10.498C29.1992 29.1992 36.6699 78.4668 72.4609 123.145ZM63.5742 127.197C98.6816 127.197 127.197 98.7305 127.197 63.623C127.197 28.5156 98.6816 0 63.5742 0C28.4668 0 0 28.5156 0 63.623C0 98.7305 28.4668 127.197 63.5742 127.197ZM63.5742 119.775C32.5684 119.775 7.42188 94.6289 7.42188 63.623C7.42188 32.5684 32.5684 7.42188 63.5742 7.42188C94.6289 7.42188 119.775 32.5684 119.775 63.623C119.775 94.6289 94.6289 119.775 63.5742 119.775Z transformscale(0.189) translate(-2, -2) fill-opacity0.85/>/svg>Basketball/span> /div> /div> /section> !-- Features Section --> section idfeatures classpt-12 md:pt-24 pb-12 px-6 sm:px-8 lg:px-12 bg-zinc-950> div classmax-w-7xl mx-auto> div classtext-center mb-16> h2 classtext-3xl md:text-5xl font-bold mb-4 bg-clip-text text-transparent bg-gradient-to-r from-#667eea to-#353eb7 leading-normal md:leading-normal data-aosfade data-aos-duration600>Powerful AI Features/h2> p classtext-xl text-gray-400 max-w-2xl mx-auto data-aosfade data-aos-duration600 data-aos-delay200> From player recognition to publish-ready metadata, Sideline includes everything you need to fully automate your captioning workflow. /p> /div> !-- OLD 3x3 GRID LAYOUT - COMMENTED OUT --> !-- div classgrid md:grid-cols-2 lg:grid-cols-3 gap-8> Feature 0: Code Replacement Generation div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden styleline-height: 0;> img srcimages/roster-management.webp altRoster management classw-full styleheight: 200px; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> div classp-4 md:p-8 pt-4 md:pt-6 styleline-height: normal;> div classw-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6 mx-auto md:mx-0> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z>/path> /svg> /div> div classflex flex-col md:flex-row items-center justify-center md:justify-start gap-2 md:gap-3 mb-4> span classinline-flex items-center px-3 py-1 rounded-full text-xs font-semibold bg-purple-900/40 text-purple-200 border border-purple-700/50 whitespace-nowrap md:order-last>Paid Feature/span> h3 classtext-lg md:text-2xl font-bold text-white text-center md:text-left md:order-first>Roster Management/h3> /div> ul classspace-y-3 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Paste a roster link and Sideline automatically builds a Photo Mechanic code replacement file/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Include player numbers, positions, and team names for a Code Replacement workflow that works for you/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Save ready-to-import Code Replacement files directly from Sideline in just a few clicks/span> /li> /ul> /div> /div> Feature 1: Automatic Caption Generation div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden styleline-height: 0;> img srcimages/automatic-caption-generation.webp altAutomatic caption generation classw-full styleheight: 200px; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> div classp-4 md:p-8 pt-4 md:pt-6 styleline-height: normal;> div classw-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6 mx-auto md:mx-0> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z>/path> /svg> /div> h3 classtext-lg md:text-2xl font-bold mb-4 text-white text-center md:text-left>Automatic Caption Generation/h3> ul classspace-y-3 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Monitors your selected folder and automatically generates captions for new images/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Captions images using names from your Photo Mechanic Code Replacements file/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Supports AP, Getty, Imagn, and Simple caption styles/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Automatically write player names to IPTC keywords/span> /li> /ul> /div> /div> Feature 2: Smart Player Identification div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden styleline-height: 0;> img srcimages/team-player-identification.webp altTeam and player identification settings classw-full styleheight: 200px; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> div classp-4 md:p-8 pt-4 md:pt-6 styleline-height: normal;> div classw-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6 mx-auto md:mx-0> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z>/path> /svg> /div> h3 classtext-lg md:text-2xl font-bold mb-4 text-white text-center md:text-left>Intelligent Player and Team Identification/h3> ul classspace-y-3 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Identify teams by jersey color/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Intelligent recognition of both offensive and defensive players with the same jersey number (for sports like football)/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Use in-camera audio recordings to give additional context to a photo/span> /li> /ul> /div> /div> Feature 3: Smart Processing div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden styleline-height: 0;> img srcimages/smart-image-processing.webp altImage processing settings classw-full styleheight: 200px; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> div classp-4 md:p-8 pt-4 md:pt-6 styleline-height: normal;> div classw-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6 mx-auto md:mx-0> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM13 10V3L4 14h7v7l9-11h-7z>/path> /svg> /div> h3 classtext-lg md:text-2xl font-bold mb-4 text-white text-center md:text-left>Smart Image and Metadata Processing/h3> ul classspace-y-3 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Overwrite existing captions if needed/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Smart fallback options when a player cant be identified/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Supports both RAW and JPEG files/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Automatically processes compressed, resized JPEGs (<0.25 MB each) for fast caption generation/span> /li> /ul> /div> /div> Feature 4: Sport Support div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden styleline-height: 0;> img srcimages/multi-sport-support.webp altMulti-sport selection classw-full styleheight: 200px; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> div classp-4 md:p-8 pt-4 md:pt-6 styleline-height: normal;> div classw-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6 mx-auto md:mx-0> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> circle cx12 cy12 r10 stroke-width2/> path dM8 12c0-2.21 1.79-4 4-4s4 1.79 4 4M8 12c0 2.21 1.79 4 4 4s4-1.79 4-4 stroke-width2/> /svg> /div> h3 classtext-lg md:text-2xl font-bold mb-4 text-white text-center md:text-left>Multi-Sport Support/h3> ul classspace-y-2 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Baseball/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Basketball/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Cross Country/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Football/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Lacrosse/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Soccer/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Softball/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Track and Field/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Volleyball/span> /li> /ul> /div> /div> Feature 5: FTP Server Support div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden styleline-height: 0;> img srcimages/ftp-manager.webp altFTP server settings classw-full styleheight: 200px; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> div classp-4 md:p-8 pt-4 md:pt-6 styleline-height: normal;> div classw-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6 mx-auto md:mx-0> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01>/path> /svg> /div> div classflex flex-col md:flex-row items-center mb-4 justify-center md:justify-start gap-2 md:gap-3> span classinline-flex items-center px-3 py-1 rounded-full text-xs font-semibold bg-purple-900/50 text-purple-300 border border-purple-700/50 whitespace-nowrap md:order-last> Paid Feature /span> h3 classtext-lg md:text-2xl font-bold text-white text-center md:text-left md:order-first>FTP Mode/h3> /div> ul classspace-y-3 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Watch remote FTP folders for new images in the background/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Automatically download and caption images as they hit the server/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Intelligent local edit preservation/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Built for wireless workflows—transfer images directly from your camera in-game for instant, automated captioning./span> /li> /ul> /div> /div> Feature 6: Photo Filtering div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden styleline-height: 0;> img srcimages/filtering.webp altPhoto filtering options classw-full styleheight: 200px; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> div classp-4 md:p-8 pt-4 md:pt-6 styleline-height: normal;> div classw-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z>/path> /svg> /div> h3 classtext-lg md:text-2xl font-bold mb-4 text-white>Caption Filtered Photos Only/h3> ul classspace-y-3 text-gray-300 max-w-2xl mx-auto> li classflex items-start justify-center> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Filter images by color class, star rating, and tagged status/span> /li> li classflex items-start justify-center> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Caption only the images that meet your specific criteria/span> /li> li classflex items-start justify-center> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Combine multiple filters for precise control over which images get captioned/span> /li> li classflex items-start justify-center> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Perfect for workflows where you only want to caption your best shots/span> /li> /ul> /div> /div> Feature 7: ESPN Game URL Auto-Matchup div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden styleline-height: 0;> img srcimages/espn-matchup.webp altESPN game URL matchup classw-full styleheight: 200px; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> div classp-4 md:p-8 pt-4 md:pt-6 styleline-height: normal;> div classw-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6 mx-auto md:mx-0> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1>/path> /svg> /div> div classflex flex-col md:flex-row items-center justify-center md:justify-start gap-2 md:gap-3 mb-4> h3 classtext-lg md:text-2xl font-bold text-white text-center md:text-left md:order-first>Auto-Create ESPN Matchups/h3> /div> ul classspace-y-3 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Auto create matchups from ESPN game URLs with auto import of rosters/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Paste an ESPN game URL and Sideline automatically imports both team rosters and creates the matchup/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Perfect for quickly setting up games when you have the ESPN link available/span> /li> /ul> /div> /div> Feature 8: Post-Captioning Actions div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden styleline-height: 0;> img srcimages/post-captioning.webp altPost-captioning actions classw-full styleheight: 200px; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> div classp-4 md:p-8 pt-4 md:pt-6 styleline-height: normal;> div classw-14 h-14 gradient-bg rounded-xl flex items-center justify-center mb-6 mx-auto md:mx-0> svg classw-7 h-7 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z>/path> /svg> /div> h3 classtext-lg md:text-2xl font-bold mb-4 text-white text-center md:text-left>Post-Captioning Actions/h3> ul classspace-y-3 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Streamline your workflow by organizing images as theyre captioned/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Modify ratings or color classes after Sideline has captioned images/span> /li> /ul> /div> /div> /div> div classflex justify-center mt-8 md:hidden> button typebutton classdownload-button mobile-download flex flex-col items-center gap-0 bg-zinc-800 text-gray-200 px-6 pt-3 pb-2 rounded-xl font-semibold text-lg border border-zinc-700 hover:bg-zinc-700 transition-all transform hover:scale-105> span classflex items-center gap-2> svg classw-5 h-5 fillcurrentColor viewBox0 0 24 24> path dM17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z/> /svg> span classtext-lg>Available for Mac/span> /span> span classtext-10px text-gray-400 -mt-0.5>Email me the download link/span> /button> /div> --> !-- NEW STAGGERED LAYOUT --> div classspace-y-12 md:space-y-16 max-w-5xl mx-auto styledisplay: block;> !-- Hero Feature: Automatic Caption Generation --> div classfeature-card bg-zinc-800 rounded-3xl border border-zinc-700 overflow-hidden md:min-h-400px styleline-height: 0; data-aosfade-up data-aos-duration700> div classgrid md:grid-cols-2 gap-0 h-full md:min-h-400px> div classorder-1 md:order-1 md:rounded-tr-2xl md:rounded-br-2xl overflow-hidden styleline-height: 0;> img srcimages/automatic-caption-generation.webp altAutomatic caption generation classw-full h-full object-contain md:min-h-400px styleheight: 100%; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> /div> div classp-8 md:p-12 flex flex-col justify-center order-2 md:order-2 styleline-height: normal;> div classw-16 h-16 gradient-bg rounded-xl flex items-center justify-center mb-6> svg classw-8 h-8 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z>/path> /svg> /div> h3 classtext-2xl md:text-3xl font-bold mb-6 text-white>Automatic Caption Generation/h3> ul classspace-y-4 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-3 mt-0.5>svg classw-5 h-5 fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Monitors your selected folder and automatically generates captions for new images/span> /li> li classflex items-start> span classtext-#353eb7 mr-3 mt-0.5>svg classw-5 h-5 fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Captions images using names from your Photo Mechanic Code Replacements file/span> /li> li classflex items-start> span classtext-#353eb7 mr-3 mt-0.5>svg classw-5 h-5 fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Supports AP, Getty, Imagn, and Simple caption styles/span> /li> li classflex items-start> span classtext-#353eb7 mr-3 mt-0.5>svg classw-5 h-5 fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Automatically write player names to IPTC keywords/span> /li> /ul> /div> /div> /div> !-- Roster Management --> div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden md:min-h-400px styleline-height: 0; data-aosfade-up data-aos-duration700 data-aos-delay100> div classgrid md:grid-cols-2 gap-0 h-full md:min-h-400px> div classp-6 md:p-8 flex flex-col justify-center order-2 md:order-1 styleline-height: normal;> div classflex items-center justify-between mb-4> div classw-12 h-12 gradient-bg rounded-xl flex items-center justify-center> svg classw-6 h-6 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z>/path> /svg> /div> span classinline-flex items-center px-3 py-1 rounded-full text-xs font-semibold bg-purple-900/40 text-purple-200 border border-purple-700/50>Paid Feature/span> /div> h3 classtext-xl md:text-2xl font-bold mb-4 text-white>Roster Management/h3> ul classspace-y-3 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Paste a roster link and Sideline automatically builds a Photo Mechanic code replacement file/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Include player numbers, positions, and team names for a Code Replacement workflow that works for you/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Save ready-to-import Code Replacement files directly from Sideline in just a few clicks/span> /li> /ul> /div> div classorder-1 md:order-2 md:rounded-tl-2xl md:rounded-bl-2xl overflow-hidden styleline-height: 0;> img srcimages/roster-management.webp altRoster management classw-full h-full object-contain md:min-h-400px styleheight: 100%; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> /div> /div> /div> !-- Player Identification --> div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden md:min-h-400px styleline-height: 0; data-aosfade-up data-aos-duration700 data-aos-delay200> div classgrid md:grid-cols-2 gap-0 h-full md:min-h-400px> div classorder-1 md:order-1 md:rounded-tr-2xl md:rounded-br-2xl overflow-hidden styleline-height: 0;> img srcimages/team-player-identification.webp altTeam and player identification settings classw-full h-full object-contain md:min-h-400px styleheight: 100%; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> /div> div classp-6 md:p-8 flex flex-col justify-center order-2 md:order-2 styleline-height: normal;> div classw-12 h-12 gradient-bg rounded-xl flex items-center justify-center mb-4> svg classw-6 h-6 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z>/path> /svg> /div> h3 classtext-xl md:text-2xl font-bold mb-4 text-white>Intelligent Player and Team Identification/h3> ul classspace-y-3 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Identify teams by jersey color/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Intelligent recognition of both offensive and defensive players with the same jersey number (for sports like football)/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Use in-camera audio recordings to give additional context to a photo/span> /li> /ul> /div> /div> /div> !-- Smart Processing --> div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden md:min-h-400px styleline-height: 0; data-aosfade-up data-aos-duration700 data-aos-delay100> div classgrid md:grid-cols-2 gap-0 h-full md:min-h-400px> div classp-6 md:p-8 flex flex-col justify-center order-2 md:order-1 styleline-height: normal;> div classw-12 h-12 gradient-bg rounded-xl flex items-center justify-center mb-4> svg classw-6 h-6 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM13 10V3L4 14h7v7l9-11h-7z>/path> /svg> /div> h3 classtext-xl md:text-2xl font-bold mb-4 text-white>Smart Image and Metadata Processing/h3> ul classspace-y-3 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Overwrite existing captions if needed/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Smart fallback options when a player cant be identified/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Supports both RAW and JPEG files/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Automatically processes compressed, resized JPEGs (<0.25 MB each) for fast caption generation/span> /li> /ul> /div> div classorder-1 md:order-2 md:rounded-tl-2xl md:rounded-bl-2xl overflow-hidden styleline-height: 0;> img srcimages/smart-image-processing.webp altImage processing settings classw-full h-full object-contain md:min-h-400px styleheight: 100%; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> /div> /div> /div> !-- Multi-Sport Support --> div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden md:min-h-400px styleline-height: 0; data-aosfade-up data-aos-duration700 data-aos-delay200> div classgrid md:grid-cols-2 gap-0 h-full md:min-h-400px> div classorder-1 md:order-1 md:rounded-tr-2xl md:rounded-br-2xl overflow-hidden styleline-height: 0;> img srcimages/multi-sport-support.webp altMulti-sport selection classw-full h-full object-contain md:min-h-400px styleheight: 100%; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> /div> div classp-6 md:p-8 flex flex-col justify-center order-2 md:order-2 styleline-height: normal;> div classw-12 h-12 gradient-bg rounded-xl flex items-center justify-center mb-4> svg classw-6 h-6 text-white fillnone strokecurrentColor viewBox0 0 24 24> circle cx12 cy12 r10 stroke-width2/> path dM8 12c0-2.21 1.79-4 4-4s4 1.79 4 4M8 12c0 2.21 1.79 4 4 4s4-1.79 4-4 stroke-width2/> /svg> /div> h3 classtext-xl md:text-2xl font-bold mb-4 text-white>Multi-Sport Support/h3> ul classspace-y-2 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Baseball/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Basketball/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Cross Country/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Football/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Lacrosse/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Soccer/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Softball/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Track and Field/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Volleyball/span> /li> /ul> /div> /div> /div> !-- FTP Mode --> div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden md:min-h-400px styleline-height: 0; data-aosfade-up data-aos-duration700 data-aos-delay100> div classgrid md:grid-cols-2 gap-0 h-full md:min-h-400px> div classp-6 md:p-8 flex flex-col justify-center order-2 md:order-1 styleline-height: normal;> div classflex items-center justify-between mb-4> div classw-12 h-12 gradient-bg rounded-xl flex items-center justify-center> svg classw-6 h-6 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01>/path> /svg> /div> span classinline-flex items-center px-3 py-1 rounded-full text-xs font-semibold bg-purple-900/50 text-purple-300 border border-purple-700/50>Paid Feature/span> /div> h3 classtext-xl md:text-2xl font-bold mb-4 text-white>FTP Mode/h3> ul classspace-y-3 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Watch remote FTP folders for new images in the background/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Automatically download and caption images as they hit the server/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Intelligent local edit preservation/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Built for wireless workflows—transfer images directly from your camera in-game for instant, automated captioning./span> /li> /ul> /div> div classorder-1 md:order-2 md:rounded-tl-2xl md:rounded-bl-2xl overflow-hidden styleline-height: 0;> img srcimages/ftp-manager.webp altFTP server settings classw-full h-full object-contain md:min-h-400px styleheight: 100%; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> /div> /div> /div> !-- Photo Filtering --> div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden md:min-h-400px styleline-height: 0; data-aosfade-up data-aos-duration700 data-aos-delay200> div classgrid md:grid-cols-2 gap-0 h-full md:min-h-400px> div classorder-1 md:order-1 md:rounded-tr-2xl md:rounded-br-2xl overflow-hidden styleline-height: 0;> img srcimages/filtering.webp altPhoto filtering options classw-full h-full object-contain md:min-h-400px styleheight: 100%; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> /div> div classp-6 md:p-8 flex flex-col justify-center order-2 md:order-2 styleline-height: normal;> div classw-12 h-12 gradient-bg rounded-xl flex items-center justify-center mb-4> svg classw-6 h-6 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z>/path> /svg> /div> h3 classtext-xl md:text-2xl font-bold mb-4 text-white>Caption Filtered Photos Only/h3> ul classspace-y-3 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Filter images by color class, star rating, and tagged status/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Caption only the images that meet your specific criteria/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Combine multiple filters for precise control over which images get captioned/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Caption tagged photos first to speed up your workflow/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Perfect for workflows where you only want to caption your best shots/span> /li> /ul> /div> /div> /div> !-- ESPN Matchup --> div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden md:min-h-400px styleline-height: 0; data-aosfade-up data-aos-duration700 data-aos-delay100> div classgrid md:grid-cols-2 gap-0 h-full md:min-h-400px> div classp-6 md:p-8 flex flex-col justify-center order-2 md:order-1 styleline-height: normal;> div classw-12 h-12 gradient-bg rounded-xl flex items-center justify-center mb-4> svg classw-6 h-6 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1>/path> /svg> /div> h3 classtext-xl md:text-2xl font-bold mb-4 text-white>Auto-Create ESPN Matchups/h3> ul classspace-y-3 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Auto create matchups from ESPN game URLs with auto import of rosters/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Paste an ESPN game URL and Sideline automatically imports both team rosters and creates the matchup/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Perfect for quickly setting up games when you have the ESPN link available/span> /li> /ul> /div> div classorder-1 md:order-2 md:rounded-tl-2xl md:rounded-bl-2xl overflow-hidden styleline-height: 0;> img srcimages/espn-matchup.webp altESPN game URL matchup classw-full h-full object-contain md:min-h-400px styleheight: 100%; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> /div> /div> /div> !-- Post-Captioning Actions --> div classfeature-card bg-zinc-800 rounded-2xl border border-zinc-700 overflow-hidden md:min-h-400px styleline-height: 0; data-aosfade-up data-aos-duration700 data-aos-delay200> div classgrid md:grid-cols-2 gap-0 h-full md:min-h-400px> div classorder-1 md:order-1 md:rounded-tr-2xl md:rounded-br-2xl overflow-hidden styleline-height: 0;> img srcimages/post-captioning.webp altPost-captioning actions classw-full h-full object-contain md:min-h-400px styleheight: 100%; margin: 0; padding: 0; display: block; line-height: 0; font-size: 0;> /div> div classp-6 md:p-8 flex flex-col justify-center order-2 md:order-2 styleline-height: normal;> div classw-12 h-12 gradient-bg rounded-xl flex items-center justify-center mb-4> svg classw-6 h-6 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z>/path> /svg> /div> h3 classtext-xl md:text-2xl font-bold mb-4 text-white>Post-Captioning Actions/h3> ul classspace-y-3 text-gray-300> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Streamline your workflow by organizing images as theyre captioned/span> /li> li classflex items-start> span classtext-#353eb7 mr-2>svg classw-4 h-4 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Modify ratings or color classes after Sideline has captioned images/span> /li> /ul> /div> /div> /div> /div> div classflex justify-center mt-8 md:hidden> button typebutton classdownload-button mobile-download flex flex-col items-center gap-0 bg-zinc-800 text-gray-200 px-6 pt-3 pb-2 rounded-xl font-semibold text-lg border border-zinc-700 hover:bg-zinc-700 transition-all transform hover:scale-105> span classflex items-center gap-2> svg classw-5 h-5 fillcurrentColor viewBox0 0 24 24> path dM17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z/> /svg> span classtext-lg>Available for Mac/span> /span> span classtext-10px text-gray-400 -mt-0.5>Email me the download link/span> /button> /div> /div> /section> !-- Roster Manager Section --> section idroster-manager classpt-12 md:pt-24 pb-24 px-6 sm:px-8 lg:px-12 bg-zinc-900 border-y border-zinc-800/60> div classmax-w-6xl mx-auto grid lg:grid-cols-2 gap-12 items-center> div classrounded-3xl overflow-hidden shadow-2xl border border-zinc-800/80 data-aosfade-right data-aos-duration700> img srcimages/roster-manager.gif altSideline Captions Roster Manager classw-full h-full object-cover data-aosfade data-aos-duration700> /div> div data-aosfade data-aos-duration700 classspace-y-6> p classinline-flex items-center px-3 py-1 rounded-full text-xs font-semibold bg-purple-900/40 text-purple-200 border border-purple-700/50>Paid Feature/p> h2 classtext-3xl md:text-5xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-#667eea to-#353eb7 leading-normal md:leading-normal>Roster Manager/h2> p classtext-lg md:text-xl text-gray-300 leading-relaxed> b>Keep every team you photograph ready to go./b>br>Sidelines Roster Manager organizes every roster for the teams you photograph the most. /p> ul classspace-y-4 text-gray-200> li classflex items-start gap-3> span classtext-#353eb7 mt-1> svg classw-5 h-5 fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg> /span> span>Create matchups manually to ensure Sideline correctly identifies players on both teams — or simply paste an ESPN game URL and let Sideline build the matchup for you.sup>✨/sup>/span> /li> li classflex items-start gap-3> span classtext-#353eb7 mt-1> svg classw-5 h-5 fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg> /span> span>Import full team rosters from ESPN in one click, complete with player names, numbers, and positions.sup>✨/sup>/span> /li> li classflex items-start gap-3> span classtext-#353eb7 mt-1> svg classw-5 h-5 fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg> /span> span>Create multi-team events for events that have more than two teams competing, such as track meets, etc/ /li> li classflex items-start gap-3> span classtext-#353eb7 mt-1> svg classw-5 h-5 fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg> /span> span>Favorite rosters for quick access/span> /li> li classflex items-start gap-3> span classtext-#353eb7 mt-1> svg classw-5 h-5 fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg> /span> span>Need to share rosters with a teammate who doesnt use Sideline? Export Photo Mechanic code replacement files with a single click./span> /li> /ul> div classpt-4 flex justify-start> a hrefhttps://sidelinecaptions.com/downloads/ classhidden md:inline-flex items-center justify-center gradient-bg text-white px-6 py-3 rounded-xl font-semibold hover:shadow-xl transition-all> Try the Roster Manager /a> button typebutton classdownload-button mobile-download flex flex-col items-center gap-0 bg-zinc-800 text-gray-200 px-6 pt-3 pb-2 rounded-xl font-semibold text-lg border border-zinc-700 hover:bg-zinc-700 transition-all transform hover:scale-105 md:hidden> span classflex items-center gap-2> svg classw-5 h-5 fillcurrentColor viewBox0 0 24 24> path dM17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z/> /svg> span classtext-lg>Available for Mac/span> /span> span classtext-10px text-gray-400 -mt-0.5>Email me the download link/span> /button> /div> /div> /div> /section> !-- Perfect For Section --> section classpt-12 md:pt-24 pb-24 px-6 sm:px-8 lg:px-12 bg-zinc-950> div classmax-w-7xl mx-auto> div classtext-center mb-8> h2 classtext-xl md:text-3xl font-bold mb-16on bg-clip-text text-transparent bg-gradient-to-r from-#667eea to-#353eb7 leading-normal data-aosfade data-aos-duration600>Sideline is Perfect For:/h2> /div> div classgrid grid-cols-2 md:grid-cols-2 lg:grid-cols-4 gap-6 text-center> div> div classflex justify-center mb-4> div classw-16 h-16 gradient-bg rounded-xl flex items-center justify-center> svg classw-8 h-8 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z>/path> path stroke-linecapround stroke-linejoinround stroke-width2 dM15 13a3 3 0 11-6 0 3 3 0 016 0z>/path> /svg> /div> /div> h3 classfont-semibold text-lg mb-2 text-white>Sports Photographers/h3> p classtext-gray-400 text-sm>Covering live events/p> /div> div> div classflex justify-center mb-4> div classw-16 h-16 gradient-bg rounded-xl flex items-center justify-center> svg classw-8 h-8 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4>/path> /svg> /div> /div> h3 classfont-semibold text-lg mb-2 text-white>Athletic Departments/h3> p classtext-gray-400 text-sm>Handling multiple sports/p> /div> div> div classflex justify-center mb-4> div classw-16 h-16 gradient-bg rounded-xl flex items-center justify-center> svg classw-8 h-8 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z>/path> /svg> /div> /div> h3 classfont-semibold text-lg mb-2 text-white>Wire Service Photographers/h3> p classtext-gray-400 text-sm>Who need to deliver on deadline/p> /div> div> div classflex justify-center mb-4> div classw-16 h-16 gradient-bg rounded-xl flex items-center justify-center> svg classw-8 h-8 text-white fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM13 10V3L4 14h7v7l9-11h-7z>/path> /svg> /div> /div> h3 classfont-semibold text-lg mb-2 text-white>Any Sports Photographer/h3> p classtext-gray-400 text-sm>Who needs faster captioning/p> /div> /div> /div> /section> !-- Referral Program Section --> section classpt-8 md:pt-16 pb-16 px-6 sm:px-8 lg:px-12 bg-zinc-900 border-t border-b border-zinc-800> div classmax-w-5xl mx-auto text-center> span classinline-flex items-center px-3 py-1 rounded-full text-xs font-semibold bg-purple-900/40 text-purple-200 border border-purple-700/50 mb-4>Refer Sideline, Get Rewarded/span> h2 classtext-2xl md:text-4xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-#667eea to-#353eb7 mb-4 leading-normal data-aosfade data-aos-duration600>Sideline Captions Referral Program/h2> p classmax-w-2xl mx-auto text-lg md:text-xl text-gray-300 leading-relaxed mb-6 data-aosfade data-aos-duration600 data-aos-delay200> When a friend buys Sideline with your referral code, they save $10 on a lifetime license and you get a $10 refund as a thank you. /p> p classmax-w-xl mx-auto text-sm text-gray-500 mb-6 data-aosfade data-aos-duration600 data-aos-delay300> Your referral code lives inside the app — copy it, share it, and help other photographers caption faster. /p> a hrefhttps://sidelinecaptions.com/downloads/ classdownload-button desktop-download hidden md:inline-flex gradient-bg text-white px-6 py-3 md:px-8 md:py-4 rounded-lg md:rounded-xl font-semibold text-base md:text-lg hover:shadow-xl transition-all transform hover:scale-105 data-aosfade data-aos-duration600 data-aos-delay200> Download for Free /a> div classflex justify-center mt-4 md:hidden> button typebutton classdownload-button mobile-download flex flex-col items-center gap-0 bg-zinc-800 text-gray-200 px-6 pt-3 pb-2 rounded-lg font-semibold text-base border border-zinc-700 hover:bg-zinc-700 transition-all transform hover:scale-105 data-aosfade data-aos-duration600 data-aos-delay200> span classflex items-center gap-2> svg classw-5 h-5 fillcurrentColor viewBox0 0 24 24> path dM17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z/> /svg> span classtext-lg>Available for Mac/span> /span> span classtext-10px text-gray-400 -mt-0.5>Email me the download link/span> /button> /div> /div> /section> !-- Pricing Section --> section idpricing classpt-12 md:pt-24 pb-24 px-6 sm:px-8 lg:px-12 bg-black> div classmax-w-7xl mx-auto> div classtext-center mb-16> h2 classtext-3xl md:text-5xl font-bold mb-4 bg-clip-text text-transparent bg-gradient-to-r from-#667eea to-#353eb7 leading-normal md:leading-normal data-aosfade data-aos-duration600>Simple, Transparent Pricing/h2> p classtext-xl text-gray-400 max-w-2xl mx-auto data-aosfade data-aos-duration600 data-aos-delay200> No hidden fees. No subscriptions.br>Start for free and upgrade to lifetime access when youre ready. /p> /div> div classgrid md:grid-cols-2 gap-8 max-w-5xl mx-auto> !-- Free Trial --> div classbg-zinc-800 border-2 border-zinc-700 rounded-2xl p-8> div classtext-center mb-8> h3 classtext-lg md:text-2xl font-bold mb-2 text-white>Free Trial/h3> div classtext-4xl font-bold mb-4 text-white flex items-center justify-center gap-3> span>$0/span> span classtext-xs font-semibold tracking-wide uppercase text-purple-200 bg-purple-900/60 border border-purple-700/60 rounded-full px-3 py-1>Yep, Seriously./span> /div> p classtext-gray-400>No credit card required/p> /div> ul classspace-y-4 mb-8> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span classtext-gray-300>Get 500 AI-generated captions for free/span> /li> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span classtext-gray-300>Intelligent AI captioning in all styles/span> /li> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span classtext-gray-300>Local folder watching/span> /li> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span classtext-gray-300>Caption filtered photos only/span> /li> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span classtext-gray-300>Post-captioning actions/span> /li> li classflex items-start> span classtext-red-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM6 18L18 6M6 6l12 12>/path>/svg>/span> span classtext-gray-400>strike>FTP server support/strike>/span> /li> li classflex items-start> span classtext-red-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM6 18L18 6M6 6l12 12>/path>/svg>/span> span classtext-gray-400>strike>Sideline Roster Manager /strike>/span> /li> li classflex items-start> span classtext-red-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM6 18L18 6M6 6l12 12>/path>/svg>/span> span classtext-gray-400>strike>Automatic ESPN roster import /strike>/span> /li> li classflex items-start> span classtext-red-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM6 18L18 6M6 6l12 12>/path>/svg>/span> span classtext-gray-400>strike>Refer friends, get rewarded/strike>/span> /li> /ul> a hrefhttps://sidelinecaptions.com/downloads/ classdownload-button hidden md:block w-full gradient-bg text-white text-center py-3 md:py-4 rounded-lg md:rounded-xl font-semibold hover:shadow-xl transition-all transform hover:scale-105> Download Sideline Captions for Free /a> div classmobile-only-message bg-zinc-800 text-gray-300 px-4 py-3 rounded-lg border border-zinc-700 text-center> div classflex items-center justify-center gap-2 mb-1> svg classw-5 h-5 fillcurrentColor viewBox0 0 24 24> path dM17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z/> /svg> span classfont-semibold text-sm>Available for Mac/span> /div> p classtext-xs text-gray-400>Email me the download link/p> /div> /div> !-- Lifetime License --> div classbg-gradient-to-br from-#667eea to-#353eb7 text-white rounded-2xl p-8 transform scale-105 shadow-2xl> div classtext-center mb-8> h3 classtext-lg md:text-2xl font-bold mb-2>Sideline Captions Pro/h3> div classtext-5xl font-bold mb-4>$49/div> /div> ul classspace-y-4 mb-8> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>One-time payment, no ongoing subscriptions/span> /li> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Lifetime updates for sup>✨/sup>freesup>✨/sup>/span> /li> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Intelligent AI captioning in all styles/span> /li> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Local folder watching/span> /li> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Caption filtered photos only/span> /li>li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Post-captioning actions/span> /li> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>FTP server support/span> /li> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span> Sideline Roster Manager span classml-1 inline-block align-middle px-1.5 py-0.5 text-10px font-semibold bg-green-200 text-green-900 rounded-full stylevertical-align:middle; margin-top:0;>NEW/span> /span> /li> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span> Automatic ESPN roster import span classml-1 inline-block align-middle px-1.5 py-0.5 text-10px font-semibold bg-green-200 text-green-900 rounded-full stylevertical-align:middle; margin-top:0;>NEW/span> /span> /li> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> span>Refer friends, get rewarded 💰/span> /li> li classflex items-start> span classtext-green-400 mr-3 text-xl>svg classw-5 h-5 inline fillnone strokecurrentColor viewBox0 0 24 24>path stroke-linecapround stroke-linejoinround stroke-width2 dM5 13l4 4L19 7>/path>/svg>/span> div> span>Unlimited AI captions with your own API key/span> span classblock text-11px italic text-purple-100/80 mt-1>Typical cost is ~$1 per 1,000 images captioned/span> /div> /li> /ul> a hrefhttps://buy.stripe.com/9B600i6QBgwy3EIduD2Fa00 classblock w-full bg-white text-#353eb7 text-center py-3 md:py-4 rounded-lg md:rounded-xl font-semibold hover:bg-gray-100 transition-all transform hover:scale-105> Buy a Lifetime License – Just $49 /a> /div> /div> /div> /section> !-- FAQ Section --> section idfaqs classpt-12 md:pt-24 pb-24 px-6 sm:px-8 lg:px-12 bg-zinc-900 border-t border-b border-zinc-900/40> div classmax-w-5xl mx-auto> div classflex flex-col items-center text-center mb-20> h2 classtext-3xl md:text-5xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-#667eea to-#353eb7 mb-4 leading-normal md:leading-normal data-aosfade data-aos-duration600>Frequently Asked Questions/h2> !-- p classtext-lg md:text-xl text-gray-400 max-w-2xl mx-auto data-aosfade data-aos-duration600 data-aos-delay200> Weve pulled the top questions sports shooters ask about Sideline Captions, so you can get back to the action faster. /p> --> /div> div classgrid grid-cols-1 md:grid-cols-2 gap-6 lg:gap-8> div classbg-zinc-950 border border-zinc-800 rounded-2xl p-8 h-full data-aosfade data-aos-duration600 data-aos-delay100> h3 classtext-xl font-semibold text-white mb-3>Which caption styles can Sideline generate?/h3> p classtext-gray-300 leading-relaxed> Sideline delivers newsroom-standard captions out of the box, including AP, Getty, and Imagn styles—so every frame is ready for the publications and wire services you work with most. /p> /div> div classbg-zinc-950 border border-zinc-800 rounded-2xl p-8 h-full data-aosfade data-aos-duration600 data-aos-delay150> h3 classtext-xl font-semibold text-white mb-3>How does Sideline identify players in my photos?/h3> p classtext-gray-300 leading-relaxed> Sideline connects to your Photo Mechanic Code Replacements file, so it already knows the rosters of the teams youre shooting. As soon as new images land in your watch folder, it matches images against those names, understands the play, and writes professional captions automatically. /p> /div> div classbg-zinc-950 border border-zinc-800 rounded-2xl p-8 h-full data-aosfade data-aos-duration600 data-aos-delay200> h3 classtext-xl font-semibold text-white mb-3>How fast does Sideline caption my images?/h3> p classtext-gray-300 leading-relaxed> Sideline runs quietly in the background, captioning every image as it hits your ingest folder. Since Sideline uses JPG previews ~0.25MB in size (even with RAW files), the average image takes 4.1 seconds to caption. /p> /div> div classbg-zinc-950 border border-zinc-800 rounded-2xl p-8 h-full data-aosfade data-aos-duration600 data-aos-delay250> h3 classtext-xl font-semibold text-white mb-3>Will Sideline fit into my existing workflow?/h3> p classtext-gray-300 leading-relaxed> Yes. Set Sideline to watch your ingest folder and it writes captions straight to every file’s metadata. Sideline writes captions to industry-standard IPTC metadata files, so it can be used with any editing software you already use. /p> /div> div classbg-zinc-950 border border-zinc-800 rounded-2xl p-8 h-full data-aosfade data-aos-duration600 data-aos-delay300> h3 classtext-xl font-semibold text-white mb-3>Building Code Replacements files takes a long time. Can Sideline do it for me?/h3> p classtext-gray-300 leading-relaxed> Yes. Paid users of Sideline can generate Code Replacements files from ESPN rosters—perfect when you don’t receive rosters ahead of time or need quick updates before the game. /p> /div> div classbg-zinc-950 border border-zinc-800 rounded-2xl p-8 h-full data-aosfade data-aos-duration600 data-aos-delay350> h3 classtext-xl font-semibold text-white mb-3>Does it handle multiple sports and teams?/h3> p classtext-gray-300 leading-relaxed> Absolutely. Sideline understands nine popular sports out of the box – with more coming soon – and you can feed it as many rosters as you need—perfect for athletic departments, freelancers, and wire shooters covering multiple teams. /p> /div> div classbg-zinc-950 border border-zinc-800 rounded-2xl p-8 h-full data-aosfade data-aos-duration600 data-aos-delay400> h3 classtext-xl font-semibold text-white mb-3>How does Sidelines FTP mode work?/h3> p classtext-gray-300 leading-relaxed> Sideline’s FTP mode watches a remote FTP server. When new images are added, Sideline downloads and captions them automatically, so when you come in from halftime, your images are ready to edit and publish. /p> /div> div classbg-zinc-950 border border-zinc-800 rounded-2xl p-8 h-full data-aosfade data-aos-duration600 data-aos-delay450> h3 classtext-xl font-semibold text-white mb-3>Can I tweak the captions before I publish?/h3> p classtext-gray-300 leading-relaxed> Of course. Captions are written directly to the IPTC metadata, so you can review or fine-tune them in Photo Mechanic, Lightroom, or any editor you already use—Sideline simply drafts the heavy lifting for you. /p> /div> div classbg-zinc-950 border border-zinc-800 rounded-2xl p-8 h-full data-aosfade data-aos-duration600 data-aos-delay500> h3 classtext-xl font-semibold text-white mb-3>What’s included in the free trial?/h3> p classtext-gray-300 leading-relaxed> The free trial gives you 500 AI-generated captions – no credit card required. It’s the fastest way to see Sideline in action on a real assignment before upgrading to lifetime access. /p> /div> div classbg-zinc-950 border border-zinc-800 rounded-2xl p-8 h-full data-aosfade data-aos-duration600 data-aos-delay550> h3 classtext-xl font-semibold text-white mb-3>Is Sideline Captions a subscription?/h3> p classtext-gray-300 leading-relaxed> Nope. A lifetime license to Sideline Captions is a one-time $49 purchase. You will need to supply your own OpenAI API key to generate captions, but its incredibly cost-effective at ~$1 per 1,000 captioned images. /p> /div> div classbg-zinc-950 border border-zinc-800 rounded-2xl p-8 h-full data-aosfade data-aos-duration600 data-aos-delay600> h3 classtext-xl font-semibold text-white mb-3>How does referral credit work?/h3> p classtext-gray-300 leading-relaxed> Share your in-app referral code with colleagues and you both win: theyll save $10 on a lifetime license and youll get a $10 refund. /p> /div> div classbg-zinc-950 border border-zinc-800 rounded-2xl p-8 h-full data-aosfade data-aos-duration600 data-aos-delay650> h3 classtext-xl font-semibold text-white mb-3>What are the system requirements?/h3> p classtext-gray-300 leading-relaxed> Sideline Captions requires macOS 14.0+. While it can work independently, it is designed to be used in conjunction with Photo Mechanic for the best experience. /p> /div> /div> div classflex justify-center mt-8 md:hidden> button typebutton classdownload-button mobile-download flex flex-col items-center gap-0 bg-zinc-800 text-gray-200 px-6 pt-3 pb-2 rounded-xl font-semibold text-lg border border-zinc-700 hover:bg-zinc-700 transition-all transform hover:scale-105> span classflex items-center gap-2> svg classw-5 h-5 fillcurrentColor viewBox0 0 24 24> path dM17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z/> /svg> span classtext-lg>Available for Mac/span> /span> span classtext-10px text-gray-400 -mt-0.5>Email me the download link/span> /button> /div> /div> /section> !-- Final CTA --> section classpt-12 md:pt-24 pb-24 px-6 sm:px-8 lg:px-12 bg-gradient-to-br from-#353eb7 via-#667eea to-#8b5cf6 text-white> div classmax-w-5xl mx-auto text-center space-y-8> h2 classtext-3xl md:text-5xl font-extrabold text-white leading-normal md:leading-normal data-aosfade data-aos-duration600>Ready to deliver faster than ever?/h2> p classtext-lg md:text-2xl text-white max-w-4xl mx-auto data-aosfade data-aos-duration600 data-aos-delay200> See why savvy sports photographers are switching to automated captioning. Download Sideline Captions and deliver professional results in minutes. /p> div classflex flex-col sm:flex-row items-center justify-center gap-4 w-full sm:w-auto max-w-xs sm:max-w-none mx-auto> a hrefhttps://sidelinecaptions.com/downloads/ classhidden sm:inline-flex items-center justify-center bg-white text-#353eb7 px-8 py-4 md:px-10 md:py-5 rounded-xl font-semibold text-lg md:text-xl shadow-2xl hover:shadow-white/40 transition-all transform hover:-translate-y-0.5 hover:scale-1.02 data-aosfade data-aos-duration600 data-aos-delay200> Download Sideline Captions /a> div classflex justify-center md:hidden w-full> button typebutton idemail-link-tertiary-final classinline-flex flex-col items-center justify-center gap-0 bg-zinc-800 text-gray-300 px-6 pt-3 pb-2 rounded-lg border border-zinc-700 text-center data-aosfade data-aos-duration600 data-aos-delay200> div classflex items-center justify-center gap-2 mb-0> svg classw-5 h-5 fillcurrentColor viewBox0 0 24 24> path dM17.05 20.28c-.98.95-2.05.88-3.08.4-1.09-.5-2.08-.48-3.24 0-1.44.62-2.2.44-3.06-.4C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z/> /svg> span classfont-semibold text-lg>Available for Mac/span> /div> p classtext-10px text-gray-400 -mt-0.5>Email me the download link/p> /button> /div> /div> /div> /section> !-- Footer --> footer classbg-zinc-950 text-white py-12 px-6 sm:px-8 lg:px-12 border-t border-zinc-800> div classmax-w-7xl mx-auto> div classflex flex-col items-center> div classflex items-center space-x-3 mb-4> img srcimages/logo.png altSideline Captions Logo classh-8 w-8 rounded-xl> div classtext-2xl font-bold>Sideline Captions/div> /div> div classflex flex-row space-x-6 text-gray-400 items-center text-sm> button typebutton idcontact-link-footer classhover:text-white transition-colors bg-transparent border-none cursor-pointer>Contact/button> a hrefprivacy.html classhover:text-white transition-colors>Privacy Policy/a> a hrefterms.html classhover:text-white transition-colors>Terms of Service/a> /div> /div> div classmt-8 pt-8 text-center text-gray-500 text-sm> p>© 2025 Sideline Captions. All rights reserved.br>Made with ❤️ in Lexington, KY by a hrefhttps://crawfordifland.com target_blank classtext-gray-400 hover:text-white transition-colors>Crawford Ifland/a>/p> p classmt-16 text-xs text-gray-600>Sideline Captions is not associated with Photo Mechanic. Photo Mechanic is a registered trademark of a hrefhttps://www.camerabits.com target_blank classtext-gray-500 hover:text-gray-400 transition-colors>Camera Bits, Inc/a>./p> /div> /div> /footer> !-- Video Modal --> div idvideo-modal classfixed inset-0 bg-black/80 backdrop-blur-sm z-50 hidden items-center justify-center p-4> div classrelative w-full max-w-6xl bg-zinc-900 rounded-2xl overflow-hidden shadow-2xl> button idvideo-modal-close classabsolute top-4 right-4 z-10 bg-zinc-800 hover:bg-zinc-700 text-white rounded-full p-2 transition-colors> svg classw-6 h-6 fillnone strokecurrentColor viewBox0 0 24 24> path stroke-linecapround stroke-linejoinround stroke-width2 dM6 18L18 6M6 6l12 12>/path> /svg> /button> div classaspect-video w-full> iframe idvideo-iframe classw-full h-full src titleYouTube video player frameborder0 allowaccelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share referrerpolicystrict-origin-when-cross-origin allowfullscreen>/iframe> /div> /div> /div> !-- Email Link Modal --> div idemail-link-modal classemail-modal aria-hiddentrue> div classemail-modal-backdrop>/div> div classemail-modal-content roledialog aria-labelledbyemail-link-title> button typebutton classemail-modal-close aria-labelClose modal>×/button> h3 idemail-link-title>Get a download link/h3> p>Enter your email and well send you a download link so you can install Sideline Captions when youre back on your Mac./p> form idemail-link-form novalidate> div classform-field> label foremail-link-input>Email address/label> input typeemail idemail-link-input nameemail placeholderyou@example.com autocompleteemail required> /div> div idrecaptcha-container classrecaptcha-container>/div> button typesubmit idemail-link-submit> span classsubmit-text>Send me the link/span> /button> /form> div idemail-link-status classemail-link-status rolealert>/div> /div> /div> !-- Contact Modal --> div idcontact-modal classcontact-modal aria-hiddentrue> div classcontact-modal-backdrop>/div> div classcontact-modal-content roledialog aria-labelledbycontact-title> button typebutton classcontact-modal-close aria-labelClose modal>×/button> h3 idcontact-title>Contact Us/h3> p>Have a question or feedback? Wed love to hear from you./p> form idcontact-form novalidate> div classform-field> label forcontact-name>Name span classtext-red-400>*/span>/label> input typetext idcontact-name namename placeholderYour name autocompletename required> /div> div classform-field> label forcontact-email>Email span classtext-red-400>*/span>/label> input typeemail idcontact-email nameemail placeholderyou@example.com autocompleteemail required> /div> div classform-field> label forcontact-version>Version Number span classtext-red-400>*/span>/label> input typetext idcontact-version nameversion placeholdere.g., 2.0.1 required> /div> div classform-field> div classcheckbox-field> input typecheckbox idcontact-no-download namenoDownload> label forcontact-no-download>I havent downloaded Sideline yet/label> /div> /div> div classform-field> label forcontact-message>Message span classtext-red-400>*/span>/label> textarea idcontact-message namemessage placeholderYour message... required>/textarea> /div> div idcontact-recaptcha-container classrecaptcha-container>/div> button typesubmit idcontact-submit> span classsubmit-text>Send Message/span> /button> /form> div idcontact-status classcontact-status rolealert>/div> /div> /div> script> // Shared reCAPTCHA configuration and utilities (function() { const API_BASE https://analytics-backend-crawford-iflands-projects.vercel.app; const DEFAULT_DOWNLOAD_LINK https://sidelinecaptions.com/download; window.__sidelineRecaptcha { siteKey: null, downloadLink: DEFAULT_DOWNLOAD_LINK, recaptchaScriptPromise: null, grecaptchaReadyPromise: null, loadingConfig: false, async fetchConfig() { if (this.siteKey || this.loadingConfig) { return this.siteKey; } this.loadingConfig true; try { const response await fetch(`${API_BASE}/api/website/config`); if (!response.ok) { throw new Error(Failed to load configuration); } const data await response.json(); this.siteKey data?.recaptchaSiteKey || null; this.downloadLink data?.downloadLink || DEFAULT_DOWNLOAD_LINK; return this.siteKey; } finally { this.loadingConfig false; } }, loadRecaptchaScript() { if (this.recaptchaScriptPromise) { return this.recaptchaScriptPromise; } this.recaptchaScriptPromise new Promise((resolve, reject) > { const existing document.querySelector(scriptdata-recaptchatrue); if (existing) { existing.addEventListener(load, resolve); existing.addEventListener(error, reject); return; } const script document.createElement(script); script.src https://www.google.com/recaptcha/api.js?renderexplicit; script.async true; script.defer true; script.dataset.recaptcha true; script.onload () > resolve(); script.onerror () > reject(new Error(Failed to load reCAPTCHA)); document.head.appendChild(script); }); return this.recaptchaScriptPromise; }, async ensureRecaptchaReady() { await this.fetchConfig(); if (!this.siteKey) { throw new Error(reCAPTCHA is not configured.); } await this.loadRecaptchaScript(); if (!this.grecaptchaReadyPromise) { this.grecaptchaReadyPromise new Promise((resolve) > { grecaptcha.ready(resolve); }); } await this.grecaptchaReadyPromise; } }; })(); // Email link form functionality (function() { const API_BASE https://analytics-backend-crawford-iflands-projects.vercel.app; const mobileQuery window.matchMedia((max-width: 767px)); const emailButtons document.querySelectorAll(.mobile-download); const mobileAuxButtons document.querySelectorAll(.mobile-download-aux); const tertiaryButton document.getElementById(email-link-tertiary); const tertiaryButtonFinal document.getElementById(email-link-tertiary-final); const desktopButtons document.querySelectorAll(.desktop-download); const mobileMessage document.querySelector(.mobile-only-message); const modal document.getElementById(email-link-modal); const emailButton document.getElementById(email-link-button); const modalClose modal?.querySelector(.email-modal-close); const modalBackdrop modal?.querySelector(.email-modal-backdrop); const form document.getElementById(email-link-form); const emailInput document.getElementById(email-link-input); const statusEl document.getElementById(email-link-status); const submitButton document.getElementById(email-link-submit); const submitText submitButton?.querySelector(.submit-text); let widgetId null; const setStatus (message, type) > { if (statusEl) { statusEl.textContent message || ; statusEl.classList.remove(success, error); if (type) { statusEl.classList.add(type); } } }; const validateEmail (value) > /^^\s@+@^\s@+\.^\s@+$/.test(value); const ensureRecaptcha async () > { await window.__sidelineRecaptcha.ensureRecaptchaReady(); if (widgetId null) { widgetId grecaptcha.render(recaptcha-container, { sitekey: window.__sidelineRecaptcha.siteKey, theme: dark }); } else { grecaptcha.reset(widgetId); } }; const openModal async () > { setStatus(, null); submitButton.disabled false; submitText.textContent Send me the link; try { await ensureRecaptcha(); } catch (error) { console.error(error); setStatus(Unable to load verification. Please try again later., error); return; } modal.classList.add(is-visible); document.body.classList.add(modal-open); setTimeout(() > emailInput.focus(), 100); }; const closeModal () > { modal.classList.remove(is-visible); document.body.classList.remove(modal-open); setStatus(, null); submitButton.disabled false; submitText.textContent Send me the link; if (widgetId ! null && window.grecaptcha) { grecaptcha.reset(widgetId); } }; const handleSubmit async (event) > { event.preventDefault(); setStatus(, null); const email emailInput.value.trim(); if (!validateEmail(email)) { setStatus(Please enter a valid email address., error); emailInput.focus(); return; } if (widgetId null) { try { await ensureRecaptcha(); } catch (error) { setStatus(Unable to load verification. Please try again later., error); return; } } const token grecaptcha.getResponse(widgetId); if (!token) { setStatus(Please complete the reCAPTCHA check., error); return; } submitButton.disabled true; submitText.textContent Sending...; try { const response await fetch(`${API_BASE}/api/website/send-download-link`, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify({ email, token }) }); const payload await response.json().catch(() > ({})); if (!response.ok || !payload.success) { throw new Error(payload.error || Unable to send the download link. Please try again.); } setStatus(Check your inbox for the download link!, success); if (typeof gtag function) { gtag(event, form_submit, { event_category: engagement, event_label: email_download_link_form }); } submitText.textContent Sent!; form.reset(); grecaptcha.reset(widgetId); } catch (error) { console.error(error); setStatus(error.message || Something went wrong. Please try again., error); submitButton.disabled false; submitText.textContent Send me the link; grecaptcha.reset(widgetId); } }; const handleKeyDown (event) > { if (event.key Escape && modal.classList.contains(is-visible)) { closeModal(); } }; const initialiseMobileCTA () > { const showMobile mobileQuery.matches; const allMobileMessages document.querySelectorAll(.mobile-only-message); const heroMobileButton document.getElementById(email-link-tertiary); if (showMobile) { emailButtons.forEach(btn > btn.classList.add(is-visible)); mobileAuxButtons.forEach(btn > btn.classList.add(is-visible)); // Show mobile messages allMobileMessages.forEach(msg > msg.classList.add(show)); // Special handling for hero section button - wait for its delay before refreshing AOS if (heroMobileButton && heroMobileButton.hasAttribute(data-aos-delay)) { const delay parseInt(heroMobileButton.getAttribute(data-aos-delay)) || 0; // Initialize AOS immediately but it wont trigger until delay passes if (typeof AOS ! undefined) { // First refresh to initialize AOS.refresh(); // Then refresh again after the delay to ensure it triggers at the right time setTimeout(() > { AOS.refresh(); }, delay); } } else { // Refresh AOS to detect newly visible mobile-only-message elements setTimeout(() > { if (typeof AOS ! undefined) { AOS.refresh(); } }, 100); } } else { emailButtons.forEach(btn > btn.classList.remove(is-visible)); mobileAuxButtons.forEach(btn > btn.classList.remove(is-visible)); allMobileMessages.forEach(msg > msg.classList.remove(show)); } }; if (emailButtons.length && modal && form && emailInput && statusEl && submitButton) { emailButtons.forEach(btn > btn.addEventListener(click, openModal)); mobileAuxButtons.forEach(btn > btn.addEventListener(click, openModal)); tertiaryButton?.addEventListener(click, openModal); tertiaryButtonFinal?.addEventListener(click, openModal); modalClose?.addEventListener(click, closeModal); modalBackdrop?.addEventListener(click, closeModal); if (!document.__sidelineEmailFormBound) { form.addEventListener(submit, handleSubmit); document.addEventListener(keydown, handleKeyDown); document.__sidelineEmailFormBound true; } initialiseMobileCTA(); if (typeof mobileQuery.addEventListener function) { mobileQuery.addEventListener(change, initialiseMobileCTA); } else if (typeof mobileQuery.addListener function) { mobileQuery.addListener(initialiseMobileCTA); } // Check for URL parameter to auto-open modal const urlParams new URLSearchParams(window.location.search); if (urlParams.has(email-link) || urlParams.has(download-link)) { // Remove parameter from URL without reloading const newUrl new URL(window.location); newUrl.searchParams.delete(email-link); newUrl.searchParams.delete(download-link); window.history.replaceState({}, , newUrl); // Open modal after a short delay to ensure page is ready setTimeout(() > { openModal(); }, 300); } } })(); // Initialize AOS (Animate On Scroll) AOS.init({ duration: 600, easing: ease-out, once: true, offset: 100, delay: 0 }); // Refresh AOS after a short delay to catch mobile-only-message elements that become visible setTimeout(() > { AOS.refresh(); }, 200); // Animate bar chart bars when fully in viewport const barChartContainer document.getElementById(bar-chart-container); if (barChartContainer) { const bars document.querySelectorAll(.bar-chart-bar); const observer new IntersectionObserver((entries) > { entries.forEach(entry > { if (entry.isIntersecting && entry.intersectionRatio > 0.9) { bars.forEach(bar > { bar.classList.add(animate); }); observer.unobserve(entry.target); } }); }, { threshold: 0.9, rootMargin: 0px }); observer.observe(barChartContainer); } // Video modal functionality const videoModalButtons document.querySelectorAll(#video-modal-button); const videoModal document.getElementById(video-modal); const videoModalClose document.getElementById(video-modal-close); const videoIframe document.getElementById(video-iframe); // YouTube embed URL with si parameter const embedUrl https://www.youtube.com/embed/Tvqphw5NZno?sijgV5CTdj_bxFvydD&autoplay1; videoModalButtons.forEach(button > { button.addEventListener(click, () > { videoIframe.src embedUrl; videoModal.classList.remove(hidden); videoModal.classList.add(flex); document.body.style.overflow hidden; }); }); videoModalClose.addEventListener(click, () > { videoIframe.src ; videoModal.classList.add(hidden); videoModal.classList.remove(flex); document.body.style.overflow ; }); // Close modal when clicking outside the video videoModal.addEventListener(click, (e) > { if (e.target videoModal) { videoIframe.src ; videoModal.classList.add(hidden); videoModal.classList.remove(flex); document.body.style.overflow ; } }); // Close modal with Escape key document.addEventListener(keydown, (e) > { if (e.key Escape && !videoModal.classList.contains(hidden)) { videoIframe.src ; videoModal.classList.add(hidden); videoModal.classList.remove(flex); document.body.style.overflow ; } }); // How It Works Accordion Animation (function() { const boxes { id: how-it-works-box-1, image: images/step1.webp }, { id: how-it-works-box-2, image: images/step2.webp }, { id: how-it-works-box-3, image: images/step3.webp } ; const mainImage document.getElementById(how-it-works-main-image); let currentIndex 0; let userClicked false; let clickTimeout null; function switchToBox(index, userInitiated false, fromScroll false) { if (index 0 || index > boxes.length) return; // Always allow switching if user initiated (clicked), otherwise skip if already on this box if (index currentIndex && !userInitiated) return; // Collapse other boxes and expand current box simultaneously boxes.forEach((box, i) > { const boxElement document.getElementById(box.id); const borderElement boxElement.querySelector(.gradient-border); if (i ! index) { // Collapse other boxes boxElement.classList.remove(expanded); boxElement.classList.add(collapsed); borderElement.classList.remove(animating); borderElement.style.height 0; borderElement.style.animation none; } else { // Expand current box simultaneously boxElement.classList.remove(collapsed); boxElement.classList.add(expanded); // If user clicked, set border to 100%, otherwise it will be set by scroll progress if (userInitiated) { borderElement.style.height 100%; } borderElement.classList.remove(animating); } }); // Swap image with simple fade effect if (mainImage && boxesindex.image) { mainImage.style.opacity 0; setTimeout(() > { mainImage.src boxesindex.image; mainImage.style.opacity 1; }, 250); } currentIndex index; } // Add click handlers to each box boxes.forEach((box, index) > { const boxElement document.getElementById(box.id); if (boxElement) { boxElement.addEventListener(click, (e) > { e.stopPropagation(); // Mark that user clicked to temporarily disable scroll-based switching userClicked true; clearTimeout(clickTimeout); clickTimeout setTimeout(() > { userClicked false; }, 2000); // Re-enable scroll after 2 seconds // Force switch to clicked box switchToBox(index, true); }); } }); // Scroll-triggered animations with sticky behavior const howItWorksContainer document.querySelector(.how-it-works-container); const howItWorksSection document.getElementById(how-it-works); const spacer document.querySelector(.how-it-works-spacer); if (howItWorksContainer && howItWorksSection && spacer) { // Track scroll progress and determine active box const spacerHeight spacer.offsetHeight; // 300vh window.addEventListener(scroll, () > { // Skip scroll-based switching if user just clicked if (userClicked) return; // Recalculate container position on each scroll (offsetTop can change) const containerTop howItWorksContainer.offsetTop; const scrollY window.scrollY; const stickyStart containerTop; const stickyEnd stickyStart + spacerHeight; // Calculate scroll progress within the sticky scroll area (0 to 1) let scrollProgress 0; if (scrollY > stickyStart && scrollY stickyEnd) { scrollProgress (scrollY - stickyStart) / spacerHeight; } else if (scrollY stickyStart) { scrollProgress 0; } else { scrollProgress 1; } // Clamp progress between 0 and 1 const clampedProgress Math.min(1, Math.max(0, scrollProgress)); // Divide into 3 equal parts (exactly 1/3 each) // 0 to 0.333... step 1 // 0.333... to 0.666... step 2 // 0.666... to 1.0 step 3 let targetIndex 0; let stepProgress 0; // Progress within the current step (0 to 1) if (clampedProgress 1/3) { targetIndex 0; // Step 1 - first third stepProgress clampedProgress / (1/3); // 0 to 1 within step 1 } else if (clampedProgress 2/3) { targetIndex 1; // Step 2 - second third stepProgress (clampedProgress - 1/3) / (1/3); // 0 to 1 within step 2 } else { targetIndex 2; // Step 3 - third third stepProgress (clampedProgress - 2/3) / (1/3); // 0 to 1 within step 3 } // Clamp step progress between 0 and 1 stepProgress Math.min(1, Math.max(0, stepProgress)); // Switch to target box if different if (targetIndex ! currentIndex) { switchToBox(targetIndex, false, true); } // Update border height for the active step based on scroll progress boxes.forEach((box, i) > { const boxElement document.getElementById(box.id); const borderElement boxElement.querySelector(.gradient-border); if (i targetIndex && boxElement.classList.contains(expanded)) { // Set border height based on progress within this step const borderHeight stepProgress * 100; borderElement.style.height borderHeight + %; } else if (i ! targetIndex) { // Reset border for inactive steps borderElement.style.height 0%; } }); }, { passive: true }); // Initialize with step 1 when section first comes into view const sectionObserver new IntersectionObserver((entries) > { entries.forEach(entry > { if (entry.isIntersecting) { // Ensure we start at step 1 switchToBox(0, false, false); } }); }, { threshold: 0.1 }); sectionObserver.observe(howItWorksSection); // Also trigger scroll handler on load to set initial state setTimeout(() > { window.dispatchEvent(new Event(scroll)); }, 100); } })(); // Sports Tags Scroll Animation (function() { const sportsTagsSection document.querySelector(.sports-tags-section); const topRow document.querySelector(.sports-tags-row-top); const bottomRow document.querySelector(.sports-tags-row-bottom); const thirdRow document.querySelector(.sports-tags-row-third); if (!sportsTagsSection || !topRow || !bottomRow) return; const scrollSpeed 0.08; // Even more subtle scroll speed const maxOffset 200; // Maximum offset for movement const initialOffset 200; // Initial negative offset to prevent gap function updateTagsPosition() { const rect sportsTagsSection.getBoundingClientRect(); const windowHeight window.innerHeight; // Calculate when section enters viewport (bottom of screen) // Start animating when section top is at or below viewport bottom const sectionTop rect.top; const sectionHeight rect.height; // Calculate scroll progress: 0 when section enters bottom, 1 when fully scrolled past let scrollProgress 0; if (sectionTop windowHeight && sectionTop + sectionHeight > 0) { // Section is in viewport // Progress from 0 (entering bottom) to 1 (leaving top) const totalScrollDistance windowHeight + sectionHeight; const scrolledDistance windowHeight - sectionTop; scrollProgress Math.max(0, Math.min(1, scrolledDistance / totalScrollDistance)); } else if (sectionTop + sectionHeight 0) { // Section is above viewport (scrolled past) scrollProgress 1; } else { // Section is below viewport (not yet entered) scrollProgress 0; } // Calculate scroll offset based on progress // Progress goes from 0 to 1, offset goes from -maxOffset to maxOffset const scrollOffset (scrollProgress * 2 - 1) * maxOffset; // Maps 0->1 to -maxOffset->maxOffset // Top row: moves right on scroll down (positive offset), left on scroll up (negative offset) topRow.style.transform `translateX(${scrollOffset - initialOffset}px)`; // Bottom row: moves left on scroll down (negative offset), right on scroll up (positive offset) bottomRow.style.transform `translateX(${-scrollOffset - initialOffset}px)`; // Third row: moves right on scroll down (positive offset), left on scroll up (negative offset) - same as top row if (thirdRow) { thirdRow.style.transform `translateX(${scrollOffset - initialOffset}px)`; } } // Use requestAnimationFrame for smooth animation let ticking false; function onScroll() { if (!ticking) { window.requestAnimationFrame(() > { updateTagsPosition(); ticking false; }); ticking true; } } // Initialize position immediately topRow.style.transform `translateX(-${initialOffset}px)`; bottomRow.style.transform `translateX(-${initialOffset}px)`; if (thirdRow) { thirdRow.style.transform `translateX(-${initialOffset}px)`; } window.addEventListener(scroll, onScroll, { passive: true }); // Also initialize on load and resize window.addEventListener(load, () > { updateTagsPosition(); }); window.addEventListener(resize, () > { updateTagsPosition(); }); // Use IntersectionObserver to trigger animation when section enters viewport const observer new IntersectionObserver((entries) > { entries.forEach(entry > { if (entry.isIntersecting) { updateTagsPosition(); } }); }, { threshold: 0, rootMargin: 0px }); observer.observe(sportsTagsSection); // Initialize position updateTagsPosition(); })(); // Mobile menu toggle const menuButton document.getElementById(mobile-menu-button); const mobileMenu document.getElementById(mobile-menu); const menuIcon document.getElementById(menu-icon); const closeIcon document.getElementById(close-icon); const menuLinks mobileMenu.querySelectorAll(a); menuButton.addEventListener(click, () > { const isHidden mobileMenu.classList.contains(hidden); if (isHidden) { mobileMenu.classList.remove(hidden); menuIcon.classList.add(hidden); closeIcon.classList.remove(hidden); document.body.style.overflow hidden; // Prevent body scroll when menu is open } else { mobileMenu.classList.add(hidden); menuIcon.classList.remove(hidden); closeIcon.classList.add(hidden); document.body.style.overflow ; // Restore body scroll } }); // Close menu and scroll when clicking menu links menuLinks.forEach(link > { link.addEventListener(click, (e) > { e.preventDefault(); const targetId link.getAttribute(href); const targetElement document.querySelector(targetId); // Close menu mobileMenu.classList.add(hidden); menuIcon.classList.remove(hidden); closeIcon.classList.add(hidden); document.body.style.overflow ; // Scroll to target if (targetElement) { setTimeout(() > { targetElement.scrollIntoView({ behavior: smooth, block: start }); }, 100); } }); }); // Contact form functionality (function() { const API_BASE https://analytics-backend-crawford-iflands-projects.vercel.app; const contactModal document.getElementById(contact-modal); const contactModalClose contactModal?.querySelector(.contact-modal-close); const contactModalBackdrop contactModal?.querySelector(.contact-modal-backdrop); const contactForm document.getElementById(contact-form); const contactNameInput document.getElementById(contact-name); const contactEmailInput document.getElementById(contact-email); const contactVersionInput document.getElementById(contact-version); const contactNoDownloadCheckbox document.getElementById(contact-no-download); const contactMessageInput document.getElementById(contact-message); const contactStatusEl document.getElementById(contact-status); const contactSubmitButton document.getElementById(contact-submit); const contactSubmitText contactSubmitButton?.querySelector(.submit-text); const contactLinks document.getElementById(contact-link-header), document.getElementById(contact-link-mobile), document.getElementById(contact-link-footer) .filter(Boolean); let contactWidgetId null; const setContactStatus (message, type) > { contactStatusEl.textContent message || ; contactStatusEl.classList.remove(success, error); if (type) { contactStatusEl.classList.add(type); } }; const validateEmail (value) > /^^\s@+@^\s@+\.^\s@+$/.test(value); const ensureContactRecaptcha async () > { await window.__sidelineRecaptcha.ensureRecaptchaReady(); if (contactWidgetId null) { contactWidgetId grecaptcha.render(contact-recaptcha-container, { sitekey: window.__sidelineRecaptcha.siteKey, theme: dark }); } else { grecaptcha.reset(contactWidgetId); } }; const openContactModal async () > { setContactStatus(, null); contactSubmitButton.disabled false; contactSubmitText.textContent Send Message; contactForm.reset(); contactVersionInput.disabled false; contactVersionInput.required true; try { await ensureContactRecaptcha(); } catch (error) { console.error(error); setContactStatus(Unable to load verification. Please try again later., error); return; } contactModal.classList.add(is-visible); document.body.classList.add(modal-open); setTimeout(() > contactNameInput.focus(), 100); }; const closeContactModal () > { contactModal.classList.remove(is-visible); document.body.classList.remove(modal-open); setContactStatus(, null); contactSubmitButton.disabled false; contactSubmitText.textContent Send Message; if (contactWidgetId ! null && window.grecaptcha) { grecaptcha.reset(contactWidgetId); } }; // Handle checkbox to disable/enable version field if (contactNoDownloadCheckbox && contactVersionInput) { contactNoDownloadCheckbox.addEventListener(change, (e) > { if (e.target.checked) { contactVersionInput.disabled true; contactVersionInput.required false; contactVersionInput.value ; } else { contactVersionInput.disabled false; contactVersionInput.required true; } }); } const handleContactSubmit async (event) > { event.preventDefault(); setContactStatus(, null); const name contactNameInput.value.trim(); const email contactEmailInput.value.trim(); const version contactVersionInput.value.trim(); const message contactMessageInput.value.trim(); const noDownload contactNoDownloadCheckbox.checked; // Validation if (!name) { setContactStatus(Please enter your name., error); contactNameInput.focus(); return; } if (!validateEmail(email)) { setContactStatus(Please enter a valid email address., error); contactEmailInput.focus(); return; } if (!noDownload && !version) { setContactStatus(Please enter the version number or check the box if you haven\t downloaded Sideline yet., error); contactVersionInput.focus(); return; } if (!message) { setContactStatus(Please enter a message., error); contactMessageInput.focus(); return; } if (contactWidgetId null) { try { await ensureContactRecaptcha(); } catch (error) { setContactStatus(Unable to load verification. Please try again later., error); return; } } const token grecaptcha.getResponse(contactWidgetId); if (!token) { setContactStatus(Please complete the reCAPTCHA check., error); return; } contactSubmitButton.disabled true; contactSubmitText.textContent Sending...; try { const response await fetch(`${API_BASE}/api/website/contact`, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify({ name, email, version: noDownload ? Not downloaded yet : version, message, token }) }); const payload await response.json().catch(() > ({})); if (!response.ok || !payload.success) { throw new Error(payload.error || Unable to send your message. Please try again.); } setContactStatus(Thank you! Your message has been sent. We\ll get back to you soon., success); if (typeof gtag function) { gtag(event, form_submit, { event_category: engagement, event_label: contact_form }); } contactSubmitText.textContent Sent!; contactForm.reset(); contactVersionInput.disabled false; contactVersionInput.required true; grecaptcha.reset(contactWidgetId); // Close modal after 3 seconds setTimeout(() > { closeContactModal(); }, 3000); } catch (error) { console.error(error); setContactStatus(error.message || Something went wrong. Please try again., error); contactSubmitButton.disabled false; contactSubmitText.textContent Send Message; grecaptcha.reset(contactWidgetId); } }; const handleContactKeyDown (event) > { if (event.key Escape && contactModal.classList.contains(is-visible)) { closeContactModal(); } }; // Initialize contact form if elements exist if (contactModal && contactForm) { // Add click handlers to contact links if (contactLinks.length > 0) { contactLinks.forEach(link > { if (link) { link.addEventListener(click, (e) > { e.preventDefault(); // Close mobile menu if open const mobileMenu document.getElementById(mobile-menu); const menuIcon document.getElementById(menu-icon); const closeIcon document.getElementById(close-icon); if (mobileMenu && !mobileMenu.classList.contains(hidden)) { mobileMenu.classList.add(hidden); if (menuIcon) menuIcon.classList.remove(hidden); if (closeIcon) closeIcon.classList.add(hidden); document.body.style.overflow ; } openContactModal(); }); } }); } // Add close handlers if (contactModalClose) { contactModalClose.addEventListener(click, closeContactModal); } if (contactModalBackdrop) { contactModalBackdrop.addEventListener(click, closeContactModal); } // Add form submit handler if (!document.__sidelineContactFormBound) { contactForm.addEventListener(submit, handleContactSubmit); document.addEventListener(keydown, handleContactKeyDown); document.__sidelineContactFormBound true; } } else { console.warn(Contact form elements not found); } })(); // Load images processed counter (function() { const API_BASE https://analytics-backend-crawford-iflands-projects.vercel.app; const counterElement document.getElementById(images-processed-counter); if (!counterElement) return; function formatTimeSaved(imageCount) { // Calculate total seconds saved (30 seconds per image) const totalSeconds imageCount * 30; const totalMinutes Math.floor(totalSeconds / 60); const totalHours Math.floor(totalMinutes / 60); if (totalHours > 1) { const remainingMinutes totalMinutes % 60; if (remainingMinutes 0) { return `br>saving photographers ${totalHours.toLocaleString(en-US)} ${totalHours 1 ? hour : hours} of manual captioning`; } else { return `br>saving photographers ${totalHours.toLocaleString(en-US)} ${totalHours 1 ? hour : hours} ${remainingMinutes} ${remainingMinutes 1 ? minute : minutes} of manual captioning`; } } else { return `br>saving photographers ${totalMinutes.toLocaleString(en-US)} ${totalMinutes 1 ? minute : minutes} of manual captioning`; } } function animateCounter(span, targetValue, timeSavedText ) { // Parse the target value to get the numeric value (remove commas) const targetNumber parseInt(targetValue.replace(/,/g, )); // Count the number of digits const digitCount targetValue.replace(/,/g, ).length; // Create starting number with all 1s (e.g., 1111 for 4 digits, 111111 for 6 digits) let startNumber 0; for (let i 0; i digitCount; i++) { startNumber startNumber * 10 + 1; } // Calculate total steps needed const totalSteps targetNumber - startNumber; // Calculate step size and duration to complete in exactly 2 seconds const targetDuration 2000; // 2 seconds max const targetSteps 50; // Aim for ~50 animation steps for smooth counting // Calculate step size to get approximately targetSteps let stepSize Math.max(1, Math.ceil(totalSteps / targetSteps)); // Calculate actual number of steps well take const actualSteps Math.ceil(totalSteps / stepSize); // Calculate duration per step to complete in exactly 2 seconds let stepDuration Math.floor(targetDuration / actualSteps); // Ensure minimum step duration for visibility (at least 10ms) stepDuration Math.max(10, stepDuration); let currentNumber startNumber; // Function to format number with commas const formatNumber (num) > { return num.toLocaleString(en-US); }; // Start with the initial value (include full text from the start) span.innerHTML Sideline has captioned + formatNumber(startNumber) + images, + timeSavedText; // Animation function - counts up sequentially const animateStep () > { if (currentNumber targetNumber) { // Increment the number by step size currentNumber Math.min(currentNumber + stepSize, targetNumber); // Update display with full text including number and time saved span.innerHTML Sideline has captioned + formatNumber(currentNumber) + images, + timeSavedText; // Continue animation if (currentNumber targetNumber) { setTimeout(animateStep, stepDuration); } else { // Ensure final value is exact span.innerHTML Sideline has captioned + targetValue + images, + timeSavedText; } } }; // Start animation after a small delay setTimeout(animateStep, 100); } async function loadImagesCounter() { try { const response await fetch(`${API_BASE}/api/stats`); if (!response.ok) { throw new Error(`HTTP ${response.status}`); } const data await response.json(); const count data.images_all_time || 0; // Format number with commas const formatted count.toLocaleString(en-US); // Calculate and format time saved const timeSavedText formatTimeSaved(count); const span counterElement.querySelector(span.counter-content); if (span) { // Store the data but DONT set content yet - wait for fade-in timing // Fade in the counter container after buttons (2100ms) but before hero (2700ms) // Start fade-in at 2200ms, takes 1000ms, completes at 3200ms setTimeout(() > { // Start the fade-in animation counterElement.classList.add(fade-in); // Set content DURING fade-in (at 500ms into fade) so it appears gradually setTimeout(() > { // Remove loading class - this reveals the content as container fades in span.classList.remove(counter-loading); // Set the final content (will be visible as fade continues) span.innerHTML Sideline has captioned + formatted + images, + timeSavedText; // Remove margin from hero image at the SAME TIME text appears // This prevents the hero image from moving before text is visible const heroImageContainer document.querySelector(.hero-image-container); if (heroImageContainer) { heroImageContainer.classList.remove(mt-6); heroImageContainer.classList.add(mt-0); } // Start counter animation after fade-in completes setTimeout(() > { animateCounter(span, formatted, timeSavedText); }, 500); // Wait for remaining fade time (1000ms - 500ms 500ms) }, 500); // Halfway through fade-in }, 2200); } } catch (error) { console.warn(Failed to load images counter:, error); // Remove loading animation on error after fade-in setTimeout(() > { const span counterElement.querySelector(span); if (span) { span.classList.remove(counter-loading); // Leave blank on error } }, 3500); } } // Load counter when page is ready if (document.readyState loading) { document.addEventListener(DOMContentLoaded, loadImagesCounter); } else { loadImagesCounter(); } })(); /script> !-- Google Analytics - Load asynchronously --> script async srchttps://www.googletagmanager.com/gtag/js?idG-CER3GHQT13>/script> script> window.dataLayer window.dataLayer || ; function gtag(){dataLayer.push(arguments);} gtag(js, new Date()); gtag(config, G-CER3GHQT13); /script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]