
        *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;border:0;outline:none}
        html,body{min-height:100%}
        body{background:var(--t-page, #F8FAFC);font-family:ui-rounded, 'SF Pro Rounded', 'Nunito', 'Nunito Fallback', 'SF Pro Display', -apple-system, BlinkMacSystemFont, system-ui, 'Helvetica Neue', Arial, sans-serif;color:var(--t-ink, #0F172A);-webkit-font-smoothing:antialiased}
        p{font-size:15px;color:var(--t-body, #334155);line-height:1.75}
        a{color:var(--t-accent, #2F80ED);text-decoration:none;font-weight:600}
        a:hover{color:var(--t-accent-hover, #226CD6)}
        button{border:0;outline:none;cursor:pointer;font-family:inherit}
        @keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
        .sparkle{position:relative}
.sparkle::before,.sparkle::after{content:"";position:absolute;pointer-events:none;background:currentColor;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);-webkit-clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);opacity:0;transform:scale(0);animation:ctaTwinkle 3.6s ease-in-out infinite}
.sparkle::before{width:11px;height:11px;top:5px;right:13px}
.sparkle::after{width:8px;height:8px;bottom:6px;left:15px;animation-delay:.45s}
@keyframes ctaTwinkle{0%,22%,100%{opacity:0;transform:scale(0) rotate(0deg)}9%{opacity:1;transform:scale(1) rotate(25deg)}}
.sparkle:disabled::before,.sparkle:disabled::after{animation:none}
@media (prefers-reduced-motion: reduce){.sparkle::before,.sparkle::after{animation:none}}
        .ps-nav-cta{background:var(--t-accent, #2F80ED);color:var(--t-on-accent, #fff) !important;border-radius:999px;padding:12px 24px;font-size:13px;font-weight:700;transition:all .25s cubic-bezier(.16,1,.3,1)}
        .ps-nav-cta:hover{background:var(--t-accent-hover, #226CD6);transform:translateY(-1px);box-shadow:0 14px 44px color-mix(in srgb, var(--t-accent, #2F80ED) 26%, transparent)}
        @media (prefers-reduced-motion:reduce){.ps-nav-cta:hover{transform:none}}
        .ps-nav-cta.sparkle::before{width:9px;height:9px;top:3px;right:8px}
        .ps-nav-cta.sparkle::after{width:7px;height:7px;bottom:4px;left:9px}
        .ps-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
        .ps-search{flex:1 1 auto;max-width:440px;min-width:0;margin:0 28px}
        /* The app header's search (components/AppHeader HeaderSearch): surface fill, soft shadow, NO border.
           The icon is the active mark — it goes to ink-strong on focus, as it does there. */
        .ps-search-field{display:flex;align-items:center;gap:8px;padding:9px 14px 9px 16px;border-radius:999px;background:var(--t-surface, #fff);box-shadow:var(--t-shadow-sm, 0 1px 2px rgba(15,23,42,0.04), 0 2px 8px rgba(15,23,42,0.04));cursor:text}
        .ps-search-field svg{flex:0 0 auto;transition:stroke .15s ease}
        .ps-search-field:focus-within svg{stroke:var(--t-ink-strong, #111)}
        .ps-search-field input{flex:1 1 auto;min-width:0;border:0;background:transparent;outline:none;font:inherit;font-size:14px;font-weight:500;line-height:20px;letter-spacing:-0.1px;color:var(--t-ink, #0F172A)}
        .ps-search-field input::-webkit-search-cancel-button{-webkit-appearance:none}
        /* 18px wide so it never drives the row's height — the clear button appearing must not resize the field.
           The thumb target is projected outward instead, which costs no layout. */
        .ps-search-clear{position:relative;flex:0 0 auto;width:18px;height:18px;border:0;border-radius:50%;background:var(--t-select, #E2E8F0);color:var(--t-body2, #475569);font-size:11px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
        .ps-search-clear::after{content:"";position:absolute;inset:-11px}
        .ps-search-pop{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:40;background:var(--t-surface, #fff);border-radius:18px;padding:8px;box-shadow:0 10px 40px rgba(15,23,42,0.14), 0 2px 8px rgba(15,23,42,0.06);max-height:min(62vh, 440px);overflow-y:auto;overscroll-behavior:contain}
        .ps-search-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:12px}
        .ps-search-avwrap{position:relative;flex:0 0 auto;width:32px;height:32px}
        .ps-search-av{width:32px;height:32px;border-radius:999px;overflow:hidden;background:var(--t-tint, #F1F5F9);display:flex;align-items:center;justify-content:center}
        /* Outside .ps-search-av, whose overflow:hidden would clip it. The ring is what separates the mark from
           the photo at a size this small. */
        .ps-search-badge{position:absolute;right:-3px;bottom:-3px;width:16px;height:16px;box-sizing:border-box;display:grid;place-items:center;border-radius:50%;background:var(--t-mark-disc, #fff);border:1.5px solid var(--t-surface, #fff);box-shadow:0 1px 3px rgba(15,23,42,.18)}
        .ps-search-badge img{width:11px;height:11px;object-fit:contain;filter:var(--t-crest-filter, none)}
        .ps-search-av img{width:100%;height:100%;object-fit:cover;display:block}
        .ps-search-av img.is-crest{object-fit:contain;padding:5px;box-sizing:border-box}
        .ps-search-mark{background:transparent;color:var(--t-accent, #2F80ED);font-weight:700}
        .ps-search-head{margin:0;padding:8px 12px 4px;font-size:10px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--t-muted, #64748B)}
        /* A crest carries its own shape, so it gets no disc behind it — the same way the team page header,
           the matchup header and the team pills render one. The circle is for headshots, which need the mask. */
        .ps-search-av.is-page, .ps-search-av.is-game{background:none;border-radius:0}
        .ps-search-av.is-page img.is-crest{padding:0;width:26px;height:26px}
        .ps-search-av.is-game{gap:3px}
        .ps-search-av.is-game img{width:15px;height:15px;object-fit:contain}
        /* No separators: the gap does the work, so the line reads as a sentence rather than a list. */
        .ps-search-lg{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex:0 0 auto}
        .ps-search-lg img{max-width:16px;max-height:16px;object-fit:contain}
        .ps-search-name{display:flex;align-items:baseline;gap:7px;min-width:0}
        .ps-search-nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;color:var(--t-ink, #0F172A)}
        .ps-search-meta{display:flex;align-items:center;gap:8px;margin-top:1px;font-size:12px;font-weight:600;color:var(--t-muted, #64748B);min-width:0;white-space:nowrap;overflow:hidden}

        .ps-search-inline{display:block}
        /* Same disc as components/BackDisc, which it sits beside: 34px, surface fill, the same soft shadow. */
        .ps-search-open{display:none;width:34px;height:34px;border:0;border-radius:999px;background:var(--t-surface, #fff);color:var(--t-ctrl-ink, #5b6270);box-shadow:0 1px 2px rgba(15,23,42,0.06);cursor:pointer;align-items:center;justify-content:center;transition:color .15s}
        .ps-search-sheet{position:fixed;inset:0;z-index:200;background:var(--t-surface, #fff);display:flex;flex-direction:column}
        .ps-search-sheet-top{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--t-hairline, #EEF2F6)}
        .ps-search-sheet-top .ps-search-field{flex:1 1 auto;min-width:0}
        .ps-search-cancel{flex:0 0 auto;border:0;background:transparent;color:var(--t-accent, #2F80ED);font:inherit;font-size:14px;font-weight:700;padding:10px 6px;cursor:pointer}
        .ps-search-sheet-body{flex:1 1 auto;overflow-y:auto;padding:8px 6px calc(16px + env(safe-area-inset-bottom))}
        .ps-search-sheet .ps-search-hint{display:none}
        /* 860 is PHONE_MAX in components/PublicSearch, which closes the sheet when this rule stops applying.
           Change one and you must change the other, or the sheet strands itself over the desktop layout. */
        @media (max-width:860px){
          /* The magnifier joins the right-hand controls, 10px off the back disc the way Sign in is. */
          .ps-search{flex:0 0 auto;max-width:none;margin:0 10px 0 auto}
          .ps-search-inline{display:none}
          .ps-search-open{display:flex}
          .ps-search-row{padding:10px 12px}
        }
        /* The track is pinned to the WIDE column at every width, rather than following the page's own wide prop.
           The nav is the fixed part of the page: letting it track the prop made the row visibly narrow and the
           pills jump left on the 860px pages (404, legal), which is worse than the gutter it aligns to there. */
        .ps-sports{border-bottom:0}
        /* More room above than below: with no border under the row the pills would otherwise sit against the
           top nav, and the extra space groups them with the content they filter. */
        .ps-sports-in{display:flex;align-items:center;gap:16px;margin:0 auto;padding:18px 40px 10px}
        /* One row that scrolls sideways at every width, like components/SegTabs. Wrapping instead would push the
           page down by a whole row on a phone. */
        /* overflow-x:auto computes overflow-y to auto as well (an axis is only visible when both are), so this
           scroller clips vertically, and the row stood exactly as tall as a pill — cropping every .ps-sport
           shadow, which reaches 6px above and 10px below. The negative margin keeps its outer height at 32. */
        .ps-tabs{display:flex;flex-wrap:nowrap;gap:8px;flex:1 1 auto;min-width:0;overflow-x:auto;padding:6px 0 10px;margin:-6px 0 -10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
        .ps-tabs::-webkit-scrollbar{display:none}
        /* The landing page's .sport-pill (pages/index.js), which this deliberately matches: same fill, radius,
           coin and type, so the two sport rows read as one thing. */
        .ps-sport{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;background:var(--t-surface, #fff);border-radius:999px;padding:6px 14px 6px 6px;font-family:'Nunito', 'Nunito Fallback', ui-rounded, 'SF Pro Rounded', system-ui, 'Helvetica Neue', Arial, sans-serif;font-size:12px;letter-spacing:.5px;font-weight:600;color:var(--t-ink, #0F172A) !important;box-shadow:var(--t-shadow-sm, 0 1px 2px rgba(15,23,42,0.04), 0 2px 8px rgba(15,23,42,0.04));transition:background .2s,color .2s}
        .ps-coin{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:999px;padding:0 2px;box-sizing:border-box;flex-shrink:0;background:transparent;color:var(--t-accent, #2F80ED);overflow:hidden;transition:background .2s}
        @media (hover:hover){.ps-sport:hover{background:var(--t-accent, #2F80ED);color:var(--t-on-accent, #fff) !important}.ps-sport:hover .ps-coin{background:var(--t-surface, #fff)}}
        .ps-sport.is-on{background:var(--t-accent, #2F80ED);color:var(--t-on-accent, #fff) !important}
        .ps-sport.is-on .ps-coin{background:var(--t-surface, #fff)}
        /* The panels live OUTSIDE .ps-tabs: a scroller clips on all four sides, so one nested in it could never
           open. They anchor under their own pill, whose x only JS can know once the row has scrolled — hence
           --ps-menu-x, set per panel (never on the host: one shared value stacks them all on one pill). */
        .ps-menus{position:absolute;left:0;right:0;top:100%;z-index:60;pointer-events:none}
        .ps-menu{position:absolute;top:2px;left:var(--ps-menu-x, 0px);width:420px;max-width:92vw;padding:12px;box-sizing:border-box;background:var(--t-surface, #fff);border-radius:16px;box-shadow:0 12px 44px rgba(15,23,42,.16),0 2px 8px rgba(15,23,42,.06);opacity:0;visibility:hidden;transform:translateY(-4px);pointer-events:none}
        /* The row's bottom padding is dead space the pointer crosses on its way down, which would drop the pill's
           :hover and close the panel before it arrives. Inert until the panel opens, since it cannot be hit while
           the panel has pointer-events:none. */
        .ps-menu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
        .ps-menu-h{margin:0;padding:4px 10px 8px;font-size:10px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--t-muted, #64748B)}
        .ps-menu-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 10px}
        .ps-menu a{display:block;padding:7px 10px;border-radius:9px;font-size:13.5px;font-weight:700;color:var(--t-ink, #0F172A) !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .ps-menu a:hover{background:var(--t-tint, #F1F5F9)}
        .ps-menu-rule{height:1px;background:var(--t-hairline, #EEF2F6);margin:10px}
        .ps-menu a.ps-menu-all{display:flex !important;align-items:center;justify-content:space-between;gap:12px;margin-top:6px;color:var(--t-accent, #2F80ED) !important;font-weight:700}
        /* On a phone the first tap would have to open rather than navigate, which is the usual flyout trap. */
        @media (hover:hover) and (min-width:861px){
          .ps-sports:has(.ps-sport[data-sp="nba"]:hover) .ps-menu[data-sp="nba"],.ps-sports:has(.ps-sport[data-sp="nba"]:focus-visible) .ps-menu[data-sp="nba"],.ps-sports:has(.ps-sport[data-sp="wnba"]:hover) .ps-menu[data-sp="wnba"],.ps-sports:has(.ps-sport[data-sp="wnba"]:focus-visible) .ps-menu[data-sp="wnba"],.ps-sports:has(.ps-sport[data-sp="nfl"]:hover) .ps-menu[data-sp="nfl"],.ps-sports:has(.ps-sport[data-sp="nfl"]:focus-visible) .ps-menu[data-sp="nfl"],.ps-sports:has(.ps-sport[data-sp="mlb"]:hover) .ps-menu[data-sp="mlb"],.ps-sports:has(.ps-sport[data-sp="mlb"]:focus-visible) .ps-menu[data-sp="mlb"],.ps-sports:has(.ps-sport[data-sp="nhl"]:hover) .ps-menu[data-sp="nhl"],.ps-sports:has(.ps-sport[data-sp="nhl"]:focus-visible) .ps-menu[data-sp="nhl"],.ps-sports:has(.ps-sport[data-sp="college-football"]:hover) .ps-menu[data-sp="college-football"],.ps-sports:has(.ps-sport[data-sp="college-football"]:focus-visible) .ps-menu[data-sp="college-football"],.ps-sports:has(.ps-sport[data-sp="college-basketball"]:hover) .ps-menu[data-sp="college-basketball"],.ps-sports:has(.ps-sport[data-sp="college-basketball"]:focus-visible) .ps-menu[data-sp="college-basketball"],.ps-sports:has(.ps-sport[data-sp="womens-college-basketball"]:hover) .ps-menu[data-sp="womens-college-basketball"],.ps-sports:has(.ps-sport[data-sp="womens-college-basketball"]:focus-visible) .ps-menu[data-sp="womens-college-basketball"],.ps-sports:has(.ps-sport[data-sp="soccer"]:hover) .ps-menu[data-sp="soccer"],.ps-sports:has(.ps-sport[data-sp="soccer"]:focus-visible) .ps-menu[data-sp="soccer"],.ps-sports:has(.ps-sport[data-sp="cricket"]:hover) .ps-menu[data-sp="cricket"],.ps-sports:has(.ps-sport[data-sp="cricket"]:focus-visible) .ps-menu[data-sp="cricket"],.ps-sports:has(.ps-sport[data-sp="tennis"]:hover) .ps-menu[data-sp="tennis"],.ps-sports:has(.ps-sport[data-sp="tennis"]:focus-visible) .ps-menu[data-sp="tennis"],.ps-sports:has(.ps-sport[data-sp="golf"]:hover) .ps-menu[data-sp="golf"],.ps-sports:has(.ps-sport[data-sp="golf"]:focus-visible) .ps-menu[data-sp="golf"],.ps-sports:has(.ps-sport[data-sp="mma"]:hover) .ps-menu[data-sp="mma"],.ps-sports:has(.ps-sport[data-sp="mma"]:focus-visible) .ps-menu[data-sp="mma"],.ps-sports:has(.ps-sport[data-sp="f1"]:hover) .ps-menu[data-sp="f1"],.ps-sports:has(.ps-sport[data-sp="f1"]:focus-visible) .ps-menu[data-sp="f1"],.ps-sports:has(.ps-sport[data-sp="nascar"]:hover) .ps-menu[data-sp="nascar"],.ps-sports:has(.ps-sport[data-sp="nascar"]:focus-visible) .ps-menu[data-sp="nascar"],
          /* Opening only: panels sit at their own x, so a fading-out one overlaps the next instead of hiding behind it. */
          .ps-menu:hover, .ps-menu:focus-within{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:opacity .14s ease,transform .14s ease}
          /* A pill being hovered closes every OTHER panel, even one the pointer is also inside. Panels overlap, so
             in the overlap the rule above held two of them open at once - Cricket's and Tennis's, side by side.
             Keyed on the pill, which only one of can be hovered, so this can never hide them all. */
          .ps-sports:has(.ps-sport[data-sp="nba"]:hover) .ps-menu:not([data-sp="nba"]),.ps-sports:has(.ps-sport[data-sp="wnba"]:hover) .ps-menu:not([data-sp="wnba"]),.ps-sports:has(.ps-sport[data-sp="nfl"]:hover) .ps-menu:not([data-sp="nfl"]),.ps-sports:has(.ps-sport[data-sp="mlb"]:hover) .ps-menu:not([data-sp="mlb"]),.ps-sports:has(.ps-sport[data-sp="nhl"]:hover) .ps-menu:not([data-sp="nhl"]),.ps-sports:has(.ps-sport[data-sp="college-football"]:hover) .ps-menu:not([data-sp="college-football"]),.ps-sports:has(.ps-sport[data-sp="college-basketball"]:hover) .ps-menu:not([data-sp="college-basketball"]),.ps-sports:has(.ps-sport[data-sp="womens-college-basketball"]:hover) .ps-menu:not([data-sp="womens-college-basketball"]),.ps-sports:has(.ps-sport[data-sp="soccer"]:hover) .ps-menu:not([data-sp="soccer"]),.ps-sports:has(.ps-sport[data-sp="cricket"]:hover) .ps-menu:not([data-sp="cricket"]),.ps-sports:has(.ps-sport[data-sp="tennis"]:hover) .ps-menu:not([data-sp="tennis"]),.ps-sports:has(.ps-sport[data-sp="golf"]:hover) .ps-menu:not([data-sp="golf"]),.ps-sports:has(.ps-sport[data-sp="mma"]:hover) .ps-menu:not([data-sp="mma"]),.ps-sports:has(.ps-sport[data-sp="f1"]:hover) .ps-menu:not([data-sp="f1"]),.ps-sports:has(.ps-sport[data-sp="nascar"]:hover) .ps-menu:not([data-sp="nascar"]){
            opacity:0 !important;visibility:hidden !important;pointer-events:none !important}
        }
        .ps-card{background:var(--t-surface, #fff);border-radius:24px;padding:28px 32px;box-shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(15,23,42,.05)}
        .ps-card.ps-list{padding:8px 28px 12px}
        .ps-h1{font-size:28px}
        .ps-h2{font-size:22px;font-weight:700;letter-spacing:-.4px;color:var(--t-ink, #0F172A);margin-bottom:14px}
        /* Data pages (a plain .ps-h1): smaller section headings. */
        .ps-content:has(.ps-h1) .ps-h2{font-size:18px;letter-spacing:-.2px}
        /* A section title, not a kicker. At 11px uppercase this styled six headings on /nfl/defense identically and
   none could carry the table under it, so the page read as one undifferentiated run. Sentence case at 16px; the
   source text is already sentence case, so dropping the transform is all that needs saying. No rule under it:
   every section is its own .ps-card, so the card's own edge is the boundary and a hairline only repeated it.
   The 10px uppercase .ps-kicker below is the label that still belongs over a figure. */
.ps-h2.ps-kick{font-size:16px !important;letter-spacing:-.2px !important;text-transform:none;color:var(--t-ink, #0F172A);margin-bottom:16px}/* Only a heading that carries a scope becomes a row: one on the player page sets display:flex inline for its
   live dot, and space-between there would fling the dot to the far edge. */
.ps-h2.ps-kick:has(.ps-scope){display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 16px}
.ps-scope{flex-shrink:0;font-size:12px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--t-muted2,#8A94A3);white-space:nowrap}
/* A heading sharing its row with a timestamp, a link or a filter. */
.ps-headrow{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 16px;margin-bottom:16px}
.ps-headrow>.ps-h2.ps-kick{margin-bottom:0}
.ps-kick+.ps-pills{margin-top:0}.ps-kick+table,.ps-kick+style+table,.ps-kick+.df-wrap{margin-top:0}
        .ps-kicker{font-size:10px;font-weight:700;color:var(--t-muted, #64748B);font-family:'Nunito', 'Nunito Fallback', ui-rounded, 'SF Pro Rounded', system-ui, 'Helvetica Neue', Arial, sans-serif;letter-spacing:2px;text-transform:uppercase;margin-bottom:14px}
        .ps-kicker a{color:inherit;text-decoration:none}.ps-kicker a{transition:color .15s ease}.ps-kicker a:hover{color:var(--t-accent, #2F80ED)}
        .hs-lit{filter:brightness(.955)}html[data-theme="dark"] .hs-lit{filter:none}
        .ps-rise{opacity:0;transform:translateY(14px);transition:opacity .45s ease,transform .45s cubic-bezier(.2,.7,.2,1)}
        .ps-rise.ps-in{opacity:1;transform:none}
        @media (hover:hover){.ps-pill,.ps-chip,.nh-tile,.og-row,.pp-links a,.sp-in,.tm-chip{transition:color .15s ease,transform .15s ease,box-shadow .15s ease,border-color .15s ease !important}.ps-pill:hover,.ps-chip:hover,.nh-tile:hover,.og-row:hover,.pp-links a:hover,.sp-in:hover,.tm-chip:hover{transform:translateY(-1px)}.og-row:hover,.nh-tile:hover{box-shadow:0 6px 16px rgba(15,23,42,.08)}}
        @media (prefers-reduced-motion:reduce){.ps-rise{opacity:1;transform:none;transition:none}.ps-pill:hover,.ps-chip:hover,.nh-tile:hover,.og-row:hover,.pp-links a:hover,.sp-in:hover,.tm-chip:hover{transform:none}}
        /* A real list where the copy enumerates. Not the "·" separator, which Betravon text doesn't use. */
        .ps-bul{margin:6px 0 0;padding-left:18px}
        .ps-bul li{margin:2px 0}
        .ps-pills{display:flex;flex-wrap:wrap;gap:10px}
        /* Tinted, not a raised white chip. These sit inside white cards, where the chip's fill matched the card exactly
   and a 4% shadow was the only thing separating them - washed out on every sidebar. The nav's chips are a
   different class and still lift off the grey page behind them. */
.ps-pill{display:inline-flex;align-items:center;gap:7px;min-height:34px;box-sizing:border-box;padding:7px 14px;line-height:1.35;border-radius:17px;background:var(--t-tint, #F1F5F9);font-size:13px;font-weight:700;color:var(--t-body, #334155) !important;text-decoration:none;transition:color .15s ease,background-color .15s ease}
@media (hover:hover){.ps-pill:hover{background:var(--t-border-cool, #E8EDF3)}}
        @media (hover:hover){.ps-pill:hover{color:var(--t-accent, #2F80ED) !important}}.ps-pill img{width:16px;height:16px;object-fit:contain;filter:var(--t-crest-filter, none)}
        .ps-pill:has(.pill-coin){padding-left:7px}.ps-pill .pill-coin{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 2px;box-sizing:border-box;flex-shrink:0;color:var(--t-accent, #2F80ED)}.ps-pill .pill-coin img{width:auto;height:auto}
        .ps-table{width:100%;border-collapse:collapse;font-size:13px}
        .ps-table th{text-align:left;font-family:'Nunito', 'Nunito Fallback', ui-rounded, 'SF Pro Rounded', system-ui, 'Helvetica Neue', Arial, sans-serif;font-size:10px;letter-spacing:1px;color:var(--t-muted, #64748B);font-weight:700;text-transform:uppercase;padding:0 18px 10px 0;white-space:nowrap}
        .ps-table td{padding:11px 18px 11px 0;border-top:1px solid var(--t-tint, #F1F5F9);color:var(--t-ink, #0F172A);vertical-align:top}
        .ps-table th:last-child,.ps-table td:last-child{padding-right:0}
        .ps-num{font-family:'Nunito', 'Nunito Fallback', ui-rounded, 'SF Pro Rounded', system-ui, 'Helvetica Neue', Arial, sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
        .ps-cta{display:inline-block;background:var(--t-accent, #2F80ED);color:var(--t-on-accent, #fff) !important;border-radius:999px;padding:14px 28px;font-weight:700;font-size:14px}
        .ps-cta:hover{background:var(--t-accent-hover, #226CD6)}
        .ps-cta{transition:background .2s, transform .2s, box-shadow .2s}
        @media (hover:hover){.ps-cta:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(15,23,42,.08)}}
        .ps-cta:focus-visible{transform:translateY(-1px)}
        @media (prefers-reduced-motion:reduce){.ps-cta:hover,.ps-cta:focus-visible{transform:none}}
        /* On a dark card the button keeps its color on hover (darkening a white button reads as disabled); the lift shows it. */
        .ps-cta.on-dark,.ps-cta.on-dark:hover{background:var(--t-accent-on-dark, var(--t-accent, #2F80ED));color:var(--t-on-accent-on-dark, var(--t-on-accent, #fff)) !important}
        @media (hover:hover){.ps-cta.on-dark:hover{box-shadow:0 4px 14px rgba(0,0,0,.35)}}
        .ps-root{overflow:hidden;overflow:clip}  /* clip, not hidden, where supported: hidden makes a scroll box, which stops position:sticky (the pricing table header) */
        @media (max-width:860px){ .ps-nav{padding:0 24px !important} }
        /* 16px is .ps-content's own phone gutter, so the two edges stay aligned at every width. */
        @media (max-width:640px){ .ps-sports-in{padding:14px 16px 12px} }
        @media (max-width:640px){
          .ps-content{padding:24px 16px 64px !important}
          .ps-card{padding:28px 18px;border-radius:20px}
          .ps-card.ps-list{padding:8px 18px 10px}
          .ps-h1{font-size:26px !important}
          .ps-h2{font-size:20px}
          .ps-content:has(.ps-h1) .ps-h2{font-size:17px}
          p{font-size:14px}
          .ps-hide-sm{display:none}
        }
