/* elite_black.css */
/* KarmaEdge.AI elite black design system (UI revamp phase 1, 2026-09-29).
   Loaded last on every customer page. Pure black canvas to match the logo,
   one teal accent taken from the logo (#2DFCE6 -> #31FBB7), gold reserved for
   paid access. Fonts are self-hosted (SIL OFL, see static/fonts/*-OFL.txt):
   the site CSP allows no third-party font or style hosts. */
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/inter-latin-wght.woff2) format("woff2")}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:300 700;font-display:swap;src:url(fonts/space-grotesk-latin-wght.woff2) format("woff2")}

:root{
  --ke-black:#000;--ke-surface:#0b0b0d;--ke-surface-2:#131316;--ke-surface-3:#1a1a1e;
  --ke-hairline:rgba(255,255,255,.08);--ke-hairline-strong:rgba(255,255,255,.14);
  --ke-text:#f5f7f8;--ke-text-2:#a1a7ad;--ke-text-3:#6d7379;
  --ke-teal:#2dfce6;--ke-mint:#31fbb7;--ke-accent:linear-gradient(135deg,#2dfce6 0%,#31fbb7 100%);
  --ke-gold:#f2c14e;--ke-gold-2:#e6a83c;
  --ke-display:"Space Grotesk","Inter",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ke-body:"Inter",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  /* The shared tokens every page stylesheet already reads. */
  --bg:#000;--panel:#0b0b0d;--panel2:#131316;--panel-2:#131316;--line:rgba(255,255,255,.1);
  --ink:#f5f7f8;--muted:#a1a7ad;--mint:#31fbb7;--cta-free-primary:#31fbb7;
  --shadow:0 24px 60px rgba(0,0,0,.6);
  --os-bg:#000;--os-panel:#0b0b0d;--os-line:rgba(255,255,255,.1);
  --gd-bg:#000;--gd-panel:#0b0b0d;--gd-line:rgba(255,255,255,.1);
  --trend-bg:#000;--trend-panel:#0b0b0d;--trend-panel-2:#131316;--trend-line:rgba(255,255,255,.1);
  --pr-surface:#0b0b0d;
}
html{background:#000}
body{background:#000!important;color:var(--ke-text);font-family:var(--ke-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
::selection{background:#2dfce633;color:#fff}
h1,h2,h3,.brand{font-family:var(--ke-display);letter-spacing:-.025em}
h1{letter-spacing:-.04em}

/* Header: slim, black glass, hairline. */
.site-header{background:rgba(0,0,0,.72)!important;border-bottom:1px solid var(--ke-hairline)!important;-webkit-backdrop-filter:saturate(160%) blur(18px);backdrop-filter:saturate(160%) blur(18px);box-shadow:none!important}
.site-header .nav{min-height:68px}
/* The logo file is a square with wide dark margins; show only the mark and wordmark. */
.site-header .brand-logo-link{flex:none;display:block;width:70px;height:50px;overflow:hidden;border-radius:6px}
.site-header .brand-logo{width:84px;height:84px;max-width:none;margin:-13px 0 0 -7px}
@media (max-width:640px){.site-header .brand-logo-link{width:62px;height:44px}.site-header .brand-logo{width:74px;height:74px;margin:-11px 0 0 -6px}}
.site-header .shell.nav{width:min(1320px,calc(100% - 40px))}
.nav-links{gap:18px;font-size:13.5px;font-weight:600;color:var(--ke-text-2)}
.nav-links a,.nav-links button,.nav-account>*{white-space:nowrap}
.nav-links>.nav-dropdown{flex:none}
.nav-links a,.nav-dropdown-trigger{transition:color .15s ease}
.nav-links a:hover,.nav-links a[aria-current=page],.nav-dropdown-trigger[aria-current=page]{color:#fff}
.nav-dropdown-menu{background:#0b0b0d!important;border:1px solid var(--ke-hairline-strong)!important;box-shadow:0 24px 60px rgba(0,0,0,.7)!important;border-radius:12px}
.nav-dropdown-menu a:hover,.nav-dropdown-menu a:focus-visible{background:#17171a!important}
.nav-player-prop-free{background:#0f1614!important;border-color:#31fbb766!important;box-shadow:none!important}
.nav-free-badge{background:var(--ke-accent)!important;border-color:transparent!important;color:#001a14!important;box-shadow:none!important}
.nav-account{gap:16px}
.nav-account a[href="/account/login"]{color:var(--ke-text-2);font-weight:600}
.nav-account a[href="/account/login"]:hover{color:#fff}
.nav-start-free{padding:8px 14px!important;border:1px solid var(--ke-hairline-strong)!important;border-radius:999px!important;background:transparent!important;color:#fff!important;font-weight:700!important;letter-spacing:.02em;box-shadow:none!important}
.nav-start-free:hover{border-color:#31fbb7!important;color:#31fbb7!important}
.nav-premium-cta{padding:8px 15px!important;border-radius:999px!important;background:linear-gradient(135deg,#f7c75a,#e6a83c)!important;border:0!important;color:#1a1204!important;font-weight:800!important;letter-spacing:.02em;box-shadow:0 0 0 1px #ffd9801f,0 8px 24px #e6a83c26!important}
.nav-premium-cta:hover{filter:brightness(1.06)}
/* The logged-out header (KarmaCards, four sports, Pricing, How It Works, Log
   In, Start Free, Get Full Access) needs about 1165px; below 1260px it uses
   the Menu button (2026-10-08: was 1400px, which sent 1280-1366px laptops to
   the click-only menu). */
@media(max-width:1259px){.nav-links{display:none}.nav-links.open{display:flex;position:absolute;left:16px;right:16px;top:68px;max-height:calc(100vh - 86px);overflow:auto;background:#0b0b0d;border:1px solid var(--ke-hairline-strong);border-radius:14px;padding:16px;flex-direction:column;align-items:flex-start}.nav-toggle{display:block;border-color:var(--ke-hairline-strong)!important;border-radius:999px!important;padding:8px 16px!important}.nav-dropdown,.nav-dropdown-trigger{width:100%}.nav-dropdown-trigger{text-align:left}.nav-dropdown-menu{position:static;width:100%;margin-top:8px;box-shadow:none}.nav-dropdown-menu a{min-height:44px}.nav-account{display:flex;width:100%;gap:14px;align-items:center;flex-wrap:wrap;border-left:0;border-top:1px solid var(--ke-hairline);padding:14px 0 0}.live-odds-dropdown,.live-trends-dropdown{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.live-odds-dropdown .nav-dropdown-trigger,.live-trends-dropdown .nav-dropdown-trigger{width:auto}.live-odds-dropdown .nav-dropdown-menu,.live-trends-dropdown .nav-dropdown-menu{flex-basis:100%}}

/* Surfaces: flat near-black cards with hairlines, no navy glow. */
.panel,.hero-card,.prediction-card,.state-card,.stat,.hero-copy{background:var(--ke-surface)!important;border-color:var(--ke-hairline)!important;box-shadow:none}
.eyebrow,.label{color:var(--ke-mint);letter-spacing:.14em}

/* Buttons: free = teal accent, paid = gold, secondary = hairline ghost. */
.button{border-radius:999px;font-weight:750;letter-spacing:.005em;transition:transform .15s ease,filter .15s ease,border-color .15s ease,background .15s ease}
.button:active{transform:translateY(1px)}
.cta-free-primary{background:var(--ke-accent)!important;color:#00140f!important;border:0!important;box-shadow:0 10px 30px #2dfce61f!important}
.cta-free-primary:hover{filter:brightness(1.06)}
.cta-flagship,.hero-prop-cta,.premium-cta,.purchase-action{background:linear-gradient(135deg,#f7c75a,#e6a83c)!important;color:#1a1204!important;border:0!important;box-shadow:0 10px 30px #e6a83c26!important}
.button.secondary{background:transparent!important;color:#fff!important;border:1px solid var(--ke-hairline-strong)!important}
.button.secondary:hover{border-color:#ffffff4d!important}
.button:focus-visible,.nav-links a:focus-visible{outline:2px solid var(--ke-teal);outline-offset:3px}

/* Footer blends into the canvas. */
.site-footer,footer{background:#000!important;border-top:1px solid var(--ke-hairline)!important}

/* A plan the member already holds is marked as included, never offered for sale. */
.pricing-cta-included{display:inline-flex!important;align-items:center;justify-content:center;gap:8px;background:transparent!important;border:1px solid #31fbb766!important;color:var(--ke-mint)!important;box-shadow:none!important;cursor:pointer}
.pricing-cta-included:hover{background:#31fbb70f!important}

/* KarmaCards: the one filled block among the header links (Alok, 2026-09-30).
   Teal, not gold: gold stays the purchase colour (Get Full Access). */
.nav-links a.nav-karmacards-tab{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:var(--ke-accent);color:#00140f!important;font-weight:800;box-shadow:0 0 0 1px #2dfce633,0 6px 22px #2dfce62e;transition:filter .15s,box-shadow .15s,transform .15s}
.nav-links a.nav-karmacards-tab:hover,.nav-links a.nav-karmacards-tab[aria-current=page]{color:#00140f!important;filter:brightness(1.08);box-shadow:0 0 0 1px #2dfce666,0 8px 28px #2dfce647}
.nav-links a.nav-karmacards-tab:active{transform:translateY(1px)}
@media(max-width:1259px){.nav-links.open a.nav-karmacards-tab{align-self:stretch;justify-content:center;min-height:44px}}
/* Elite annual: a gold line travels around the button (Alok, 2026-10-01: annual
   plans sell well over time, so the yearly option should catch the eye). */
@property --ke-gold-angle{syntax:"<angle>";initial-value:0deg;inherits:false}
@keyframes ke-gold-spin{to{--ke-gold-angle:360deg}}
.public-pricing-grid .price-card.pricing-card-elite .pricing-annual-cta.ke-annual-glow,.ke-annual-glow{position:relative;isolation:isolate;border-color:transparent!important;background:transparent!important;color:#ffe08a!important;font-weight:800;letter-spacing:.01em;box-shadow:0 0 22px #f2c14e26}
.ke-annual-glow::before{content:"";position:absolute;inset:-2px;z-index:-2;border-radius:inherit;background:conic-gradient(from var(--ke-gold-angle),#f2c14e33 0 55%,#f2c14e 68%,#fff3c4 74%,#f2c14e 80%,#f2c14e33 92%);animation:ke-gold-spin 3.2s linear infinite}
.ke-annual-glow::after{content:"";position:absolute;inset:1.5px;z-index:-1;border-radius:inherit;background:linear-gradient(180deg,#151208,#0a0904)}
.ke-annual-glow:hover{box-shadow:0 0 34px #f2c14e4d;color:#fff3c4!important}
@media(prefers-reduced-motion:reduce){.ke-annual-glow::before{animation:none;background:#f2c14e}}

/* Visible FAQs (site_faq.py; the same questions feed the FAQPage markup). */
.ke-page-faq{margin:48px 0 0;padding:0}
.ke-page-faq h2{margin:0 0 14px;color:#fff;font-size:20px;font-weight:600}
.ke-page-faq-list{display:grid;gap:8px}
.ke-page-faq-item{border:1px solid var(--ke-hairline);border-radius:14px;background:var(--ke-surface)}
.ke-page-faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;color:#fff;font-size:14.5px;font-weight:600;list-style:none;cursor:pointer}
.ke-page-faq-item summary::-webkit-details-marker{display:none}
.ke-page-faq-item summary::after{flex:none;color:var(--ke-teal);font-size:18px;content:"+";transition:transform .2s}
.ke-page-faq-item[open] summary::after{transform:rotate(45deg)}
.ke-page-faq-item p{margin:0;padding:0 18px 16px;color:var(--ke-text-2);font-size:14px;line-height:1.6}
@media(prefers-reduced-motion:reduce){.ke-page-faq-item summary::after{transition:none}}
/* ?watch= status after a Save (2026-10-07). */
.ke-watch-notice{margin-top:14px!important;padding:10px 14px;border:1px solid var(--ke-hairline-strong);border-radius:12px;background:#0c0d10;color:var(--ke-text);font-size:13px}
.ke-watch-notice.is-saved{border-color:#31fbb766;color:var(--ke-mint)}
/* NBA AI Models coming soon (2026-10-07). */
.ke-nba-soon{padding:40px 0 64px}
.ke-nba-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:center}
.ke-nba-copy h1{margin:16px 0 0;font-family:var(--ke-display);font-size:clamp(38px,5vw,62px);line-height:1.02;letter-spacing:-.02em}
.ke-nba-copy h1 span{display:block;background:var(--ke-accent);-webkit-background-clip:text;background-clip:text;color:transparent}
.ke-nba-copy .lede{max-width:560px;margin:18px 0 26px;color:var(--ke-text-2);font-size:16px;line-height:1.6}
.ke-nba-field{display:flex;gap:10px;max-width:520px}
.ke-nba-field input{flex:1;min-width:0;height:50px;padding:0 16px;border:1px solid var(--ke-hairline-strong);border-radius:14px;background:#0c0d10;color:var(--ke-text);font-size:15px}
.ke-nba-field input:focus{outline:2px solid #31fbb766;border-color:transparent}
.ke-nba-field .button{height:50px;white-space:nowrap}
.ke-nba-consent{display:flex;gap:8px;align-items:center;margin-top:12px;color:var(--ke-text-3);font-size:13px}
.ke-nba-status{display:flex;gap:8px;align-items:center;max-width:520px;margin-top:12px;padding:12px 14px;border:1px solid var(--ke-hairline-strong);border-radius:12px;font-size:14px}
.ke-nba-status.is-ok{border-color:#31fbb766;color:var(--ke-mint)}
.ke-nba-status.is-error{color:#ff9c8a}
.ke-nba-preview{border:1px solid var(--ke-hairline);border-radius:20px;background:radial-gradient(120% 120% at 100% 0,#2dfce614,transparent 55%),linear-gradient(180deg,#111114,#0a0a0c);overflow:hidden}
.ke-nba-preview ul{display:grid;gap:12px;margin:0;padding:20px;list-style:none}
.ke-nba-preview li{display:flex;gap:14px;align-items:flex-start;padding:14px;border:1px solid var(--ke-hairline);border-radius:14px;background:#0c0d10;color:var(--ke-mint)}
.ke-nba-preview li strong{display:block;color:var(--ke-text);font-size:15px}
.ke-nba-preview li span{color:var(--ke-text-3);font-size:13px}
.ke-nba-note{margin:0;padding:0 20px 18px;color:var(--ke-text-3);font-size:12px}
.ke-nba-now{margin-top:56px}
.ke-nba-now h2{font-family:var(--ke-display);font-size:22px}
.ke-nba-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ke-nba-links a{display:grid;gap:4px;padding:18px;border:1px solid var(--ke-hairline);border-radius:16px;background:#0c0d10;color:var(--ke-text);text-decoration:none}
.ke-nba-links a:hover{border-color:#31fbb755}
.ke-nba-links span{color:var(--ke-text-3);font-size:13px}
@media(max-width:860px){.ke-nba-hero,.ke-nba-links{grid-template-columns:1fr}.ke-nba-field{flex-direction:column}}
.ke-nba-soon .ke-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.ke-nba-soon .ke-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid #31fbb755;border-radius:999px;background:#31fbb712;color:var(--ke-mint);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.ke-nba-soon .ke-pill i{width:7px;height:7px;border-radius:50%;background:var(--ke-mint);box-shadow:0 0 10px var(--ke-mint)}
.ke-nba-soon .ke-nba-field input{height:50px!important;margin:0!important;padding:0 16px!important}
.ke-nba-soon .ke-nba-consent{display:flex!important;flex-direction:row!important;align-items:center!important;max-width:520px;font-weight:500}
.ke-nba-soon .ke-nba-consent input{width:16px!important;height:16px!important;margin:0!important;flex:none;accent-color:var(--ke-mint)}
.ke-nba-preview-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 0;color:var(--ke-text);font-family:var(--ke-display);font-size:16px;font-weight:600}
.ke-nba-preview-head b{padding:3px 10px;border:1px solid #f2c14e66;border-radius:999px;color:var(--ke-gold);font-family:var(--ke-body);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
@media(max-width:860px){.ke-nba-soon .ke-nba-field input{width:100%!important;flex:none!important}}
/* Research guide links on Home and How It Works (Dan, SEO, 2026-10-12). */
.ke-research-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:22px;font-size:14px}
.ke-research-links span{color:var(--ke-text-3,#8b9199);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.ke-research-links a{color:#31fbb7;text-decoration:none}
.ke-research-links a:hover,.ke-research-links a:focus-visible{text-decoration:underline}

/* elite_nav.css */
/* Navigation. Loaded right after elite_black.css on every page.
   2026-10-03: "most beautiful nav bar", prop products highlighted.
   2026-10-08 (Alok: "streamline our product offers ... NFL, CFB, NBA, MLB,
   KarmaCards up"): KarmaCards first, then one menu per sport. Each sport opens
   a wide panel: the sport on the left (glyph, tagline, tool count, its main
   CTA), every product for it on the right, props first. Markup:
   templates/_site_nav.html, data: site_nav.py. */
@property --nav-angle{syntax:"<angle>";initial-value:0deg;inherits:false}
@keyframes nav-orbit{to{--nav-angle:360deg}}
@keyframes nav-drop{from{opacity:0;transform:translateY(-6px) scale(.985)}}
@keyframes nav-drop-mega{from{opacity:0;transform:translate(-50%,-8px) scale(.99)}}
@keyframes nav-tile-in{from{opacity:0;transform:translateY(4px)}}

/* ---- The bar: quiet glass with one glowing hairline ---- */
.site-header{background:rgba(0,0,0,.62)!important;border-bottom:0!important;-webkit-backdrop-filter:saturate(170%) blur(20px);backdrop-filter:saturate(170%) blur(20px)}
.site-header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#ffffff14 15%,#2dfce64d 50%,#ffffff14 85%,transparent);pointer-events:none}
.site-header .nav{position:relative;min-height:68px;gap:14px}
@media(min-width:1260px){
  .site-header .nav-links{display:flex!important;align-items:center;gap:2px!important}
  .site-header .nav-links>a,.site-header .nav-links>.nav-dropdown>.nav-dropdown-trigger{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 11px!important;border-radius:10px;color:#a6adb5!important;font-size:14px!important;font-weight:550!important;letter-spacing:-.005em;white-space:nowrap;transition:color .18s,background .18s}
  .site-header .nav-links>a:hover,.site-header .nav-links>.nav-dropdown>.nav-dropdown-trigger:hover,.site-header .nav-dropdown.open>.nav-dropdown-trigger{color:#fff!important;background:#ffffff0a}
  /* a teal underline slides in on hover and stays, glowing, on the current page */
  .site-header .nav-links>a:not(.nav-karmacards-tab)::after,.site-header .nav-links>.nav-dropdown>.nav-dropdown-trigger::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--sport,#2dfce6),#31fbb7);transform:scaleX(0);transform-origin:left;transition:transform .25s cubic-bezier(.2,.7,.2,1)}
  .site-header .nav-links>a:not(.nav-karmacards-tab):hover::after{transform:scaleX(.55)}
  .site-header .nav-links>a[aria-current=page]:not(.nav-karmacards-tab),.site-header .nav-links>.nav-dropdown>.nav-dropdown-trigger[aria-current=page]{color:#fff!important}
  .site-header .nav-links>a[aria-current=page]:not(.nav-karmacards-tab)::after,.site-header .nav-links>.nav-dropdown>.nav-dropdown-trigger[aria-current=page]::after{transform:scaleX(1);box-shadow:0 0 10px #2dfce699}
}

/* ---- KarmaCards: the featured pill, dark with a travelling light border ---- */
.site-header .nav-karmacards-tab{position:relative;isolation:isolate;display:inline-flex!important;align-items:center;gap:7px;min-height:38px!important;padding:0 16px!important;border-radius:999px!important;background:linear-gradient(180deg,#0b1d1a,#06100e)!important;color:#7dfde3!important;font-weight:750!important;font-size:14px!important;box-shadow:0 0 0 1px #2dfce640,0 0 24px #2dfce624,inset 0 1px 0 #ffffff12!important;filter:none!important;transition:box-shadow .25s,transform .2s}
.site-header .nav-karmacards-tab::before{content:"";position:absolute;inset:0;z-index:-1;padding:1px;border-radius:inherit;background:conic-gradient(from var(--nav-angle),transparent 0 60%,#2dfce6 78%,#31fbb7 86%,transparent 96%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);animation:nav-orbit 4.5s linear infinite;pointer-events:none}
.site-header .nav-karmacards-tab:hover,.site-header .nav-links a.nav-karmacards-tab[aria-current=page]{color:#fff!important;box-shadow:0 0 0 1px #2dfce680,0 0 34px #2dfce640,inset 0 1px 0 #ffffff1a!important;transform:translateY(-1px)}
@media(min-width:1260px){.site-header .nav-links>.nav-karmacards-tab{margin-right:12px}}

/* ---- Sport triggers: glyph in the sport's colour, label, chevron ---- */
.site-header .nav-sport-trigger{gap:7px!important}
.site-header .nav-sport-glyph{display:grid;place-items:center;width:20px;height:20px;color:var(--sport);font-style:normal;opacity:.8;transition:transform .3s cubic-bezier(.2,.7,.2,1),filter .25s,opacity .2s}
.site-header .nav-sport-label{font-weight:700;letter-spacing:.03em}
.site-header .nav-chevron{font-size:10px;opacity:.6;transition:transform .2s}
.site-header .nav-sport.open .nav-chevron{transform:rotate(180deg);opacity:1}
.site-header .nav-sport-trigger:hover .nav-sport-glyph,.site-header .nav-sport.open .nav-sport-glyph,.site-header .nav-sport-trigger[aria-current=page] .nav-sport-glyph{opacity:1;filter:drop-shadow(0 0 7px var(--sport));transform:rotate(-14deg) scale(1.1)}

/* ---- Dropdown panels: glass, rounded, quick ---- */
.site-header .nav-dropdown-menu{top:calc(100% + 10px)!important;left:0;min-width:240px;padding:8px!important;border:1px solid #ffffff17!important;border-radius:18px!important;background:linear-gradient(180deg,#101114,#0b0c0e)!important;box-shadow:0 30px 80px #000c,0 0 0 1px #00000080,inset 0 1px 0 #ffffff0d!important}
.site-header .nav-dropdown.open>.nav-dropdown-menu{animation:nav-drop .18s cubic-bezier(.2,.7,.2,1) both}
.site-header .nav-dropdown-menu a{min-height:40px;padding:9px 12px!important;border-radius:11px!important;color:#e6e9ec!important;font-size:14px;font-weight:550;transition:background .15s,color .15s,border-color .15s}
.site-header .nav-dropdown-menu a:hover,.site-header .nav-dropdown-menu a:focus-visible{background:#ffffff0d!important;color:#fff!important;outline:0}
.site-header .nav-dropdown-group{padding:10px 12px 4px!important;color:#6d747c!important;font-size:10.5px!important;font-weight:800;letter-spacing:.14em!important;text-transform:uppercase}

/* ---- Badges: FREE mint, NEW gold, PREVIEW ice, SOON dashed ---- */
.site-header .nav-free-badge{flex:none;padding:3px 8px!important;border:1px solid #31fbb766!important;border-radius:999px;background:#31fbb71a!important;color:#7dfde3!important;box-shadow:none!important;font-size:10px!important;font-weight:800!important;letter-spacing:.08em;line-height:1.2}
.site-header .nav-free-badge.is-new{border-color:#ffd47766!important;background:#ffd4771a!important;color:#ffd98a!important}
.site-header .nav-free-badge.is-preview{border-color:#9db8ff59!important;background:#9db8ff14!important;color:#bfd0ff!important}
.site-header .nav-free-badge.is-soon{border:1px dashed #ffffff33!important;background:transparent!important;color:#8a9199!important}

/* ---- Product tiles: icon, name + badges, one-line pitch ---- */
.site-header :is(.nav-tile,.nav-dropdown-platform-prizepicks,.nav-dropdown-platform-underdog){display:grid!important;grid-template-columns:38px minmax(0,1fr) auto;grid-template-areas:"icon name badge" "icon desc desc";column-gap:12px;row-gap:2px;align-items:center;min-width:0;min-height:62px!important;padding:10px 12px!important;border:1px solid transparent!important;background:transparent!important;box-shadow:none!important;color:#fff!important}
.site-header .nav-tile>.nav-tile-icon{grid-area:icon;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,#12302b,#0a1513);box-shadow:inset 0 0 0 1px #2dfce62e;color:#5ff7dc;font-style:normal;transition:box-shadow .2s,transform .2s,color .2s}
.site-header .nav-tile>.nav-tile-icon.is-logo{background:none;box-shadow:inset 0 0 0 1px #ffffff1a;overflow:hidden}
.site-header .nav-tile>.nav-tile-icon.is-logo img{width:100%;height:100%;object-fit:cover}
.site-header .nav-tile>.nav-tile-name{grid-area:name;min-width:0;color:#fff;font-size:14px;font-weight:650;letter-spacing:-.01em;white-space:normal}
.site-header .nav-tile>.nav-tile-badges{grid-area:badge;display:inline-flex;gap:4px}
.site-header .nav-tile>.nav-tile-desc{grid-area:desc;min-width:0;color:#7d848c;font-size:12px;font-weight:450;line-height:1.35}
.site-header .nav-tile:hover,.site-header .nav-tile:focus-visible{border-color:#ffffff14!important;background:linear-gradient(135deg,#ffffff0d,#ffffff04)!important}
.site-header .nav-tile:hover>.nav-tile-icon,.site-header .nav-tile:focus-visible>.nav-tile-icon{box-shadow:inset 0 0 0 1px #2dfce666,0 0 18px #2dfce633;transform:translateY(-1px)}
.site-header .nav-tile[aria-current=page]{border-color:#2dfce640!important;background:linear-gradient(135deg,#2dfce614,#2dfce603 70%)!important}
.site-header .nav-tile.is-soon{opacity:.62}
.site-header .nav-tile.is-soon>.nav-tile-icon{background:transparent;box-shadow:inset 0 0 0 1px #ffffff26;color:#8a9199}
.site-header .nav-tile.is-soon:hover{opacity:.85}
/* Tile descriptions wrap inside their tile (2026-10-07: they inherited the
   nav links' nowrap and ran past the panel edge). */
.site-header :is(.nav-tile,.nav-dropdown-platform-prizepicks,.nav-dropdown-platform-underdog)>.nav-tile-desc{white-space:normal!important;overflow-wrap:anywhere}

/* ---- Sport panel: the sport on the left, its products on the right ---- */
.site-header .nav-sport-panel{padding:0!important;overflow:hidden}
.site-header .nav-sport-hero{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:22px 20px 20px;overflow:hidden;background:radial-gradient(120% 70% at 0% 0%,#ffffff12,transparent 62%),linear-gradient(180deg,#131418,#0b0c0e);background:radial-gradient(120% 70% at 0% 0%,color-mix(in srgb,var(--sport) 30%,transparent),transparent 62%),linear-gradient(180deg,#131418,#0b0c0e)}
.site-header .nav-sport-hero-glyph{display:grid;place-items:center;width:54px;height:54px;margin-bottom:4px;border-radius:16px;color:var(--sport);font-style:normal;background:#ffffff0a;box-shadow:inset 0 0 0 1px #ffffff26;background:color-mix(in srgb,var(--sport) 14%,#0b0c0e);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sport) 45%,transparent),0 0 30px color-mix(in srgb,var(--sport) 32%,transparent)}
.site-header .nav-sport-watermark{position:absolute;right:-46px;bottom:34px;z-index:-1;color:var(--sport);opacity:.08;font-style:normal;transform:rotate(-18deg);pointer-events:none}
.site-header .nav-sport-name{color:#fff;font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.site-header .nav-sport-tagline{color:#9aa1a9;font-size:13px;line-height:1.45}
.site-header .nav-sport-cta-note{margin-top:auto;padding-top:18px;color:#7d848c;font-size:12px;line-height:1.4}
.site-header .nav-sport-count{padding:4px 10px;border:1px solid #ffffff1f;border-radius:999px;background:#00000040;color:#cfd5db;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.site-header .nav-dropdown-menu a.nav-sport-cta{display:flex;align-items:center;justify-content:space-between;gap:10px;align-self:stretch;min-height:46px;padding:0 16px!important;border-radius:13px!important;background:linear-gradient(135deg,#2dfce6,#31fbb7)!important;color:#00140f!important;font-size:14px;font-weight:800;box-shadow:0 10px 28px #2dfce633,inset 0 1px 0 #ffffff66;transition:transform .2s,box-shadow .2s,filter .2s}
.site-header .nav-dropdown-menu a.nav-sport-cta:hover,.site-header .nav-dropdown-menu a.nav-sport-cta:focus-visible{color:#00140f!important;filter:brightness(1.05);box-shadow:0 14px 34px #2dfce64d,inset 0 1px 0 #ffffff80;transform:translateY(-1px)}
.site-header .nav-sport-cta span{transition:transform .2s}
.site-header .nav-sport-cta:hover span{transform:translateX(3px)}
.site-header .nav-sport-body{display:flex;flex-direction:column;min-width:0;padding:10px 12px 12px}
.site-header .nav-sport-section>.nav-dropdown-group{display:block;padding:10px 10px 6px!important}
.site-header .nav-sport-section+.nav-sport-section{margin-top:4px;border-top:1px solid #ffffff0f;padding-top:4px}
.site-header .nav-sport-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
/* short menus: sections side by side, one tile per row */
.site-header .nav-sport-body.is-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;column-gap:14px}
.site-header .nav-sport-body.is-columns>.nav-sport-section:first-child{grid-row:span 2}
.site-header .nav-sport-body.is-columns>.nav-sport-section:nth-child(2){margin-top:0;border-top:0;padding-top:0}
.site-header .nav-sport-body.is-columns .nav-sport-grid{grid-template-columns:minmax(0,1fr)}
.site-header .nav-sport.open .nav-tile{animation:nav-tile-in .26s cubic-bezier(.2,.7,.2,1) both}
.site-header .nav-sport.open .nav-sport-grid .nav-tile:nth-child(2){animation-delay:.02s}
.site-header .nav-sport.open .nav-sport-grid .nav-tile:nth-child(3){animation-delay:.04s}
.site-header .nav-sport.open .nav-sport-grid .nav-tile:nth-child(4){animation-delay:.06s}
.site-header .nav-sport.open .nav-sport-grid .nav-tile:nth-child(n+5){animation-delay:.08s}

@media(min-width:1260px){
  /* one wide panel under the whole bar, whichever sport opened it */
  .site-header .nav-sport{position:static!important}
  .site-header .nav-sport-panel{left:50%!important;top:calc(100% - 4px)!important;width:min(1000px,calc(100vw - 48px));max-height:calc(100vh - 90px)!important;overflow-y:auto!important;transform:translateX(-50%)}
  .site-header .nav-sport.open>.nav-sport-panel{display:grid!important;grid-template-columns:270px minmax(0,1fr);animation:nav-drop-mega .22s cubic-bezier(.2,.7,.2,1) both}
  .site-header .nav-sport-hero{border-right:1px solid #ffffff10}
  .site-header .nav-sport-panel::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--sport) 30%,#31fbb7 70%,transparent);opacity:.8;z-index:1}
  /* a glow on the panel's top edge, over the tab that opened it (--nav-caret set on open) */
  .site-header .nav-sport-panel::after{content:"";position:absolute;top:0;left:var(--nav-caret,50%);z-index:2;width:72px;height:2px;border-radius:2px;background:var(--sport);box-shadow:0 0 14px 1px var(--sport);transform:translateX(-50%);pointer-events:none}
  /* switching sports swaps panels without replaying the drop-in */
  .site-header.nav-instant .nav-sport.open>.nav-sport-panel,.site-header.nav-instant .nav-sport.open .nav-tile{animation:none!important}
}
/* 1260-1439px laptops: the same bar, a little tighter */
@media(min-width:1260px) and (max-width:1439px){
  .site-header .nav-links>a:not(.nav-karmacards-tab),.site-header .nav-links>.nav-dropdown>.nav-dropdown-trigger{padding:0 8px!important}
  .site-header .nav-links>.nav-karmacards-tab{margin-right:6px}
  .site-header .nav-account{margin-left:4px;padding-left:8px}
}

/* ---- Account cluster ---- */
.site-header .nav-account{display:inline-flex;align-items:center;gap:6px;margin-left:8px;padding-left:12px;border-left:1px solid #ffffff14}
.site-header .nav-account>a,.site-header .nav-account form{display:inline-flex;align-items:center;margin:0}
.site-header .nav-account>a:not(.nav-premium-cta):not(.nav-start-free),.site-header .nav-logout button,.site-header .nav-manage{min-height:36px;padding:0 10px!important;border:0!important;border-radius:10px!important;background:transparent!important;color:#a6adb5!important;font-size:14px!important;font-weight:550!important;cursor:pointer}
.site-header .nav-account>a:not(.nav-premium-cta):not(.nav-start-free):hover,.site-header .nav-logout button:hover,.site-header .nav-manage:hover{color:#fff!important;background:#ffffff0a!important}
.site-header .nav-start-free{display:inline-flex;align-items:center;min-height:36px;padding:0 14px!important;border:1px solid #ffffff2e!important;border-radius:999px!important;background:transparent!important;color:#fff!important;font-size:13px!important;font-weight:750!important;letter-spacing:.02em}
.site-header .nav-start-free:hover{border-color:#ffffff66!important;background:#ffffff0d!important}

/* ---- Phone / tablet: a glass sheet. KarmaCards first, then each sport as an
   accordion row that opens to its CTA and product tiles. ---- */
@media(max-width:1259px){
  .site-header .nav-toggle{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border:1px solid #ffffff1f;border-radius:999px;background:#ffffff08;color:#fff;font-weight:650}
  .site-header .nav-links.open{position:fixed!important;top:76px!important;left:12px!important;right:12px!important;max-height:calc(100dvh - 92px)!important;gap:4px;padding:12px!important;border:1px solid #ffffff17!important;border-radius:22px!important;background:#0b0c0e!important;box-shadow:0 30px 80px #000d;animation:nav-drop .2s cubic-bezier(.2,.7,.2,1) both}
  .site-header .nav-links.open>a{display:flex;align-items:center;width:100%;min-height:48px;padding:0 14px;border-radius:12px;color:#e6e9ec;font-size:16px;font-weight:600}
  .site-header .nav-links.open>a[aria-current=page]{background:#2dfce60f;color:#fff;box-shadow:inset 3px 0 0 #2dfce6}
  .site-header .nav-links.open>.nav-karmacards-tab,.site-header .nav-links.open>a.nav-karmacards-tab[aria-current=page]{order:-1;justify-content:center;margin-bottom:6px;min-height:52px!important;font-size:16px!important;color:#7dfde3!important}
  .site-header .nav-links.open>.nav-sport{width:100%;border:1px solid #ffffff0f;border-radius:16px;background:#ffffff04;overflow:hidden}
  .site-header .nav-links.open>.nav-sport.open{border-color:#ffffff1f;background:#ffffff07}
  .site-header .nav-links.open .nav-sport-trigger{display:flex;align-items:center;width:100%;min-height:54px;padding:0 16px!important;color:#e6e9ec;font-size:16px;font-weight:650;text-align:left}
  .site-header .nav-links.open .nav-sport-trigger[aria-current=page]{color:#fff;box-shadow:inset 3px 0 0 var(--sport)}
  .site-header .nav-links.open .nav-sport-glyph{width:26px;height:26px;opacity:1}
  .site-header .nav-links.open .nav-chevron{margin-left:auto;font-size:12px}
  .site-header .nav-links.open .nav-sport-panel{margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
  .site-header .nav-sport.open>.nav-sport-panel{display:block!important}
  .site-header .nav-links.open .nav-sport-panel{max-height:none!important;overflow:visible!important}
  .site-header .nav-sport-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;margin:0 8px;padding:14px;border-radius:14px}
  .site-header .nav-sport-hero-glyph,.site-header .nav-sport-watermark,.site-header .nav-sport-name{display:none}
  .site-header .nav-sport-tagline{grid-column:1}
  .site-header .nav-sport-count{grid-column:2;grid-row:1;justify-self:end}
  .site-header .nav-sport-cta-note{display:none}
  .site-header .nav-dropdown-menu a.nav-sport-cta{grid-column:1/-1;margin-top:8px}
  .site-header .nav-sport-body.is-columns{display:flex;flex-direction:column}
  .site-header .nav-sport-body.is-columns>.nav-sport-section:nth-child(2){margin-top:4px;border-top:1px solid #ffffff0f;padding-top:4px}
  .site-header .nav-sport-body.is-columns .nav-sport-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
  .site-header .nav-sport-body{padding:6px 8px 10px}
  .site-header .nav-sport-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
  .site-header .nav-links.open .nav-account{flex-wrap:wrap;margin:8px 0 0;padding:12px 0 0;border-left:0;border-top:1px solid #ffffff14}
}

@media(prefers-reduced-motion:reduce){
  .site-header .nav-karmacards-tab::before,.site-header .nav-dropdown.open>.nav-dropdown-menu,.site-header .nav-sport.open>.nav-sport-panel,.site-header .nav-sport.open .nav-tile,.site-header .nav-links.open{animation:none!important}
  .site-header .nav-links>a::after,.site-header .nav-links>.nav-dropdown>.nav-dropdown-trigger::after,.site-header .nav-sport-glyph{transition:none}
}

/* elite_live_odds.css */
/* Live Odds board: elite redesign (2026-09-30). Loaded after elite_black.css on /live-odds. */
.ke-odds-page{width:min(1320px,calc(100% - 40px))!important;max-width:none!important;padding:36px 0 80px!important}
.ke-odds-page .eyebrow{font-size:11.5px;font-weight:700;letter-spacing:.16em;background:var(--ke-accent);-webkit-background-clip:text;background-clip:text;color:transparent}

/* Hero: title left, live status + coverage right */
.ke-odds-hero{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:28px;align-items:stretch;margin:0 0 22px!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important}
.ke-odds-hero::before,.ke-odds-hero::after{display:none!important}
.ke-odds-title{align-self:end}
.ke-odds-hero h1{margin:12px 0 10px!important;color:#fff!important;font-size:clamp(36px,4.4vw,58px)!important;font-weight:600!important;line-height:1!important;letter-spacing:-.045em!important}
.ke-odds-hero p{max-width:620px;margin:0!important;color:var(--ke-text-2)!important;font-size:15.5px!important;line-height:1.55}
.ke-odds-live{position:relative;display:flex!important;flex-direction:column;gap:6px;margin:0!important;padding:18px 20px!important;border:1px solid #31fbb73d!important;border-radius:20px!important;background:radial-gradient(120% 140% at 100% 0,#2dfce612,transparent 55%),#0a0a0c!important;box-shadow:0 20px 60px #00000080!important;overflow:hidden}
.ke-live-pill{display:inline-flex;align-self:flex-start;align-items:center;gap:8px;padding:4px 11px 4px 9px;border:1px solid #31fbb740;border-radius:999px;background:#31fbb70d;color:var(--ke-mint)!important;font-size:11px!important;font-weight:800!important;letter-spacing:.1em!important;text-transform:uppercase}
.ke-live-pill i{position:relative;width:8px;height:8px;border-radius:50%;background:var(--ke-mint)}
.ke-live-pill i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--ke-mint);opacity:0;animation:ke-live-ping 1.8s cubic-bezier(0,0,.2,1) infinite}
@keyframes ke-live-ping{0%{transform:scale(.6);opacity:.8}100%{transform:scale(1.6);opacity:0}}
.ke-odds-live:not(.health-online) .ke-live-pill{border-color:#f2c14e55;background:#f2c14e10;color:var(--ke-gold)!important}
.ke-odds-live:not(.health-online) .ke-live-pill i{background:var(--ke-gold)}
.ke-odds-live:not(.health-online) .ke-live-pill i::after{border-color:var(--ke-gold)}
.ke-odds-live.health-unavailable .ke-live-pill,.ke-odds-live.health-offline .ke-live-pill{border-color:#ff7b6b55;background:#ff7b6b10;color:#ff9b8a!important}
.ke-odds-live.health-unavailable .ke-live-pill i,.ke-odds-live.health-offline .ke-live-pill i{background:#ff9b8a}
.ke-odds-live>strong{margin-top:6px;color:#fff!important;font-family:var(--ke-display);font-size:19px!important;font-weight:600!important;letter-spacing:-.015em}
.ke-odds-live>small{color:var(--ke-text-3)!important;font-size:12px!important}
.ke-odds-stats{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:0!important;margin:12px 0 0!important;padding:0!important;border:1px solid var(--ke-hairline)!important;border-radius:14px!important;background:#050506!important;overflow:hidden}
.ke-odds-stats>div{margin:0!important;padding:10px 14px!important;border:0!important;border-left:1px solid var(--ke-hairline)!important;border-radius:0!important;background:none!important;box-shadow:none!important}
.ke-odds-stats>div:first-child{border-left:0!important}
.ke-odds-stats dt{color:var(--ke-text-3);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.ke-odds-stats dd{margin:3px 0 0;color:#fff;font-family:var(--ke-display);font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}

/* Toolbar */
.ke-odds-toolbar{position:relative;z-index:6;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;padding:10px;border:1px solid var(--ke-hairline);border-radius:18px;background:var(--ke-surface)}
.ke-odds-toolbar .ke-seg{display:inline-flex!important;flex-wrap:nowrap;gap:2px;margin:0!important;padding:3px!important;border:1px solid var(--ke-hairline)!important;border-radius:999px!important;background:#050506!important;overflow-x:auto;scrollbar-width:none}
.ke-odds-toolbar .ke-seg::-webkit-scrollbar{display:none}
.ke-odds-toolbar .ke-seg a{display:inline-flex!important;align-items:center;min-height:32px;padding:0 14px!important;border:0!important;border-radius:999px!important;background:transparent!important;color:var(--ke-text-2)!important;font-size:13px!important;font-weight:650!important;white-space:nowrap;box-shadow:none!important}
.ke-odds-toolbar .ke-seg a:hover{color:#fff!important}
.ke-odds-toolbar .ke-seg a[aria-current=page]{background:#1c1c20!important;color:#fff!important;box-shadow:inset 0 0 0 1px #ffffff14!important}
.ke-odds-filters{display:flex!important;flex:1 1 560px;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;grid-template-columns:none!important}
.ke-odds-filters label{position:relative;display:block!important;flex:1 1 150px;max-width:200px;min-width:0;margin:0!important;color:transparent!important;font-size:0!important}
.ke-odds-filters label.search{flex:1 1 200px;max-width:none}
.ke-odds-filters label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ke-odds-filters input,.ke-odds-filters select{width:100%!important;height:38px!important;margin:0!important;padding:0 12px!important;border:1px solid var(--ke-hairline)!important;border-radius:10px!important;background:#131316!important;color:#fff!important;font:500 13px var(--ke-body)!important;box-shadow:none!important}
.ke-odds-filters label.search input{padding-left:34px!important;background:#131316 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236d7379' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='7' cy='7' r='5'/%3E%3Cpath d='M14 14l-3.2-3.2'/%3E%3C/svg%3E") no-repeat 12px 50%!important}
.ke-odds-filters input:focus,.ke-odds-filters select:focus{outline:0;border-color:#2dfce666!important;box-shadow:0 0 0 3px #2dfce61a!important}
.ke-odds-filters button{flex:none;width:auto!important;height:38px!important;margin:0!important;padding:0 18px!important;border:0!important;border-radius:10px!important;background:#fff!important;color:#000!important;font:700 13px var(--ke-body)!important;cursor:pointer}

/* Day chips and legend */
.ke-odds-days{display:none!important;gap:8px;margin:0 0 12px;overflow-x:auto;scrollbar-width:none}
.ke-odds-days::-webkit-scrollbar{display:none}
.ke-odds-days a{display:inline-flex;flex:none;align-items:center;gap:8px;padding:7px 8px 7px 14px;border:1px solid var(--ke-hairline);border-radius:999px;background:var(--ke-surface);color:#d9dde0;font-size:12.5px;font-weight:600;transition:border-color .15s,color .15s}
.ke-odds-days a span{min-width:22px;padding:1px 7px;border-radius:999px;background:#1c1c20;color:var(--ke-text-2);font-size:11px;text-align:center}
.ke-odds-days a:hover{border-color:#31fbb755;color:#fff}
.ke-odds-legend{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0 0 26px!important;padding:0 4px!important;border:0!important;background:none!important;box-shadow:none!important;color:var(--ke-text-3);font-size:12px}
.ke-odds-legend strong{color:#fff;font-size:12px;font-weight:700}
.ke-odds-legend span{color:var(--ke-text-2)}
.ke-odds-legend span b{color:#d9dde0;font-weight:650}
.ke-odds-legend .legend-best{color:var(--ke-mint)!important;font-weight:700}
.ke-odds-legend .legend-up{color:var(--ke-text-3)}
.ke-odds-legend small{flex-basis:100%;color:var(--ke-text-3);font-size:11.5px}

/* One continuous grid: each card carries its own day and kickoff, so the
   day groups dissolve into the list grid instead of leaving half-empty rows.
   The day headings stay in the markup for screen readers. */
.ke-odds-page .cfb-game-list{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(min(392px,100%),1fr));gap:14px;align-items:start;margin:0!important}
.ke-odds-page .cfb-date-group,.ke-odds-page .ke-odds-grid{display:contents!important}
.ke-odds-page .cfb-date-header{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0!important;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0!important}
.ke-odds-page .cfb-unopened-list,.ke-odds-page .ke-odds-no-match{grid-column:1/-1;order:99}
/* Odds card */
.ke-odds-card{position:relative;display:flex;flex-direction:column;gap:10px;min-width:0;margin:0!important;padding:14px 16px!important;border:1px solid var(--ke-hairline)!important;border-radius:18px!important;background:linear-gradient(180deg,#111114 0%,#0a0a0c 100%)!important;box-shadow:inset 0 1px 0 #ffffff0a!important;transition:border-color .2s,transform .2s,box-shadow .2s}
.ke-odds-card:hover{border-color:#ffffff29!important;transform:translateY(-2px);box-shadow:inset 0 1px 0 #ffffff0a,0 16px 40px #00000080!important}
.ke-odds-card.row-stale{opacity:.6}
.ke-odds-top{display:flex;align-items:center;gap:8px;min-height:22px}
.ke-odds-top time{color:#e9ecee;font-size:12.5px;font-weight:650;white-space:nowrap}
.ke-odds-status{padding:1px 8px;border:1px solid #f2c14e55;border-radius:999px;color:var(--ke-gold);font-size:10.5px;font-weight:700}
.ke-odds-fresh{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:var(--ke-text-3);font-size:11.5px;white-space:nowrap}
.ke-odds-fresh i{width:6px;height:6px;border-radius:50%;background:var(--ke-mint);box-shadow:0 0 0 3px #31fbb71f}
.ke-odds-table{display:grid;gap:6px}
.ke-odds-row{display:grid;grid-template-columns:minmax(0,1fr) 66px 88px 92px;gap:6px;align-items:center}
.ke-odds-row.is-head span{color:var(--ke-text-3);font-size:10px;font-weight:700;letter-spacing:.1em;text-align:center;text-transform:uppercase}
.ke-odds-row.is-head b{font-weight:inherit}
.ke-odds-row.is-head .is-short{display:none}
.ke-odds-row.is-head span:first-child{text-align:left;letter-spacing:.04em;text-transform:none;font-size:11px;font-weight:600}
.ke-odds-team{display:flex;align-items:center;gap:10px;min-width:0}
.ke-odds-team .ke-asset{flex:none;width:28px!important;height:28px!important;border-radius:8px!important}
.ke-odds-team>strong{display:-webkit-box;overflow:hidden;color:#fff;font-size:13.5px;font-weight:600;line-height:1.2;letter-spacing:-.005em;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:normal;word-break:normal;hyphens:auto}
.ke-odds-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:0;min-height:46px;padding:5px 6px;border:1px solid var(--ke-hairline);border-radius:10px;background:#131316;text-align:center;transition:border-color .15s,background .15s}
.ke-odds-cell:hover{border-color:#31fbb766;background:#161a19}
.ke-odds-cell b{color:#fff;font-family:var(--ke-display);font-size:14.5px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.ke-odds-cell b i{color:var(--ke-text-2);font-family:var(--ke-body);font-size:11.5px;font-style:normal;font-weight:600}
.ke-odds-cell b em{color:var(--ke-text-3);font-family:var(--ke-body);font-size:11px;font-style:normal;font-weight:700}
.ke-odds-cell small{max-width:100%;overflow:hidden;color:var(--ke-text-3);font-size:10px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.ke-odds-cell.is-na{background:transparent;border-style:dashed}
.ke-odds-cell.is-na b{color:var(--ke-text-3)}

/* All sportsbooks drawer */
.ke-odds-page .ke-all-sportsbooks{margin:2px -16px -14px!important;border:0!important;border-top:1px solid var(--ke-hairline)!important;border-radius:0 0 18px 18px!important;background:none!important}
.ke-odds-page .ke-all-sportsbooks summary{display:flex!important;align-items:center;gap:10px;padding:11px 16px!important;color:#d9dde0!important;font-size:12.5px!important;font-weight:650!important;cursor:pointer;list-style:none;background:none!important;border:0!important}
.ke-odds-page .ke-all-sportsbooks summary::-webkit-details-marker{display:none}
.ke-odds-page .ke-all-sportsbooks summary small{margin-left:auto;color:var(--ke-text-3)!important;font-size:11px!important;font-weight:500!important}
.ke-odds-page .ke-all-sportsbooks summary::after{content:"";width:7px;height:7px;border-right:1.6px solid var(--ke-text-3);border-bottom:1.6px solid var(--ke-text-3);transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.ke-odds-page .ke-all-sportsbooks[open] summary::after{transform:rotate(-135deg) translateY(-1px);border-color:var(--ke-mint)}
.ke-odds-page .ke-all-sportsbooks summary:hover{color:#fff!important}
.ke-books{display:grid;gap:0;padding:0 12px 12px}
.ke-books-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,1fr);gap:6px;align-items:center;padding:6px 4px;border-top:1px solid var(--ke-hairline)}
.ke-books-row.is-head{border-top:0;padding-top:2px;color:var(--ke-text-3);font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.ke-books-row.is-head span:not(:first-child){text-align:center}
.ke-books-name{display:grid;min-width:0}
.ke-books-name strong{overflow:hidden;color:#e9ecee;font-size:12.5px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.ke-books-name time{color:var(--ke-text-3);font-size:10.5px}
.ke-books-pair{display:grid;gap:2px}
.ke-odds-page .ke-book-cell,.ke-odds-page .ke-book-cell.cfb-offer{display:block!important;min-height:0!important;min-width:0!important;margin:0!important;padding:4px 4px!important;border:0!important;border-radius:7px!important;background:transparent!important;box-shadow:none!important;color:#d9dde0;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap}
.ke-book-cell i{color:var(--ke-text-3);font-style:normal;font-weight:500}
.ke-odds-page .ke-book-cell.is-best,.ke-odds-page .ke-book-cell.cfb-offer.best-price{background:#31fbb714!important;color:var(--ke-mint)!important;box-shadow:inset 0 0 0 1px #31fbb733!important}
.ke-book-cell.is-best i{color:#7fe9c9}
.ke-book-cell.is-na{color:var(--ke-text-3)}
.ke-books-note{display:flex;align-items:center;gap:8px;margin:8px 4px 0;color:var(--ke-text-3);font-size:11px;line-height:1.45}
.ke-best-dot{flex:none;width:8px;height:8px;border-radius:3px;background:#31fbb740;box-shadow:inset 0 0 0 1px #31fbb766}

/* Unopened, states, signup, disclaimers */
.ke-odds-page .cfb-unopened-list{margin:12px 0 0!important;border:1px dashed var(--ke-hairline-strong)!important;border-radius:14px!important;background:#050506!important}
.ke-odds-page .cfb-unopened-list summary{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;color:var(--ke-text-2);font-size:13px;cursor:pointer;list-style:none}
.ke-odds-page .cfb-unopened-list summary strong{color:#d9dde0;font-weight:600}
.ke-odds-page .cfb-unopened-list summary span{color:var(--ke-mint);font-size:12px;font-weight:650}
.ke-odds-page .cfb-unopened-list ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:6px 16px;margin:0;padding:0 16px 14px;list-style:none}
.ke-odds-page .cfb-unopened-list li{display:flex;justify-content:space-between;gap:10px;color:var(--ke-text-2);font-size:12.5px}
.ke-odds-page .cfb-unopened-list time{color:var(--ke-text-3);white-space:nowrap}
.ke-odds-page .empty-state,.ke-odds-page .live-odds-health{margin:0 0 24px!important;padding:22px 24px!important;border:1px dashed var(--ke-hairline-strong)!important;border-radius:16px!important;background:#0b0b0d!important;text-align:left!important}
.ke-odds-page .empty-state strong,.ke-odds-page .live-odds-health strong{display:block;margin-bottom:6px;color:#fff;font-size:16px}
.ke-odds-page .empty-state p,.ke-odds-page .live-odds-health p{margin:0;color:var(--ke-text-2)}
.ke-odds-no-match{padding:22px;border:1px dashed var(--ke-hairline-strong);border-radius:16px;color:var(--ke-text-2);text-align:center}
.ke-odds-page .live-odds-signup{display:flex!important;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin:40px 0 0!important;padding:22px 24px!important;border:1px solid var(--ke-hairline)!important;border-radius:18px!important;background:radial-gradient(120% 160% at 0 0,#2dfce60f,transparent 55%),#0b0b0d!important}
.ke-odds-page .live-odds-signup strong{color:#fff;font-family:var(--ke-display);font-size:19px}
.ke-odds-page .live-odds-signup p{margin:4px 0;color:var(--ke-text-2)}
.ke-odds-page .live-odds-signup small{color:var(--ke-text-3)}
.ke-odds-page .pulse-boundary{display:flex!important;flex-wrap:wrap;gap:6px 18px;margin:18px 0 0!important;padding:14px 18px!important;border:1px solid var(--ke-hairline)!important;border-radius:14px!important;background:#050506!important;color:var(--ke-text-3)!important;font-size:12px!important}
.ke-odds-page .pulse-boundary span{color:var(--ke-text-3)!important}

@media(max-width:1000px){
  .ke-odds-hero{grid-template-columns:1fr}
}
@media(max-width:760px){
  .ke-odds-page{padding-top:22px!important}
  .ke-odds-toolbar .ke-seg{width:100%}
  .ke-odds-filters{flex-basis:100%;justify-content:stretch}
  .ke-odds-filters label{flex:1 1 45%}
  .ke-odds-filters label.search{flex-basis:100%}
  .ke-odds-filters button{flex:1 1 100%}
  .ke-odds-stats dd{font-size:19px}
  .ke-odds-row{grid-template-columns:minmax(0,1fr) 54px 66px 72px;gap:5px}
  .ke-odds-team{gap:8px}
  .ke-odds-team .ke-asset{width:24px!important;height:24px!important}
  .ke-odds-team>strong{font-size:12.5px}
  .ke-odds-cell{min-height:50px;padding:4px 3px}
  .ke-odds-cell b{font-size:13.5px;white-space:normal;line-height:1.15}
  .ke-odds-cell b i{display:block;font-size:10.5px}
  .ke-odds-cell small{font-size:9.5px}
  .ke-odds-fresh{font-size:11px}
  .ke-odds-row.is-head .is-long{display:none}
  .ke-odds-row.is-head .is-short{display:inline}
  .ke-odds-page .ke-all-sportsbooks summary small{display:none}
  .ke-odds-filters label{max-width:none}
  .ke-odds-card{padding:14px!important}
  .ke-odds-page .ke-all-sportsbooks{margin:2px -14px -14px!important}
  .ke-books{padding:0 8px 10px}
  .ke-books-row{grid-template-columns:minmax(0,1fr) repeat(3,minmax(0,1fr))}
  .ke-book-cell{font-size:11px;padding:3px 2px}
}
@media(prefers-reduced-motion:reduce){.ke-live-pill i::after{animation:none}.ke-odds-card,.ke-odds-card:hover{transition:none;transform:none}}

/* Light glow lines on every odds card, matching Live Trends (Alok, 2026-10-02):
   a soft teal top line and a faint light travelling the border, staggered. */
@property --ko-angle{syntax:"<angle>";initial-value:0deg;inherits:false}
@keyframes ko-orbit{to{--ko-angle:360deg}}
.ke-odds-card{isolation:isolate}
.ke-odds-card::before{content:"";position:absolute;top:0;left:12%;right:12%;z-index:1;height:1px;background:linear-gradient(90deg,transparent,#2dfce6 30%,#31fbb7 70%,transparent);opacity:.7;box-shadow:0 0 10px 1px #2dfce62e;pointer-events:none}
.ke-odds-card::after{content:"";position:absolute;inset:0;z-index:1;padding:1px;border-radius:inherit;background:conic-gradient(from var(--ko-angle),transparent 0 82%,#2dfce659 90%,#31fbb766 93%,transparent 97%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);animation:ko-orbit 9s linear infinite;pointer-events:none}
.ke-odds-card:nth-child(2n)::after{animation-delay:-3s}
.ke-odds-card:nth-child(3n)::after{animation-delay:-6s}
.ke-odds-card:hover::before{opacity:.9}
@media(prefers-reduced-motion:reduce){.ke-odds-card::after{animation:none;opacity:.5}}
/* Best-price cells are narrow: a book with an icon shows the icon alone (its
   name stays in the cell's text for screen readers and in the title tooltip);
   a book without one keeps its name. */
.ke-odds-cell small:has(.ke-book-icon.has-logo){font-size:0!important;line-height:0!important}
.ke-odds-cell small .ke-book-icon.has-logo{width:20px;height:20px;margin:2px 0 0;border-radius:6px}
/* Link to the game's own page (SEO, 2026-10-19). */
.ke-odds-game-link{margin-left:10px;color:var(--ke-mint);font-size:11.5px;font-weight:700;text-decoration:none;white-space:nowrap}
.ke-odds-game-link:hover,.ke-odds-game-link:focus-visible{text-decoration:underline}

/* mobile_app.css */
/* Phone app shell (2026-10-16). Alok, after the marketing call: "a dedicated
   mobile UI for every page, like the best mobile UI in the world", KarmaCards
   "swiped like reels on Instagram", and a smaller hit-rate card in Prop
   Research. Loaded last on every page; every rule below sits under 761px, so
   tablets and desktop are unchanged. Markup: templates/_mobile_tabbar.html,
   customer_base.html (header CTA), karmacards.html (reels), customer_home.html.
   Behaviour: static/mobile_app.js. */
.ke-tabbar,.ke-sheet-backdrop,.ke-mobile-cta,.ke-reel-only,.ke-phone-only,.ke-reel-hint,.ke-reel-bar,.ke-swipe-dots,.ke-install,.ke-install-link,.ke-ios-sheet,
.ke-get-app,.ke-chip-row,.ke-filter-open,.ke-filter-head,.ke-filter-backdrop{display:none}

@media (max-width:760px){
  :root{--ke-head-h:58px;--ke-tab-h:62px;--ke-tab-gap:8px;--ke-safe-b:env(safe-area-inset-bottom,0px);
    --ke-bar-space:calc(var(--ke-tab-h) + var(--ke-tab-gap) + var(--ke-safe-b))}
  body{padding-bottom:calc(var(--ke-bar-space) + 6px)}
  /* Some page sheets hide sideways overflow on html and body; with both set, the body becomes its
     own scroll box and nothing sticky inside it sticks (the header, the Live Trends pager). Clip
     stops the sideways scroll without that. Browsers without clip keep the old rule. */
  html,body{overflow-x:clip}
  .ke-phone-only{display:revert}
  .ke-desk-only{display:none!important}

  /* ---------------------------------------------------------- header */
  .site-header{position:sticky;top:0;z-index:50;padding-top:env(safe-area-inset-top,0px)}
  .site-header .nav{min-height:var(--ke-head-h);gap:10px}
  .site-header .brand-logo{width:46px!important;height:auto!important}
  .site-header .nav-toggle{display:none!important}
  .ke-mobile-cta{display:inline-flex;align-items:center;justify-content:center;min-height:36px;margin-left:auto;padding:0 16px;border-radius:999px;
    background:linear-gradient(135deg,#2dfce6,#31fbb7);color:#03140f!important;font-size:.84rem;font-weight:800;letter-spacing:.01em;text-decoration:none;
    box-shadow:0 6px 22px #2dfce633,inset 0 1px 0 #ffffff80}
  .ke-mobile-cta.is-elite{background:linear-gradient(135deg,#f7b84a,#f2c14e);color:#241704!important;box-shadow:0 6px 22px #f2c14e33,inset 0 1px 0 #ffffff80}

  /* ---------------------------------------------------------- app bar */
  .ke-tabbar{position:fixed;left:10px;right:10px;bottom:calc(var(--ke-tab-gap) + var(--ke-safe-b));z-index:70;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
    align-items:center;height:var(--ke-tab-h);padding:0 4px;border:1px solid #ffffff17;border-radius:24px;background:rgba(10,11,13,.82);
    -webkit-backdrop-filter:saturate(170%) blur(22px);backdrop-filter:saturate(170%) blur(22px);
    box-shadow:0 18px 50px #000000b3,inset 0 1px 0 #ffffff0f;transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .28s}
  .ke-tab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:100%;min-width:0;padding:0;border:0;
    background:none;color:#8b9298;font:inherit;font-size:.64rem;font-weight:700;letter-spacing:.02em;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .ke-tab svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .ke-tab span{white-space:nowrap}
  .ke-tab:active{transform:scale(.94)}
  .ke-tab.is-current{color:#fff}
  .ke-tab.is-current:not(.ke-tab-hero)::before{content:"";position:absolute;top:5px;width:18px;height:3px;border-radius:999px;background:#2dfce6;box-shadow:0 0 12px #2dfce6}
  .ke-tab.is-current:not(.ke-tab-hero) svg{stroke:#2dfce6}
  .ke-tab-hero{gap:4px;color:#d9fff7}
  .ke-tab-hero i{display:grid;place-items:center;width:50px;height:50px;margin-top:-26px;border-radius:18px;
    background:linear-gradient(135deg,#2dfce6,#31fbb7);color:#03140f;box-shadow:0 10px 26px #2dfce655,0 0 0 4px #0a0b0d,inset 0 1px 0 #ffffffa0;
    animation:ke-hero-glow 3.2s ease-in-out infinite}
  .ke-tab-hero i svg{width:26px;height:26px;stroke-width:2}
  .ke-tab-hero.is-current span{color:#2dfce6}
  html.ke-bar-hidden .ke-tabbar{transform:translateY(calc(100% + var(--ke-tab-gap) + var(--ke-safe-b) + 12px));opacity:.4}

  /* "More": the header menu as a bottom sheet over a dimmed page */
  .ke-sheet-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:55;background:#000000a6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:ke-fade .2s both}
  .site-header .nav-links.open{position:fixed!important;top:auto!important;left:8px!important;right:8px!important;bottom:calc(var(--ke-bar-space) + 8px)!important;
    z-index:60!important;max-height:calc(100dvh - var(--ke-bar-space) - var(--ke-head-h) - 24px)!important;border-radius:24px!important;
    padding:14px 12px 12px!important;animation:ke-sheet-up .28s cubic-bezier(.2,.8,.2,1) both!important}
  .site-header .nav-links.open::before{content:"";order:-2;align-self:center;flex:none;width:40px;height:4px;margin:-4px 0 8px;border-radius:999px;background:#ffffff2e}
  html.ke-sheet-open{overflow:hidden}
  /* the header's blur would make it the sheet's containing block, and its layer sits under the backdrop */
  html.ke-sheet-open .site-header{z-index:65;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#000!important}

  /* Prop Research's player dock rides just above the app bar */
  .pr-dock{bottom:calc(var(--ke-bar-space) + 6px)!important;left:10px!important;right:10px!important;padding:7px 8px!important;border:1px solid #ffffff17!important;
    border-radius:18px;box-shadow:0 14px 40px #000000a6;transition:bottom .28s cubic-bezier(.2,.8,.2,1)}
  html.ke-bar-hidden .pr-dock{bottom:calc(8px + var(--ke-safe-b))!important}
  body:has(.pr-dock){padding-bottom:calc(var(--ke-bar-space) + 84px)}

  /* ---------------------------------------------------------- Prop Research: compact hit rate */
  .prop-research .pr-strip{gap:10px!important;padding:12px!important}
  .pr-hit{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"value label" "value meter" "value note";align-items:center;column-gap:14px;row-gap:3px;padding:10px 14px!important;border-radius:14px}
  .pr-hit strong{grid-area:value;flex-direction:column;align-items:flex-start;gap:1px;font-size:1.72rem!important}
  .pr-hit strong small{font-size:.7rem!important}
  .pr-hit-label{grid-area:label;font-size:.6rem!important;letter-spacing:.06em}
  .pr-hit-meter{grid-area:meter;height:5px!important;margin-top:2px!important}
  .pr-implied{grid-area:note;font-size:.7rem!important;line-height:1.3}
  .prop-research .pr-strip .pr-keystats{gap:6px!important}
  .prop-research .pr-strip .pr-keystats>*{padding:6px 8px!important;border-radius:11px}
  .pr-keystats dt{font-size:.56rem!important;letter-spacing:.05em}
  .pr-strip .pr-keystats dd{justify-content:center;flex-wrap:wrap;gap:0 4px!important;font-size:.98rem!important}
  .pr-strip .pr-keystats dd small{font-size:.6rem!important}
  .prop-research .pr-strip .pr-tiles{flex-wrap:nowrap!important;overflow-x:auto;padding-top:8px!important;scrollbar-width:none}
  .prop-research .pr-strip .pr-tiles::-webkit-scrollbar{display:none}
  .prop-research .pr-strip .pr-tiles>*{flex:none}
  .prop-research .pr-strip .pr-stat{padding:4px 9px!important}

  /* ---------------------------------------------------------- KarmaCards reels */
  html.ke-reel-mode,html:has(.karmacards-section.is-reel){--ke-reel-bar-h:50px;scroll-snap-type:y mandatory;scroll-behavior:auto}
  html:has(.karmacards-section.is-reel) .site-footer{scroll-snap-align:start}
  .karmacards-hub:has(.is-reel){width:calc(100% - 20px)!important;padding-top:0!important}
  .karmacards-hub:has(.is-reel)>.page-hero{position:sticky!important;top:var(--ke-head-h);z-index:40;display:flex;align-items:center;gap:10px;min-height:var(--ke-reel-bar-h);
    margin:0 -10px!important;padding:6px 12px!important;border:0!important;border-radius:0!important;overflow:visible!important;
    background:linear-gradient(180deg,#000 72%,#0000)!important;box-shadow:none!important}
  .karmacards-hub:has(.is-reel)>.page-hero::before,.karmacards-hub:has(.is-reel)>.page-hero::after,
  .karmacards-hub:has(.is-reel)>.page-hero>.eyebrow,.karmacards-hub:has(.is-reel)>.page-hero>.lede{display:none!important}
  .karmacards-hub:has(.is-reel)>.page-hero h1{margin:0!important;font-size:21px!important;letter-spacing:-.02em}
  .karmacards-hub:has(.is-reel) .ke-reel-bar{display:flex;align-items:center;gap:8px;margin-left:auto}
  .ke-reel-live{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid #31fbb740;border-radius:999px;background:#31fbb712;color:#7dfde3;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
  .ke-reel-live i{width:7px;height:7px;border-radius:50%;background:#31fbb7;box-shadow:0 0 10px #31fbb7;animation:ke-pulse 2s ease-in-out infinite}
  .ke-reel-count{min-width:44px;color:#a1a7ad;font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums;text-align:center}
  .ke-reel-filter{min-height:32px;padding:0 13px;border:1px solid #ffffff1f;border-radius:999px;background:#ffffff0a;color:#fff;font:inherit;font-size:.78rem;font-weight:700}
  .ke-reel-filter[aria-expanded=true]{border-color:#2dfce6;color:#2dfce6}
  .karmacards-hub:has(.is-reel) .ke-karmacards-elite{display:none!important}
  .karmacards-hub:has(.is-reel) .karmacards-filter-panel{display:none!important}
  .karmacards-hub:has(.is-reel) .karmacards-filter-panel.is-open{display:block!important;margin:4px 0 10px!important;scroll-snap-align:start;scroll-margin-top:calc(var(--ke-head-h) + var(--ke-reel-bar-h))}
  .karmacards-hub .karmacards-section.is-reel>:is(.section-head,.ke-live-availability,.ke-feature-filter-note){display:none!important}
  .karmacards-section.is-reel{margin:0!important;padding:0!important}
  .karmacards-section.is-reel .karmacard-grid{display:block!important}
  .karmacards-section.is-reel .karmacard-grid>.ke-showcase-locked{display:none!important}
  .karmacards-section.is-reel [data-ke-reel-slide]{position:relative;display:flex;flex-direction:column;
    height:calc(100svh - var(--ke-head-h) - var(--ke-reel-bar-h) - var(--ke-bar-space) - 4px);min-height:520px;padding:4px 0 12px;
    scroll-snap-align:start;scroll-snap-stop:always;scroll-margin-top:calc(var(--ke-head-h) + var(--ke-reel-bar-h))}

  /* one card, full screen */
  .is-reel .karmacard{flex:1;min-height:0;justify-content:space-between;gap:10px!important;padding:16px 16px 14px!important;border-radius:28px!important;
    background:radial-gradient(130% 60% at 50% 0,#2dfce624,transparent 62%),radial-gradient(90% 50% at 50% 100%,#f2c14e10,transparent 70%),linear-gradient(180deg,#111215,#060607)!important;
    box-shadow:0 24px 60px #000000b3,inset 0 1px 0 #ffffff12!important;transform:none!important}
  .is-reel .karmacard-topline{padding-right:58px}
  .is-reel .karmacard-player-row{flex-direction:column;align-items:center!important;gap:8px!important;text-align:center}
  .is-reel .karmacard-player-row .ke-asset{width:min(118px,15svh)!important;height:min(118px,15svh)!important;border-radius:50%!important;
    box-shadow:0 0 0 3px #0b0b0d,0 0 0 5px #2dfce6b3,0 18px 46px #2dfce638!important}
  .is-reel .karmacard-player-row h3{font-size:clamp(22px,3.4svh,28px)!important}
  .is-reel .karmacard-player-row>div{display:flex;flex-direction:column;align-items:center}
  .is-reel .ke-research-rank{justify-content:center}
  .is-reel .karmacard-projection-band strong{font-size:clamp(20px,3.2svh,26px)!important}
  .is-reel .karmacard-footer{margin:0 -2px!important;padding:0!important;border:0!important}
  .is-reel .karmacard-footer>span{display:none}
  .is-reel .karmacard-footer strong{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;border-radius:16px;
    background:linear-gradient(135deg,#2dfce6,#31fbb7);color:#03140f!important;font-size:15px;box-shadow:0 10px 30px #2dfce633}
  /* share sits on the right like a reel's action rail */
  .is-reel .karmacard-shell>.karmacard-share{position:absolute!important;top:16px;right:12px;z-index:5;display:grid!important;place-items:center;width:46px!important;height:46px!important;
    min-height:0!important;padding:0!important;border-radius:50%!important;font-size:0!important;background:#ffffffd9!important;color:#000!important;box-shadow:0 8px 24px #0009}
  .is-reel .karmacard-shell>.karmacard-share svg{width:18px;height:18px}
  .ke-reel-hint{display:inline-flex;align-self:center;align-items:center;gap:7px;margin:-2px 0 -4px;color:#7dfde3;font-size:.74rem;font-weight:700;
    animation:ke-hint 1.8s ease-in-out infinite;transition:opacity .3s}
  .ke-reel-hint i{width:9px;height:9px;border-top:2px solid currentColor;border-left:2px solid currentColor;transform:rotate(45deg);margin-top:4px}
  .ke-reel-hint.is-gone{opacity:0}
  /* the Elite slide and the end slide */
  .is-reel .ke-reel-only{display:flex}
  .ke-reel-panel{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px 22px;border:1px solid #ffffff14;border-radius:28px;text-align:center;overflow:hidden;
    background:radial-gradient(120% 70% at 50% 0,#f2c14e1f,transparent 60%),linear-gradient(180deg,#111215,#060607)}
  .ke-reel-panel>strong{color:#fff;font-family:var(--ke-display);font-size:26px;line-height:1.15;letter-spacing:-.02em}
  .ke-reel-panel>p{max-width:290px;margin:0;color:#a1a7ad;font-size:14px;line-height:1.5}
  .ke-reel-panel>small{color:#6d7379;font-size:12px}
  .ke-reel-panel>small a{color:#a1a7ad}
  .ke-reel-panel .button{width:100%;max-width:300px;min-height:50px;font-size:15px}
  .ke-reel-ghosts{position:relative;width:180px;height:150px;margin-bottom:6px}
  .ke-reel-ghosts i{position:absolute;inset:0;border:1px solid #ffffff1a;border-radius:20px;background:linear-gradient(180deg,#1b1c20,#0c0c0e);filter:blur(.4px)}
  .ke-reel-ghosts i:nth-child(1){transform:rotate(-9deg) translate(-26px,8px);opacity:.55}
  .ke-reel-ghosts i:nth-child(2){transform:rotate(8deg) translate(26px,6px);opacity:.7}
  .ke-reel-ghosts i:nth-child(3){display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#f2c14e33,transparent 60%),linear-gradient(180deg,#1d1e22,#0d0d10)}
  .ke-reel-ghosts i:nth-child(3)::after{content:"🔒";font-size:34px;font-style:normal}
  .ke-reel-end .ke-reel-panel{background:radial-gradient(120% 70% at 50% 0,#2dfce61f,transparent 60%),linear-gradient(180deg,#111215,#060607)}
  .ke-reel-check{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#2dfce6,#31fbb7);color:#03140f;font-size:30px;font-weight:900;box-shadow:0 12px 34px #2dfce640}
  .ke-reel-links{display:grid;width:100%;max-width:300px;gap:8px}
  .ke-reel-links a{display:flex;align-items:center;justify-content:center;min-height:46px;border:1px solid #ffffff1f;border-radius:14px;background:#ffffff08;color:#fff;font-weight:700;text-decoration:none}
  /* the free game card, when no prop card is on the board */
  .is-reel .ke-free-game-slide{gap:8px}
  .is-reel .hero-free-game-karmacard{text-align:center}
  .is-reel .hero-free-game-karmacard .karmacard-topline{padding-right:0}
  .is-reel .hero-free-game-karmacard .top-karmaedge-game-assets{display:flex!important;justify-content:center;align-items:center;gap:22px!important;padding:8px 0!important}
  .is-reel .hero-free-game-karmacard .top-karmaedge-game-assets>span{display:flex;flex-direction:column;align-items:center;gap:6px}
  .is-reel .hero-free-game-karmacard .top-karmaedge-game-assets .ke-asset{width:min(76px,10svh)!important;height:min(76px,10svh)!important;border-radius:22px!important}
  .is-reel .hero-free-game-karmacard .top-karmaedge-game-assets b{font-size:18px}
  .is-reel .hero-free-game-karmacard .top-karmaedge-game-assets i{color:#6d7379;font-style:normal;font-weight:800}
  .is-reel .hero-free-game-karmacard h3{font-size:clamp(20px,3svh,24px)!important}
  .is-reel .hero-free-game-karmacard .hero-free-slate{margin:0;color:#a1a7ad;font-size:12.5px}
  .ke-free-game-note{margin:0 6px;color:#8b9298;font-size:12px;line-height:1.45;text-align:center}
  @media (max-height:700px){
    .is-reel .karmacard{gap:7px!important;padding:12px 14px!important}
    .is-reel .karmacard-matchup small{display:none}
  }

  /* ---------------------------------------------------------- Home: a short, swipeable phone page */
  /* Order for a phone: pitch, today's card, every tool, sports, plans, then the detail. */
  .ke-home{display:flex;flex-direction:column}
  .ke-home>.karmaedge-hero{order:0}.ke-home>.ke-proof-strip{order:1}.ke-home>.ke-bento-section{order:2}.ke-home>.ke-sports{order:3}
  .ke-home>.homepage-pricing{order:4}.ke-home>.prop-showcase{order:5}.ke-home>.machine-intro{order:6}.ke-home>.ke-faq{order:7}
  .ke-home>.trust-preview{order:8}.ke-home>.final-karmaedge-cta{order:9}
  .ke-home>.free-products-home{display:none!important} /* the same four free tools are the first cards in the swipe row above */
  .ke-home>section:not(.karmaedge-hero):not(.ke-proof-strip){padding-top:30px!important;padding-bottom:6px!important}
  .ke-home .ke-section-head{margin-bottom:14px!important;text-align:left!important}
  .ke-home .ke-section-head h2{font-size:25px!important;line-height:1.12!important;letter-spacing:-.025em}
  .ke-home .ke-section-head .lede,.ke-home .ke-section-head .machine-subtitle,.ke-home .ke-section-head .free-products-copy{display:none}
  .ke-home .ke-section-head .eyebrow{margin-bottom:6px}

  /* hero */
  .karmaedge-hero{padding:14px 0 6px!important;min-height:0!important}
  .karmaedge-hero .ke-hero-grid{grid-template-columns:minmax(0,1fr)!important;gap:16px!important}
  .karmaedge-hero .ke-hero-copy,.karmaedge-hero .hero-karmacards{min-width:0;max-width:100%}
  .karmaedge-hero .ke-pill-soon{display:none!important}
  .karmaedge-hero h1{margin:12px 0 0!important;font-size:clamp(30px,8.6vw,36px)!important;line-height:1.04!important;letter-spacing:-.035em!important}
  .karmaedge-hero .hero-subhead{margin:8px 0 0!important;font-size:16px!important}
  .karmaedge-hero .hero-value-copy{margin:4px 0 0!important;font-size:14.5px!important}
  .karmaedge-hero .hero-primary-actions{display:grid!important;grid-template-columns:1fr;gap:9px;margin:16px 0 12px!important}
  .karmaedge-hero .hero-primary-actions .button{width:100%;min-height:52px!important;font-size:16px!important}
  .karmaedge-hero .ke-also-free{display:flex!important;flex-wrap:nowrap!important;gap:8px;margin:0 -16px!important;padding:0 16px 2px;overflow-x:auto;white-space:nowrap;scrollbar-width:none;font-size:0!important}
  .karmaedge-hero .ke-also-free::-webkit-scrollbar{display:none}
  .karmaedge-hero .ke-also-free a{flex:none;display:inline-flex;align-items:center;min-height:36px;margin:0!important;padding:0 14px;border:1px solid #ffffff1c;border-radius:999px;
    background:#ffffff08;color:#e6e9ec!important;font-size:13px!important;font-weight:650;text-decoration:none!important}
  .karmaedge-hero .ke-also-free a::after{display:none!important}
  .karmaedge-hero .hero-legal-disclaimer{margin-top:10px!important;font-size:11.5px!important}
  .karmaedge-hero .hero-karmacards{margin:0!important}
  .karmaedge-hero .hero-karmacards .ke-frame-bar{display:none!important}

  /* swipe rows: one card in view, the next one peeking */
  .ke-home [data-ke-swipe]{display:flex!important;flex-wrap:nowrap!important;gap:12px!important;margin:0 -16px!important;padding:4px 16px 6px!important;
    overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding:0 16px;scrollbar-width:none;grid-template-columns:none!important}
  .ke-home [data-ke-swipe]::-webkit-scrollbar{display:none}
  .ke-home [data-ke-swipe]>*:not([aria-hidden=true]){flex:0 0 84%!important;max-width:none!important;min-width:0;margin:0!important;scroll-snap-align:start}
  .ke-home [data-ke-swipe]>[aria-hidden=true]{display:none!important}
  .ke-home .machine-stages>article{flex-basis:72%!important}
  .ke-home .pricing-grid[data-ke-swipe]{align-items:flex-start!important}
  .ke-home .pricing-grid[data-ke-swipe]>*{flex-basis:86%!important;height:auto!important;min-height:0!important}
  .ke-swipe-dots{display:flex;justify-content:center;gap:6px;margin:10px 0 0}
  .ke-swipe-dots i{width:6px;height:6px;border-radius:999px;background:#ffffff2b;transition:width .25s,background .25s}
  .ke-swipe-dots i.is-on{width:20px;background:#2dfce6;box-shadow:0 0 10px #2dfce680}

  /* the detail sections, tighter */
  .ke-home .prop-showcase .ke-split-grid{gap:16px!important}
  .ke-home .prop-showcase .lede{font-size:14px!important}
  .ke-home .ke-trust{gap:12px!important;padding:18px!important}
  .ke-home .ke-research-links{gap:8px!important}
  .ke-home .ke-final{padding:24px 18px!important}
  .ke-home .ke-final .actions{display:grid!important;gap:9px}
  .ke-home .ke-final .actions .button{width:100%}

  /* ---------------------------------------------------------- Add to Home Screen */
  .ke-install:not([hidden]){position:fixed;left:12px;right:12px;bottom:calc(var(--ke-bar-space) + 10px);z-index:68;display:flex;align-items:center;gap:12px;
    padding:10px 10px 10px 12px;border:1px solid #2dfce640;border-radius:20px;background:linear-gradient(135deg,#0d1a19f2,#0a0b0df2);
    -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 18px 44px #000000c0,0 0 0 1px #2dfce614 inset;
    opacity:0;transform:translateY(16px);transition:opacity .26s ease,transform .26s cubic-bezier(.2,.8,.2,1)}
  .ke-install.is-in{opacity:1;transform:none}
  html.ke-bar-hidden .ke-install{bottom:calc(10px + var(--ke-safe-b))}
  .ke-install img{flex:none;width:46px;height:46px;border-radius:12px;box-shadow:0 6px 18px #2dfce633}
  .ke-install-copy{display:grid;flex:1;min-width:0;gap:1px}
  .ke-install-copy strong{color:#fff;font-size:15px;line-height:1.2}
  .ke-install-copy small{color:#a1a7ad;font-size:12px}
  .ke-install-go{flex:none;min-height:38px;padding:0 16px;border:0;border-radius:999px;background:linear-gradient(135deg,#2dfce6,#31fbb7);color:#03140f;font:inherit;font-size:14px;font-weight:800}
  .ke-install-x{display:grid;place-items:center;flex:none;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:#ffffff12;color:#a1a7ad}
  .ke-install-x svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}
  .site-header .nav-links.open>.ke-install-link:not([hidden]){display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;margin:4px 0 2px;border:1px solid #2dfce655;
    border-radius:14px;background:#2dfce612;color:#7dfde3;font:inherit;font-size:15px;font-weight:700}
  .ke-ios-sheet:not([hidden]){position:fixed;inset:0;z-index:80;display:flex;align-items:flex-end;justify-content:center;padding:12px 12px calc(16px + var(--ke-safe-b));
    background:#000000b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:ke-fade .2s both}
  .ke-ios-panel{display:grid;justify-items:center;gap:12px;width:100%;max-width:420px;padding:22px 18px 16px;border:1px solid #ffffff1c;border-radius:26px;background:#0d0e11;
    box-shadow:0 30px 80px #000;animation:ke-sheet-up .28s cubic-bezier(.2,.8,.2,1) both}
  .ke-ios-panel>img{width:64px;height:64px;border-radius:16px;box-shadow:0 10px 30px #2dfce640}
  .ke-ios-panel>strong{color:#fff;font-family:var(--ke-display);font-size:20px;text-align:center}
  .ke-ios-panel ol{display:grid;gap:10px;width:100%;margin:0;padding:0;list-style:none}
  .ke-ios-panel li{display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid #ffffff12;border-radius:16px;background:#ffffff06;color:#d6dade;font-size:14.5px;line-height:1.4}
  .ke-ios-n{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:#2dfce61a;color:#2dfce6;font-size:14px}
  .ke-ios-panel em{color:#fff;font-style:normal;font-weight:700}
  .ke-ios-glyph{width:20px;height:20px;margin:0 2px -4px;fill:none;stroke:#2dfce6;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .ke-ios-done{width:100%;min-height:50px;border:0;border-radius:16px;background:linear-gradient(135deg,#2dfce6,#31fbb7);color:#03140f;font:inherit;font-size:15px;font-weight:800}
  html.ke-ios-open{overflow:hidden}
  /* inside the installed app: room under the iPhone status bar */
  html.ke-standalone .site-header{padding-top:max(env(safe-area-inset-top,0px),6px)}

  /* ================================================== Phase 2 (2026-10-16): from the competitor teardown */
  /* header: "App" sits beside Start free wherever the phone can install */
  .ke-get-app:not([hidden]){display:inline-flex;align-items:center;gap:5px;min-height:36px;margin-left:auto;padding:0 12px 0 9px;border:1px solid #2dfce655;border-radius:999px;
    background:#2dfce612;color:#7dfde3;font:inherit;font-size:.8rem;font-weight:800;-webkit-tap-highlight-color:transparent}
  .ke-get-app svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .ke-get-app:not([hidden])+.ke-mobile-cta{margin-left:0}

  /* Home first screen: sports, the headline, today's card, then the buttons */
  .karmaedge-hero{margin-top:0!important}
  .karmaedge-hero .ke-hero-grid{display:flex!important;flex-direction:column;gap:0!important;padding-top:12px!important}
  .karmaedge-hero .ke-hero-copy{display:contents}
  .karmaedge-hero .ke-sport-chips{order:0;display:flex!important;gap:8px;margin:0 -16px 4px!important;padding:0 16px 2px;overflow-x:auto;scrollbar-width:none}
  .karmaedge-hero .ke-sport-chips::-webkit-scrollbar{display:none}
  .ke-sport-chips a{flex:none;display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 14px;border:1px solid #ffffff1c;border-radius:999px;background:#ffffff0a;
    color:#e6e9ec!important;font-size:13.5px;font-weight:700;text-decoration:none!important;-webkit-tap-highlight-color:transparent}
  .ke-sport-chips a i{width:8px;height:8px;border-radius:50%;background:var(--chip,#2dfce6);box-shadow:0 0 8px var(--chip,#2dfce6)}
  .ke-sport-chips a.is-hot{border-color:#2dfce655;background:#2dfce614;color:#7dfde3!important}
  .ke-sport-chips a:active{transform:scale(.96)}
  .karmaedge-hero .hero-brand-label,.karmaedge-hero .hero-value-copy{display:none!important}
  .karmaedge-hero h1{order:1;font-size:clamp(26px,7.4vw,31px)!important}
  .karmaedge-hero .hero-subhead{order:2}
  .karmaedge-hero .hero-karmacards{order:3;margin:14px 0 0!important}
  .karmaedge-hero .hero-primary-actions{order:4;margin:14px 0 10px!important}
  .karmaedge-hero .ke-cta-note{order:5;margin:0!important;color:#a1a7ad;font-size:12.5px;text-align:center}
  .karmaedge-hero .ke-live-counts{order:6;display:flex!important;align-items:center;justify-content:center;gap:7px;margin:6px 0 12px!important;color:#7dfde3;font-size:12px;font-weight:650;line-height:1.35;text-align:center}
  .ke-live-counts i{flex:none;width:7px;height:7px;border-radius:50%;background:#31fbb7;box-shadow:0 0 10px #31fbb7;animation:ke-pulse 2s ease-in-out infinite}
  .karmaedge-hero .ke-also-free{order:7}
  .karmaedge-hero .hero-legal-disclaimer{order:8;text-align:center}
  /* today's card, compact: one glance, not a page */
  .ke-home .karmaedge-hero .hero-karmacards .ke-frame-body{padding:12px!important}
  .ke-home .karmaedge-hero .hero-karmacards-head{gap:6px 8px;margin-bottom:10px!important}
  .ke-home .karmaedge-hero .hero-karmacards-head .eyebrow{display:none}
  .ke-home .karmaedge-hero .hero-karmacards-head h2{flex-basis:auto;order:-1;margin:0 auto 0 0!important;font-size:19px!important}
  .ke-home .karmaedge-hero .hero-free-karmacard{gap:8px!important;padding:12px 14px!important}
  .ke-home .karmaedge-hero .hero-free-game-karmacard .karmacard-method-state{display:none!important} /* the score is already in the band above it */
  .ke-home .karmaedge-hero .hero-free-game-karmacard .top-karmaedge-game-assets{display:flex!important;align-items:center;gap:10px!important;padding:0!important}
  .ke-home .karmaedge-hero .hero-free-game-karmacard .top-karmaedge-game-assets>span{display:inline-flex;align-items:center;gap:7px}
  .ke-home .karmaedge-hero .hero-free-game-karmacard .top-karmaedge-game-assets .ke-asset{width:34px!important;height:34px!important}
  .ke-home .karmaedge-hero .hero-free-game-karmacard h3{font-size:18px!important;line-height:1.2!important}
  .ke-home .karmaedge-hero .hero-free-player .ke-asset{width:48px!important;height:48px!important}
  .ke-home .karmaedge-hero .hero-free-player h3{font-size:20px!important}
  .ke-home .karmaedge-hero .karmacard-projection-band{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .ke-home .karmaedge-hero .karmacard-projection-band>span:first-child{grid-column:1/-1!important;flex-direction:row!important;align-items:baseline;justify-content:space-between;
    border-bottom:1px solid var(--ke-hairline)!important}
  .ke-home .karmaedge-hero .karmacard-projection-band>span:nth-child(2){border-left:0!important}
  .ke-home .karmaedge-hero .karmacard-projection-band>span:first-child strong{text-align:right}
  .ke-home .karmaedge-hero .hero-karmacards .ke-research-rank{padding:9px 14px!important}
  .ke-home .karmaedge-hero .hero-karmacards .ke-rank-score strong{font-size:30px!important;line-height:1!important}
  .ke-home .karmaedge-hero .karmacard-projection-band>span{gap:4px!important;padding:8px 12px!important}
  .ke-home .karmaedge-hero .karmacard-projection-band strong{font-size:18px!important}
  .ke-home .karmaedge-hero .hero-karmacards-cta{display:none!important} /* the big button right under the card goes to the same place */

  /* Filters in a bottom sheet (static/mobile_app.js): the search stays, the rest is one tap away */
  form[data-ke-filter-sheet]:not(.is-sheet){display:flex!important;flex-wrap:nowrap!important;align-items:center;gap:8px!important}
  form[data-ke-filter-sheet]:not(.is-sheet)>:not([data-ke-sheet-keep]):not(.ke-filter-open){display:none!important}
  form[data-ke-filter-sheet]:not(.is-sheet)>[data-ke-sheet-keep]{flex:1 1 0%!important;max-width:none!important;min-width:0}
  /* (the page's own form-button styles must not reach these two) */
  form[data-ke-filter-sheet] button.ke-filter-open{position:relative;display:inline-flex;flex:none!important;align-items:center;gap:7px;width:auto!important;height:40px!important;margin:0!important;
    padding:0 14px!important;border:1px solid #ffffff24!important;border-radius:12px!important;background:#ffffff0a!important;color:#fff!important;font:inherit;font-size:13.5px!important;
    font-weight:700!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent}
  .ke-filter-open svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
  .ke-filter-open b{display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#2dfce6;color:#03140f;font-size:11px}
  form.is-sheet{position:fixed!important;left:8px!important;right:8px!important;top:auto!important;bottom:calc(8px + var(--ke-safe-b))!important;z-index:73!important;
    display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;max-width:none!important;max-height:min(82dvh,640px);margin:0!important;
    padding:12px 16px 16px!important;overflow:auto;overscroll-behavior:contain;border:1px solid #ffffff1c!important;border-radius:26px!important;background:#0d0e11!important;
    box-shadow:0 30px 80px #000!important;animation:ke-sheet-up .28s cubic-bezier(.2,.8,.2,1) both}
  form.is-sheet>*{grid-column:1/-1!important;width:100%!important;max-width:none!important;flex:none!important}
  form.is-sheet>.ke-filter-open{display:none!important}
  form.is-sheet>.ke-filter-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 2px}
  form.is-sheet>.ke-filter-head::before{content:"";position:absolute;top:7px;left:50%;width:40px;height:4px;margin-left:-20px;border-radius:999px;background:#ffffff2e}
  .ke-filter-head strong{color:#fff;font-family:var(--ke-display);font-size:19px}
  form[data-ke-filter-sheet] button.ke-filter-done{flex:none!important;width:auto!important;height:34px!important;min-height:34px!important;margin:0!important;padding:0 14px!important;border:0!important;
    border-radius:999px!important;background:#ffffff12!important;color:#fff!important;font:inherit;font-size:13.5px!important;font-weight:700!important;box-shadow:none!important}
  form.is-sheet label{color:#a1a7ad!important;font-size:11px!important}
  form.is-sheet label>span{position:static!important;width:auto!important;height:auto!important;margin:0 0 5px;clip:auto!important;overflow:visible!important;display:block}
  .ke-odds-filters.is-sheet label{color:#a1a7ad!important;font-size:11px!important;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
  form.is-sheet :is(select,input){height:46px!important;font-size:16px!important}
  form.is-sheet :is(button[type=submit],.button){width:100%!important;height:50px!important;min-height:50px!important;font-size:15px!important}
  form.is-sheet .prop-odds-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}
  .ke-filter-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:72;background:#000000a6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:ke-fade .2s both}
  html.ke-filters-open{overflow:hidden}
  /* a blurred or raised parent would trap the sheet under the backdrop */
  html.ke-filters-open :has(form.is-sheet){z-index:auto!important;isolation:auto!important;transform:none!important;filter:none!important;
    contain:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}

  /* one-tap chips built from a select (Player Prop Odds markets) */
  .ke-chip-row{position:relative;display:flex;gap:7px;margin:10px -16px 4px;padding:0 16px 2px;overflow-x:auto;scrollbar-width:none}
  .ke-chip-row::-webkit-scrollbar{display:none}
  .ke-chip-row a{flex:none;display:inline-flex;align-items:center;min-height:34px;padding:0 13px;border:1px solid #ffffff1c;border-radius:999px;background:#ffffff08;
    color:#d6dade!important;font-size:13px;font-weight:650;text-decoration:none!important;white-space:nowrap}
  .ke-chip-row a[aria-current]{border-color:#2dfce6;background:#2dfce61a;color:#7dfde3!important}

  /* Live Odds: a compact status, the board straight after */
  .ke-odds-hero{gap:12px!important;margin:4px 0 12px!important}
  .ke-odds-hero h1{margin:6px 0 6px!important;font-size:29px!important}
  .ke-odds-hero p{font-size:13.5px!important;line-height:1.45!important}
  .ke-odds-live{flex-direction:row!important;flex-wrap:wrap;align-items:center;gap:6px 10px!important;padding:12px 14px!important;border-radius:18px!important}
  .ke-odds-live .ke-live-pill{align-self:center;font-size:10.5px!important}
  .ke-odds-live>strong{margin:0!important;font-size:14px!important}
  .ke-odds-live>small{flex-basis:100%;font-size:11.5px!important}
  .ke-odds-live .ke-odds-stats{flex-basis:100%;margin:2px 0 0!important}
  .ke-odds-stats>div{display:flex;flex-direction:column;justify-content:space-between;padding:7px 10px!important}
  .ke-odds-stats dt{font-size:9px!important;letter-spacing:.08em!important}
  .ke-odds-stats dd{margin-top:2px!important;font-size:17px!important}
  .ke-odds-toolbar{gap:8px!important;padding:8px!important}
  .ke-odds-toolbar .ke-seg{overflow-x:auto;scrollbar-width:none}
  .ke-odds-toolbar .ke-odds-filters{flex:1 1 100%!important}
  .ke-odds-toolbar .ke-odds-filters input{height:40px!important}
  /* the legend: the three rules side by side; the note below still says what "best" means */
  .ke-odds-legend{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px!important;margin:0 0 14px!important;font-size:11.5px!important}
  .ke-odds-legend .legend-up{display:none} /* the note says "fresh … eligible sportsbooks" too */
  .ke-odds-legend .legend-best{grid-column:2/-1}
  .ke-odds-legend>span:not(.legend-best):not(.legend-up){display:flex;flex-direction:column;gap:2px;min-width:0;padding:7px 8px;border:1px solid var(--ke-hairline);
    border-radius:10px;font-size:10.5px;line-height:1.25}
  .ke-odds-legend small{grid-column:1/-1;font-size:10.5px!important;line-height:1.4}

  /* Player Prop Odds: the board, not the banner */
  .player-prop-hero{gap:12px!important;margin-bottom:10px!important;padding:16px!important}
  .player-prop-hero h1{margin:6px 0 6px!important;font-size:28px!important}
  .player-prop-hero .lede{font-size:13.5px!important;line-height:1.45!important}
  .player-prop-hero .prop-odds-summary{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px!important;margin-top:12px!important}
  .player-prop-hero .prop-odds-summary span{display:flex;flex-direction:column;align-items:center;padding:7px 4px!important;border-radius:12px!important;font-size:10.5px!important;line-height:1.2;text-align:center}
  .player-prop-hero .prop-odds-summary strong{margin:0 0 2px!important;font-size:18px!important}
  .player-prop-hero .prop-odds-freshness{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 10px!important;padding:12px 14px!important}
  .player-prop-hero .prop-odds-freshness>*{grid-column:1/-1;margin:0!important}
  .player-prop-hero .prop-odds-freshness>.prop-odds-state{grid-column:1}
  .player-prop-hero .prop-odds-freshness>.prop-odds-state+strong{grid-column:2;font-size:13px!important;line-height:1.35}
  .player-prop-hero .prop-odds-freshness small{font-size:11.5px!important}
  .player-prop-hero .prop-odds-freshness a{margin-top:2px!important;font-size:12.5px!important}
  .prop-odds-controls:not(.is-sheet){padding:8px!important}
  .prop-odds-controls:not(.is-sheet)>[data-ke-sheet-keep]{font-size:0!important}
  .prop-odds-controls:not(.is-sheet)>[data-ke-sheet-keep] input{height:40px!important;font-size:15px!important}
  .free-player-market-card{padding:14px!important}
  .free-player-market-card .market-card-player-art .ke-asset{width:52px!important;height:52px!important}

  /* Live Trends: leagues and Filters on one row */
  .ke-trends .ke-trends-hero h1{font-size:29px!important}
  .ke-trends .ke-trends-hero .lede{font-size:13.5px!important;line-height:1.45!important}
  .ke-trends .ke-trends-toolbar{flex-direction:row!important;flex-wrap:wrap!important;align-items:center!important}
  .ke-trends .ke-trends-toolbar .ke-seg{flex:1 1 0;min-width:0;overflow-x:auto;scrollbar-width:none}
  .ke-trends .ke-trends-toolbar .live-trends-filter-panel[open]{flex-basis:100%!important}
  .ke-trends .ke-trends-toolbar .live-trends-filter-panel .live-trends-filters:not(.is-sheet){padding:0!important;border:0!important;background:none!important}
  /* the pager floats above the app bar */
  .ke-trends .live-trends-pagination.has-pages{bottom:calc(var(--ke-bar-space) + 8px);gap:8px;margin:12px 0 0;padding:6px 6px 6px 14px;font-size:12px;
    transition:bottom .28s cubic-bezier(.2,.8,.2,1)}
  .ke-trends .live-trends-pagination.has-pages a{min-height:38px;padding:0 14px}
  html.ke-bar-hidden .ke-trends .live-trends-pagination.has-pages{bottom:calc(10px + var(--ke-safe-b))}
  html.ke-install-open .ke-trends .live-trends-pagination.has-pages{bottom:calc(var(--ke-bar-space) + 88px)}

  /* ---------------------------------------------------------- footer: tidy, still complete */
  .site-footer .site-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px 14px!important}
  .site-footer .site-footer-brand{grid-column:1/-1}
  .site-footer nav a{min-height:32px;display:flex;align-items:center}
}

@keyframes ke-hero-glow{0%,100%{box-shadow:0 10px 26px #2dfce655,0 0 0 4px #0a0b0d,inset 0 1px 0 #ffffffa0}50%{box-shadow:0 10px 34px #2dfce699,0 0 0 4px #0a0b0d,inset 0 1px 0 #ffffffa0}}
@keyframes ke-sheet-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes ke-fade{from{opacity:0}}
@keyframes ke-pulse{50%{opacity:.35}}
@keyframes ke-hint{0%,100%{transform:none}50%{transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){
  .ke-tabbar,.pr-dock,.ke-install{transition:none!important}
  .ke-tab-hero i,.ke-sheet-backdrop,.site-header .nav-links.open,.ke-reel-hint,.ke-reel-live i,.ke-ios-sheet,.ke-ios-panel,
  .ke-live-counts i,form.is-sheet,.ke-filter-backdrop{animation:none!important}
}
