/* 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_trends.css */
/* Live Trends board: elite card redesign (2026-10-01). Loaded last on /live-trends.
   Every rule is scoped to .ke-trends so the older live_trends.css (still loaded,
   still the source of the pinned base contract) can never win a tie with it.
   Direction colours are neutral on purpose: higher is sky, lower is coral --
   a line moving is a number changing, never a better or worse bet. */
.ke-trends{
  --kt-up:#5ad6ff;--kt-up-bg:#5ad6ff14;--kt-up-line:#5ad6ff3d;
  --kt-down:#ff8f7a;--kt-down-bg:#ff8f7a14;--kt-down-line:#ff8f7a3d;
  --kt-flat:#9aa3ab;--kt-bets:#a68bff;--kt-money:#f2c14e;
  width:min(1320px,calc(100% - 40px))!important;max-width:none!important;margin:0 auto!important;padding:36px 0 80px!important;
  color:var(--ke-text);overflow-x:clip
}
.ke-trends .eyebrow{font-size:11.5px;font-weight:700;letter-spacing:.16em;background:var(--ke-accent);-webkit-background-clip:text;background-clip:text;color:transparent}
/* customer.css pads every <section> 28px; the board's sections size themselves. */
.ke-trends .trend-market-group,.ke-trends .ke-movers,.ke-trends .trend-game-list,.ke-trends .trend-source-grid section{padding-block:0}
.ke-trends .ke-sr,.ke-trends .live-trends-filters label>span{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Hero: title left, live status right */
.ke-trends .ke-trends-hero{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:28px;align-items:end;margin:0 0 22px!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important}
.ke-trends .ke-trends-hero::before,.ke-trends .ke-trends-hero::after{display:none!important}
.ke-trends .ke-trends-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-trends .ke-trends-hero .lede{max-width:640px;margin:0!important;color:var(--ke-text-2)!important;font-size:15.5px!important;line-height:1.55}
.ke-trends .trends-preview-label{margin:10px 0 0}
.ke-trends .ke-trends-live{position:relative;display:flex;flex-direction:column;gap:6px;padding:18px 20px;border:1px solid #31fbb73d;border-radius:20px;background:radial-gradient(120% 140% at 100% 0,#2dfce612,transparent 55%),#0a0a0c;box-shadow:0 20px 60px #00000080;overflow:hidden}
.ke-trends .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);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.ke-trends .ke-live-pill i{position:relative;width:8px;height:8px;border-radius:50%;background:var(--ke-mint)}
.ke-trends .ke-live-pill i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--ke-mint);opacity:0;animation:kt-ping 1.8s cubic-bezier(0,0,.2,1) infinite}
@keyframes kt-ping{0%{transform:scale(.6);opacity:.8}100%{transform:scale(1.6);opacity:0}}
.ke-trends .ke-trends-live:not(.is-online) .ke-live-pill{border-color:#f2c14e55;background:#f2c14e10;color:var(--ke-gold)}
.ke-trends .ke-trends-live:not(.is-online) .ke-live-pill i{background:var(--ke-gold)}
.ke-trends .ke-trends-live:not(.is-online) .ke-live-pill i::after{border-color:var(--ke-gold)}
.ke-trends .ke-trends-live.is-unavailable .ke-live-pill{border-color:#ff7b6b55;background:#ff7b6b10;color:#ff9b8a}
.ke-trends .ke-trends-live.is-unavailable .ke-live-pill i{background:#ff9b8a}
.ke-trends .ke-trends-live>strong{display:flex;align-items:center;gap:9px;margin-top:6px;color:#fff;font-family:var(--ke-display);font-size:19px;font-weight:600;letter-spacing:-.015em}
.ke-trends .ke-dk-mark,.ke-trends .trend-game-source i{display:inline-grid;place-items:center;flex:none;width:26px;height:19px;border-radius:5px;background:#53d337;color:#071006;font:950 9px/1 var(--ke-body);font-style:normal;letter-spacing:0}
.ke-trends .ke-trends-live>small{color:var(--ke-text-3);font-size:12px}
.ke-trends .ke-trends-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:12px 0 0;border:1px solid var(--ke-hairline);border-radius:14px;background:#050506;overflow:hidden}
.ke-trends .ke-trends-stats>div{padding:10px 14px;border-left:1px solid var(--ke-hairline)}
.ke-trends .ke-trends-stats>div:first-child{border-left:0}
.ke-trends .ke-trends-stats dt{color:var(--ke-text-3);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.ke-trends .ke-trends-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: league switch + filters on one surface */
.ke-trends .ke-trends-toolbar{position:relative;z-index:6;display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px;padding:10px;border:1px solid var(--ke-hairline);border-radius:18px;background:var(--ke-surface)}
.ke-trends .ke-seg{display:inline-flex!important;flex:none;gap:2px;margin:0!important;padding:3px!important;border:1px solid var(--ke-hairline)!important;border-radius:999px!important;background:#050506!important}
.ke-trends .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-trends .ke-seg a:hover{color:#fff!important}
.ke-trends .ke-seg a[aria-current=page]{background:#1c1c20!important;color:#fff!important;box-shadow:inset 0 0 0 1px #ffffff14!important}
.ke-trends .live-trends-filter-panel{flex:1 1 640px;min-width:0;margin:0;border:0;background:none}
.ke-trends .live-trends-filter-panel>summary{display:none}
.ke-trends .live-trends-filters,.ke-trends .live-trends-filters.has-conference{display:flex!important;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;margin:0;padding:0;border:0;border-radius:0;background:none;grid-template-columns:none}
.ke-trends .live-trends-filters label{position:relative;flex:1 1 118px;max-width:190px;min-width:0;margin:0;color:var(--ke-text-2);font-size:0}
.ke-trends .live-trends-filters label.team-filter,.ke-trends .live-trends-filters label.conference-filter{flex:1 1 150px;max-width:none}
.ke-trends .live-trends-filters input,.ke-trends .live-trends-filters select{width:100%;height:38px;min-height:38px;margin:0;padding:0 12px;border:1px solid var(--ke-hairline);border-radius:10px;background:#131316;color:#fff;font:500 13px var(--ke-body);box-shadow:none}
.ke-trends .live-trends-filters .team-filter input{padding-left:34px;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%}
.ke-trends .live-trends-filters input:focus,.ke-trends .live-trends-filters select:focus{outline:0;border-color:#2dfce666;box-shadow:0 0 0 3px #2dfce61a}
.ke-trends .live-trends-filters button{flex:none;width:auto;height:38px;min-height:38px;margin:0;padding:0 18px;border:0;border-radius:10px;background:#fff;color:#000;font:700 13px var(--ke-body);cursor:pointer}
.ke-trends .live-trends-filters>a{display:inline-flex;flex:none;align-items:center;min-height:38px;padding:0 6px;color:var(--ke-text-2);font-size:13px;font-weight:600}
.ke-trends .live-trends-filters>a:hover{color:#fff}

/* Legend */
.ke-trends .movement-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0 0 22px;padding:0 4px;border:0;background:none;box-shadow:none;color:var(--ke-text-3);font-size:12px}
.ke-trends .movement-legend strong{color:#fff;font-size:12px;font-weight:700}
.ke-trends .movement-legend-key{display:inline-flex;align-items:center;gap:6px;color:var(--ke-text-2)}
.ke-trends .movement-legend-key::before{width:8px;height:8px;border-radius:50%;content:""}
.ke-trends .movement-legend-key.direction-higher::before{background:var(--kt-up)}
.ke-trends .movement-legend-key.direction-lower::before{background:var(--kt-down)}
.ke-trends .movement-legend-key.direction-unchanged::before{background:var(--kt-flat)}
.ke-trends .movement-legend-splits{margin-left:auto;padding:3px 10px;border:1px solid var(--ke-hairline);border-radius:999px;color:var(--ke-text-2)}

/* Largest moves rail */
.ke-trends .ke-movers{margin:0 0 18px}
.ke-trends .ke-movers-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:0 0 10px;padding:0 4px}
.ke-trends .ke-movers-head h2{margin:0;color:#fff;font-size:16px;font-weight:600;letter-spacing:-.01em}
.ke-trends .ke-movers-head small{color:var(--ke-text-3);font-size:12px}
.ke-trends .ke-movers-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none}
.ke-trends .ke-mover{position:relative;display:flex;align-items:center;gap:12px;min-width:0;height:100%;padding:12px 14px;border:1px solid var(--ke-hairline);border-radius:16px;background:linear-gradient(180deg,#111114,#0a0a0c);color:#fff;text-decoration:none;overflow:hidden;transition:border-color .2s,transform .2s}
.ke-trends .ke-mover::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--kt-flat)}
.ke-trends .ke-mover.is-higher::before{background:var(--kt-up)}
.ke-trends .ke-mover.is-lower::before{background:var(--kt-down)}
.ke-trends .ke-mover:hover{border-color:#ffffff29;transform:translateY(-2px)}
.ke-trends .ke-mover-teams{display:flex;flex:none;gap:4px}
.ke-trends .ke-mover-teams .ke-asset{width:30px;height:30px;border-radius:9px}
.ke-trends .ke-mover-copy{display:grid;flex:1;gap:3px;min-width:0}
.ke-trends .ke-mover-copy small{overflow:hidden;color:var(--ke-text-3);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.ke-trends .ke-mover-copy strong{overflow:hidden;font-size:14px;font-weight:650;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}
.ke-trends .ke-mover-copy strong i{margin:0 2px;color:var(--ke-text-3);font-size:15px;font-style:normal}
.ke-trends .ke-mover-diff{flex:none;padding:4px 9px;border-radius:999px;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.ke-trends .ke-mover.is-higher .ke-mover-diff{background:var(--kt-up-bg);color:var(--kt-up)}
.ke-trends .ke-mover.is-lower .ke-mover-diff{background:var(--kt-down-bg);color:var(--kt-down)}

/* Game grid */
.ke-trends .trend-game-list{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(min(600px,100%),1fr));gap:14px;align-items:start;margin:0}
.ke-trends .trend-game-card{position:relative;display:flex;flex-direction:column;min-width:0;margin:0;border:1px solid var(--ke-hairline);border-radius:20px;background:linear-gradient(180deg,#111114 0%,#0a0a0c 100%);box-shadow:inset 0 1px 0 #ffffff0a;overflow:hidden;scroll-margin-top:96px;transition:border-color .2s,box-shadow .2s}
.ke-trends .trend-game-card:hover{border-color:#ffffff24;box-shadow:inset 0 1px 0 #ffffff0a,0 18px 44px #00000080}
.ke-trends .trend-game-card:target{border-color:#2dfce666;box-shadow:0 0 0 3px #2dfce61a}

/* Card header: meta line, then the matchup */
.ke-trends .trend-game-head{display:grid;gap:12px;padding:14px 16px 12px;border-bottom:1px solid var(--ke-hairline);background:none}
.ke-trends .ke-trend-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;min-width:0}
.ke-trends .ke-trend-meta time{color:#e9ecee;font-size:12.5px;font-weight:650;white-space:nowrap}
.ke-trends .trend-game-source{display:inline-flex;align-items:center;gap:6px}
.ke-trends .trend-game-source strong{color:var(--ke-text-2);font-size:12px;font-weight:600}
.ke-trends .ke-trend-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-trends .ke-trend-fresh.is-current::before{width:6px;height:6px;border-radius:50%;background:var(--ke-mint);box-shadow:0 0 0 3px #31fbb71f;content:""}
.ke-trends .trend-matchup-identity{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;width:100%;max-width:none}
.ke-trends .trend-matchup-team{display:flex;align-items:center;gap:10px;min-width:0;max-width:none;padding:0;border:0;border-radius:0;background:none}
.ke-trends .trend-matchup-team+b+.trend-matchup-team{flex-direction:row-reverse;text-align:right}
.ke-trends .trend-matchup-identity small{display:block;color:var(--ke-text-3);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.ke-trends .trend-matchup-identity strong{display:block;color:#fff;font-family:var(--ke-display);font-size:16px;font-weight:600;line-height:1.15;letter-spacing:-.01em;overflow-wrap:anywhere}
.ke-trends .trend-matchup-identity>b{color:var(--ke-text-3);font-size:12px;font-weight:600}
.ke-trends .trend-matchup-identity .ke-asset-large{flex:none;width:44px;height:44px;border-radius:13px;box-shadow:0 0 0 1px #ffffff14,0 8px 22px color-mix(in srgb,var(--asset-primary,#000) 35%,transparent)}

/* Market tiles */
.ke-trends .ke-trend-markets{display:grid;grid-template-columns:repeat(auto-fit,minmax(176px,1fr));gap:10px;padding:12px 12px 4px}
.ke-trends .trend-market-group{container-type:inline-size;display:flex;flex-direction:column;min-width:0;margin:0;border:1px solid var(--ke-hairline);border-radius:14px;background:#08080a;box-shadow:none;overflow:hidden}
.ke-trends .trend-market-title{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px;padding:8px 12px 6px;border:0;background:none}
.ke-trends .trend-market-title>div:first-child{display:flex;align-items:baseline;gap:7px;min-width:0}
.ke-trends .trend-market-title span{color:#fff;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.ke-trends .trend-market-title small{overflow:hidden;color:var(--ke-text-3);font-size:10px;letter-spacing:.02em;text-overflow:ellipsis;text-transform:none;white-space:nowrap}
.ke-trends .market-h2h .trend-market-title,.ke-trends .market-spreads .trend-market-title,.ke-trends .market-totals .trend-market-title{background:none}
.ke-trends .market-h2h .trend-market-title span{color:#fff}
.ke-trends .ke-trend-spark{flex:none;width:52px;height:18px;overflow:visible}
.ke-trends .ke-trend-spark polyline{fill:none;stroke:var(--kt-flat);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.ke-trends .ke-trend-spark.is-higher polyline{stroke:var(--kt-up)}
.ke-trends .ke-trend-spark.is-lower polyline{stroke:var(--kt-down)}
.ke-trends .trend-market-columns{display:none}

/* One side of a market: selection, live line, movement chip; reference beneath */
.ke-trends .trend-market-row{--selection-primary:#263244;--selection-accent:#91a0b7;display:grid;grid-template-columns:30px minmax(0,1fr) minmax(0,1fr) auto;grid-template-areas:"sel live live diff" "sel ref ref ref";align-items:center;gap:2px 10px;min-width:0;margin:0;padding:9px 12px;border:0;border-top:1px solid var(--ke-hairline);border-radius:0;background:linear-gradient(90deg,color-mix(in srgb,var(--selection-primary) 14%,transparent),transparent 55%);box-shadow:none;outline:0}
.ke-trends .trend-market-row+.trend-market-row{margin:0}
.ke-trends .trend-market-row:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--selection-primary) 22%,transparent),#ffffff05 70%);border-color:var(--ke-hairline);outline:0}
.ke-trends .trend-market-row:focus-visible{outline:2px solid var(--ke-teal);outline-offset:-2px}
.ke-trends .trend-selection{grid-area:sel;display:flex;align-items:center;justify-content:center;gap:0;min-width:0}
.ke-trends .trend-team-selection .ke-asset-compact,.ke-trends .trend-ou-mark{width:28px;height:28px;border-radius:8px}
.ke-trends .trend-ou-mark{display:grid;place-items:center;flex:0 0 28px;border:1px solid var(--ke-hairline-strong);background:#16161a;color:#fff;font-size:11px;font-weight:800;box-shadow:none}
.ke-trends .trend-label-selection>strong{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ke-trends .trend-live{grid-area:live;display:flex;align-items:baseline;gap:6px;min-width:0}
.ke-trends .trend-live strong{color:#fff;font-family:var(--ke-display);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.1;letter-spacing:-.01em}
.ke-trends .trend-live span{margin:0;color:var(--ke-text-3);font-size:11px;font-variant-numeric:tabular-nums}
.ke-trends .trend-reference{grid-area:ref;display:flex;align-items:baseline;gap:5px;min-width:0;overflow:hidden;white-space:nowrap}
.ke-trends .trend-reference small{display:inline;margin:0;color:var(--ke-text-3);font-size:10.5px;font-weight:600;letter-spacing:0;text-transform:none}
.ke-trends .trend-reference strong{display:inline;color:var(--ke-text-2);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}
.ke-trends .trend-reference strong.history-unavailable-value{color:var(--ke-text-3);font-size:11px;font-weight:500}
.ke-trends .trend-reference:has(.history-unavailable-value) small{display:none}
.ke-trends .trend-reference time,.ke-trends .trend-reference span{display:none}
.ke-trends .trend-live small,.ke-trends .trend-diff small{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ke-trends .trend-diff{grid-area:diff;display:inline-flex;align-items:center;gap:4px;justify-self:end;min-width:0;padding:4px 9px;border:1px solid var(--ke-hairline-strong);border-radius:999px;background:#ffffff08;color:var(--kt-flat);box-shadow:none;background-image:none}
.ke-trends .trend-diff strong{display:block;color:inherit;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1;white-space:nowrap}
.ke-trends .trend-diff span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ke-trends .trend-diff::before{font-size:9px;line-height:1;content:"•"}
.ke-trends .trend-diff.direction-higher{border-color:var(--kt-up-line);background:var(--kt-up-bg);color:var(--kt-up)}
.ke-trends .trend-diff.direction-higher::before{content:"▲"}
.ke-trends .trend-diff.direction-lower{border-color:var(--kt-down-line);background:var(--kt-down-bg);color:var(--kt-down)}
.ke-trends .trend-diff.direction-lower::before{content:"▼"}
.ke-trends .trend-diff.direction-unchanged::before{content:"–"}
.ke-trends .trend-diff.direction-sign-crossing::before{content:"↔"}
.ke-trends .trend-diff.direction-history-unavailable{border-style:dashed;background:none;color:var(--ke-text-3)}
.ke-trends .trend-diff.direction-history-unavailable::before{content:none}
.ke-trends .magnitude-moderate .trend-diff.direction-higher,.ke-trends .magnitude-moderate .trend-diff.direction-lower{box-shadow:none}
.ke-trends .magnitude-large .trend-diff.direction-higher{background:#5ad6ff26;box-shadow:0 0 18px #5ad6ff26}
.ke-trends .magnitude-large .trend-diff.direction-lower{background:#ff8f7a26;box-shadow:0 0 18px #ff8f7a26}
.ke-trends .magnitude-small .trend-diff,.ke-trends .magnitude-trace .trend-diff,.ke-trends .magnitude-crossing .trend-diff{box-shadow:none}
.ke-trends .magnitude-trace .trend-diff,.ke-trends .magnitude-crossing .trend-diff{border-color:var(--ke-hairline-strong);background:#ffffff08;color:var(--kt-flat)}
/* A market with no verified line yet reads as one quiet line, not an empty grid */
.ke-trends .trend-market-row.is-unavailable{grid-template-areas:"sel sel sel sel";padding-block:14px}
.ke-trends .trend-market-row.is-unavailable .trend-selection{justify-content:flex-start}
.ke-trends .trend-market-row.is-unavailable .trend-label-selection>strong{position:static;width:auto;height:auto;clip:auto;color:var(--ke-text-3);font-size:12px;font-weight:500}
.ke-trends .trend-market-row.is-unavailable .trend-reference,.ke-trends .trend-market-row.is-unavailable .trend-live,.ke-trends .trend-market-row.is-unavailable .trend-diff{display:none}

/* Verified Bet % / Money % (only rendered when the slate has genuine splits) */
.ke-trends .trend-market-row:has(.trend-bets){grid-template-areas:"sel live live diff" "sel ref ref ref" ". bets bets money" ". signal signal signal"}
/* A wide tile (one card per row, or a phone) has room for the splits beside the line. */
@container (min-width:300px){
  .ke-trends .trend-market-row:has(.trend-bets){grid-template-columns:30px minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr) auto;grid-template-areas:"sel live bets money diff" "sel ref bets money diff" ". signal signal signal signal"}
  .ke-trends .trend-market-row:has(.trend-bets) .trend-split{margin-top:0}
  /* The full label stays in the markup for assistive tech; the narrow column shows its short form. */
  .ke-trends .trend-market-row:has(.trend-bets) .trend-reference small{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .ke-trends .trend-market-row:has(.trend-bets) .trend-reference[data-label="First tracked"]::before{color:var(--ke-text-3);font-size:10.5px;font-weight:600;content:"1st";content:"1st" / ""}
  .ke-trends .trend-market-row:has(.trend-bets) .trend-reference[data-label="Open"]::before{color:var(--ke-text-3);font-size:10.5px;font-weight:600;content:"Open";content:"Open" / ""}
}
.ke-trends .trend-split{display:grid;gap:3px;min-width:0;margin-top:6px}
.ke-trends .trend-bets{grid-area:bets}
.ke-trends .trend-money{grid-area:money}
.ke-trends .trend-split small{display:block;margin:0;color:var(--ke-text-3);font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.ke-trends .trend-split strong{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.ke-trends .trend-bets strong{color:var(--kt-bets)}
.ke-trends .trend-money strong{color:var(--kt-money)}
.ke-trends .split-meter{display:block;width:100%;height:4px;margin:0;border-radius:99px;background:#ffffff0f;overflow:hidden}
.ke-trends .split-meter b{display:block;width:var(--split);height:100%;border-radius:inherit}
.ke-trends .split-meter-bets b{background:var(--kt-bets)}
.ke-trends .split-meter-money b{background:var(--kt-money)}
.ke-trends .split-unavailable{display:inline-flex;width:auto;max-width:100%;padding:0;border:0;color:var(--ke-text-3);font-size:11px;font-weight:500}
.ke-trends .trend-signal{grid-area:signal;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;min-width:0;margin-top:6px}
.ke-trends .trend-signal small{display:none}
.ke-trends .trend-signal strong{font-size:11.5px;font-weight:700}
.ke-trends .trend-signal>span:not(.split-unavailable){margin:0;color:var(--ke-text-3);font-size:11px}
.ke-trends .signal-money-divergence{color:var(--kt-money)}
.ke-trends .signal-ticket-heavy{color:var(--kt-bets)}
.ke-trends .signal-no-material-divergence{color:var(--kt-flat)}

/* Source and line history drawer */
.ke-trends .trend-source-panel{margin-top:8px;border-top:1px solid var(--ke-hairline);color:var(--ke-text-2)}
.ke-trends .trend-source-panel>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 16px;color:var(--ke-text-2);font-size:12.5px;font-weight:650;list-style:none;cursor:pointer}
.ke-trends .trend-source-panel>summary::-webkit-details-marker{display:none}
.ke-trends .trend-source-panel>summary:hover{color:#fff}
.ke-trends .trend-source-panel>summary span{display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--ke-hairline-strong);border-radius:50%;background:none;color:#fff;font-size:13px;transition:transform .2s}
.ke-trends .trend-source-panel[open]>summary span{transform:rotate(45deg)}
.ke-trends .trend-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 12px 12px}
.ke-trends .trend-source-grid section{min-width:0;padding:11px 12px;border:1px solid var(--ke-hairline);border-radius:12px;background:#050506}
.ke-trends .trend-source-grid section>div:first-child strong{color:#fff;font-size:12px}
.ke-trends .trend-source-grid dt{color:var(--ke-text-3)}
.ke-trends .trend-source-grid dd{color:var(--ke-text-2)}
.ke-trends .trend-history-chart polyline{stroke:var(--ke-teal);stroke-width:2.5}

/* Pagination, empty states, research links, disclaimer */
.ke-trends .pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 0;padding:12px 16px;border:1px solid var(--ke-hairline);border-radius:16px;background:var(--ke-surface);color:var(--ke-text-2);font-size:13px}
.ke-trends .pagination div{display:flex;gap:8px}
.ke-trends .pagination a{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border:1px solid var(--ke-hairline-strong);border-radius:999px;color:#fff;font-weight:650}
.ke-trends .pagination a:hover{border-color:#2dfce666}
.ke-trends .empty-state{margin:8px 0 0;padding:44px 24px;border:1px dashed var(--ke-hairline-strong);border-radius:20px;background:var(--ke-surface);text-align:center}
.ke-trends .empty-state h2{margin:10px 0 8px;color:#fff;font-size:24px}
.ke-trends .empty-state p{max-width:560px;margin:0 auto 18px;color:var(--ke-text-2)}
.ke-trends .research-pathways{margin-top:48px}
.ke-trends .pulse-boundary{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px 24px;margin:28px 0 0;padding:18px 0 0;border-top:1px solid var(--ke-hairline);color:var(--ke-text-3);font-size:11.5px;line-height:1.55}

@container (max-width:230px){
  .trend-market-title small{display:none}
}
@media(max-width:1180px){
  .ke-trends .ke-movers-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .ke-trends .ke-trends-hero{grid-template-columns:1fr;gap:18px}
  .ke-trends .ke-trends-live{max-width:none}
  .ke-trends .live-trends-filters,.ke-trends .live-trends-filters.has-conference{justify-content:flex-start}
}
@media(max-width:760px){
  .ke-trends{width:calc(100% - 32px)!important;padding:22px 0 56px!important}
  .ke-trends .ke-trends-hero h1{font-size:clamp(34px,10vw,44px)!important}
  .ke-trends .ke-trends-hero .lede{font-size:14.5px!important}
  .ke-trends .ke-trends-live{padding:14px 16px}
  .ke-trends .ke-trends-stats dd{font-size:19px}
  .ke-trends .ke-trends-toolbar{flex-direction:column;align-items:stretch;padding:8px}
  .ke-trends .ke-seg{align-self:flex-start}
  .ke-trends .live-trends-filter-panel{flex:none;border:1px solid var(--ke-hairline);border-radius:12px;background:#050506}
  .ke-trends .live-trends-filter-panel>summary{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:0 12px;color:#fff;font-size:13px;font-weight:700;cursor:pointer}
  .ke-trends .live-trends-filter-panel>summary small{color:var(--ke-text-3);font-size:11px;font-weight:500}
  .ke-trends .live-trends-filters,.ke-trends .live-trends-filters.has-conference{padding:10px;border-top:1px solid var(--ke-hairline)}
  .ke-trends .live-trends-filters label,.ke-trends .live-trends-filters label.team-filter,.ke-trends .live-trends-filters label.conference-filter{flex:1 1 100%;max-width:none}
  .ke-trends .live-trends-filters button{flex:1}
  .ke-trends .movement-legend{gap:6px 12px;font-size:11.5px}
  .ke-trends .movement-legend-note{flex-basis:100%}
  .ke-trends .movement-legend-splits{margin-left:0}
  .ke-trends .ke-movers-list{display:flex;gap:10px;margin:0 -16px;padding:0 16px 4px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .ke-trends .ke-movers-list::-webkit-scrollbar{display:none}
  .ke-trends .ke-movers-list li{flex:0 0 78%;scroll-snap-align:start}
  .ke-trends .trend-game-head{padding:12px 12px 10px}
  .ke-trends .trend-matchup-identity{gap:8px}
  .ke-trends .trend-matchup-identity .ke-asset-large{width:36px;height:36px;border-radius:11px}
  .ke-trends .trend-matchup-identity strong{font-size:14px}
  .ke-trends .trend-matchup-team{gap:8px}
  .ke-trends .ke-trend-markets{padding:10px 10px 2px}
  .ke-trends .trend-source-grid{grid-template-columns:1fr}
  .ke-trends .pagination{flex-direction:column;align-items:flex-start}
}
@media(max-width:390px){
  .ke-trends .trend-matchup-identity small{display:none}
  .ke-trends .trend-matchup-identity strong{font-size:13px}
  .ke-trends .trend-matchup-identity .ke-asset-large{width:32px;height:32px}
  .ke-trends .ke-trend-fresh{margin-left:0}
}
@media(prefers-reduced-motion:reduce){
  .ke-trends .ke-live-pill i::after{animation:none}
  .ke-trends .trend-game-card,.ke-trends .ke-mover,.ke-trends .trend-source-panel>summary span{transition:none}
  .ke-trends .ke-mover:hover{transform:none}
}

/* Calmer board (Alok, 2026-10-01: "too cluttered, not readable").
   One surface per card: markets are columns split by hairlines, not boxes
   inside boxes. Each side is two short lines -- the live number with its
   move, then where it started. Prices, history and source live in the
   card's drawer; Bet % / Money % are one coloured line keyed by the legend. */
.ke-trends .trend-game-list{gap:16px}
.ke-trends .trend-game-card{border-radius:18px;background:#0a0a0c}
.ke-trends .trend-game-head{gap:10px;padding:14px 18px 10px;border-bottom:0}
.ke-trends .trend-matchup-identity small{display:none}
.ke-trends .trend-matchup-identity strong{font-size:15px}
.ke-trends .trend-matchup-identity .ke-asset-large{width:34px;height:34px;border-radius:10px}
.ke-trends .ke-trend-markets{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:0 6px 4px}
.ke-trends .trend-market-group{padding:0 12px;border:0;border-radius:0;background:none}
.ke-trends .trend-market-group+.trend-market-group{border-left:1px solid var(--ke-hairline)}
.ke-trends .trend-market-title{min-height:0;padding:8px 0 2px}
.ke-trends .trend-market-title span{color:var(--ke-text-3);font-size:10.5px;font-weight:700}
.ke-trends .trend-market-title small{display:none}
.ke-trends .trend-market-row{grid-template-columns:24px minmax(0,1fr) minmax(0,1fr) auto;grid-template-areas:"sel live live diff" "sel ref ref ref";gap:0 10px;padding:8px 0;border:0;background:none}
.ke-trends .trend-market-row:hover{background:none}
.ke-trends .trend-team-selection .ke-asset-compact,.ke-trends .trend-ou-mark{width:22px;height:22px}
.ke-trends .trend-ou-mark{flex-basis:22px;border-radius:6px;font-size:10px}
.ke-trends .trend-live strong{font-size:17px}
.ke-trends .trend-live span{display:none}
.ke-trends .trend-reference small{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ke-trends .trend-reference[data-label="First tracked"]::before{color:var(--ke-text-3);font-size:11px;font-weight:500;content:"from";content:"from" / ""}
.ke-trends .trend-reference[data-label="Open"]::before{color:var(--ke-text-3);font-size:11px;font-weight:500;content:"open";content:"open" / ""}
.ke-trends .trend-reference strong{color:var(--ke-text-3);font-size:11.5px;font-weight:500}
.ke-trends .trend-diff{padding:2px 8px;border-color:transparent}
.ke-trends .trend-diff strong{font-size:12px}
.ke-trends .magnitude-large .trend-diff.direction-higher,.ke-trends .magnitude-large .trend-diff.direction-lower{box-shadow:none}
.ke-trends .trend-market-row.is-unavailable{grid-template-areas:"sel sel sel sel"}
.ke-trends .trend-market-row:has(.trend-bets){grid-template-columns:24px minmax(0,1fr) minmax(0,1fr) auto;grid-template-areas:"sel live live diff" "sel ref ref ref" "sel bets money money"}
.ke-trends .trend-split{gap:0;margin-top:3px}
.ke-trends .trend-split small,.ke-trends .split-meter,.ke-trends .trend-signal,.ke-trends .split-unavailable{display:none}
.ke-trends .trend-split strong{font-size:11.5px;font-weight:600}
.ke-trends .movement-legend-bets::before{background:var(--kt-bets)}
.ke-trends .movement-legend-money::before{background:var(--kt-money)}
.ke-trends .trend-source-panel{margin-top:4px}
.ke-trends .trend-source-panel>summary{min-height:38px;color:var(--ke-text-3);font-size:12px;font-weight:600}
@media(max-width:760px){
  .ke-trends .ke-trend-markets{grid-template-columns:1fr;padding:0 4px 4px}
  .ke-trends .trend-market-group+.trend-market-group{border-top:1px solid var(--ke-hairline);border-left:0}
  .ke-trends .trend-market-row{grid-template-areas:"sel live live diff" "sel ref ref diff"}
  .ke-trends .trend-market-row:has(.trend-bets){grid-template-columns:24px minmax(0,1fr) auto auto auto;grid-template-areas:"sel live bets money diff" "sel ref bets money diff"}
}

/* Light glow lines on every card (Alok, 2026-10-01: "glow should be light").
   A soft teal line along the top edge, and a faint light that travels the
   border once every few seconds, staggered so the grid never pulses together. */
@property --kt-angle{syntax:"<angle>";initial-value:0deg;inherits:false}
@keyframes kt-orbit{to{--kt-angle:360deg}}
.ke-trends .trend-game-card{isolation:isolate}
.ke-trends .trend-game-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-trends .trend-game-card::after{content:"";position:absolute;inset:0;z-index:1;padding:1px;border-radius:inherit;background:conic-gradient(from var(--kt-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:kt-orbit 9s linear infinite;pointer-events:none}
.ke-trends .trend-game-card:nth-child(2n)::after{animation-delay:-3s}
.ke-trends .trend-game-card:nth-child(3n)::after{animation-delay:-6s}
.ke-trends .trend-game-card:hover::before{opacity:.8}
.ke-trends .ke-mover::after{content:"";position:absolute;top:0;left:18%;right:18%;height:1px;background:linear-gradient(90deg,transparent,#2dfce6,transparent);opacity:.4;pointer-events:none}
@media(prefers-reduced-motion:reduce){.ke-trends .trend-game-card::after{animation:none;opacity:.5}}
/* Market names read the same in every column: bold white, as Moneyline already did. */
.ke-trends .trend-market-group .trend-market-title span{color:#fff;font-weight:800}
/* DraftKings' own icon in place of the green "DK" text tile (2026-10-03). */
.ke-trends .ke-dk-mark.has-logo,.ke-trends .trend-game-source i.has-logo{width:22px;height:22px;padding:0;border-radius:6px;background:transparent;overflow:hidden;box-shadow:0 0 0 1px #ffffff14}
.ke-trends .ke-dk-mark.has-logo img,.ke-trends .trend-game-source i.has-logo img{display:block;width:100%;height:100%;object-fit:cover}

/* ---------------------------------------------------------------------------
   Board layout (2026-10-06): fixtures rail | one game's markets as a table |
   status + largest moves. Same data and cells as the cards above; this block
   only re-lays them out. Scoped to .ke-tb so it wins every tie above.
   ------------------------------------------------------------------------- */
.ke-trends{padding-top:24px!important}
.ke-trends .ke-trends-hero{display:flex!important;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 14px!important;padding:0!important}
.ke-trends .ke-trends-hero h1{margin:4px 0 0;font-size:clamp(28px,3.2vw,40px);line-height:1.05}
.ke-trends .ke-trends-hero .lede{max-width:640px;margin:8px 0 0;color:var(--ke-text-2);font-size:14px;line-height:1.5}
.ke-trends .ke-trends-toolbar{margin:0 0 16px}
.ke-trends .live-trends-filter-panel:not([open]){flex:0 0 auto}
.ke-trends .live-trends-filter-panel:not([open])>summary{border-radius:999px}

.ke-tb{display:grid;grid-template-columns:260px minmax(0,1fr) 300px;gap:16px;align-items:start}
.ke-tb .ke-tb-panel,.ke-tb .ke-tb-fixtures{border:1px solid var(--ke-hairline);border-radius:16px;background:linear-gradient(180deg,#0f1013 0%,#0a0a0c 100%)}
.ke-tb .ke-tb-rail-head{display:flex;align-items:baseline;justify-content:space-between;padding:14px 16px 10px}
.ke-tb .ke-tb-rail-head h2{margin:0;font-family:var(--ke-display);font-size:15px;font-weight:700;letter-spacing:0}
.ke-tb .ke-tb-rail-head small{color:var(--ke-text-3);font-size:12px}

/* Fixtures rail */
.ke-tb .ke-tb-fixtures{position:sticky;top:84px;max-height:calc(100vh - 100px);display:flex;flex-direction:column;overflow:hidden}
.ke-tb .ke-tb-fix-list{display:grid;gap:8px;padding:0 10px 12px;overflow-y:auto;scrollbar-width:thin}
.ke-tb .ke-tb-fix{display:grid;gap:6px;padding:11px 12px;border:1px solid var(--ke-hairline);border-radius:12px;background:#0c0d10;color:var(--ke-text);text-decoration:none;transition:border-color .15s,background .15s}
.ke-tb .ke-tb-fix:hover{border-color:var(--ke-hairline-strong);background:#121317}
.ke-tb .ke-tb-fix.is-active{border-color:#31fbb766;background:linear-gradient(180deg,#31fbb70f,#0c0d10);box-shadow:inset 3px 0 0 var(--ke-mint)}
.ke-tb .ke-tb-fix time{color:var(--ke-text-3);font-size:11px;font-weight:600;letter-spacing:.02em}
.ke-tb .ke-tb-fix-team{display:flex;align-items:center;gap:8px;min-width:0}
.ke-tb .ke-tb-fix-team b{overflow:hidden;font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.ke-tb .ke-tb-fix-team .ke-asset{flex:none;width:22px;height:22px}
.ke-tb .ke-tb-fix-moved{color:var(--ke-text-3);font-size:11px}
.ke-tb .ke-tb-fix-moved.has-moves{color:var(--ke-mint)}
.ke-tb .ke-tb-fix-all strong{font-size:13px}
.ke-tb .ke-tb-fix-all small{color:var(--ke-text-3);font-size:11px}
.ke-tb:not(.is-enhanced) .ke-tb-fix-all{display:none}

/* Center: games as tables */
.ke-tb .ke-tb-main{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;min-width:0}
.ke-tb.is-enhanced .trend-game-card:not(.is-active){display:none}
.ke-tb .trend-game-card{border-radius:16px}
.ke-tb .trend-game-head{padding:14px 18px 12px!important;border-bottom:1px solid var(--ke-hairline)}
.ke-tb .ke-trend-markets{display:block!important;padding:4px 0 6px!important}
.ke-tb .trend-market-group{display:block!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important}
.ke-tb .trend-market-group+.trend-market-group{border-top:1px solid var(--ke-hairline)!important;border-left:0!important}
.ke-tb .trend-market-title{display:flex;padding:12px 18px 2px!important}
.ke-tb .trend-market-title span{color:var(--ke-text);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.ke-tb .trend-market-columns,.ke-tb .trend-market-row{display:grid!important;grid-template-columns:minmax(150px,1.7fr) repeat(3,minmax(70px,1fr));grid-template-areas:"sel ref live diff"!important;align-items:center;gap:0 12px!important;padding:0 18px!important}
.ke-tb .trend-market-group:has(.trend-bets) .trend-market-columns,.ke-tb .trend-market-row:has(.trend-bets){grid-template-columns:minmax(140px,1.5fr) repeat(3,minmax(64px,1fr)) repeat(2,minmax(72px,1fr)) minmax(96px,1.2fr);grid-template-areas:"sel ref live diff bets money signal"!important}
.ke-tb .trend-market-columns{padding-block:6px 4px!important;color:var(--ke-text-3);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.ke-tb .trend-market-columns span:nth-child(1){grid-area:sel}.ke-tb .trend-market-columns span:nth-child(2){grid-area:ref}.ke-tb .trend-market-columns span:nth-child(3){grid-area:live}.ke-tb .trend-market-columns span:nth-child(4){grid-area:diff}
.ke-tb .trend-market-columns span:nth-child(5){grid-area:bets}.ke-tb .trend-market-columns span:nth-child(6){grid-area:money}.ke-tb .trend-market-columns span:nth-child(7){grid-area:signal}
.ke-tb .trend-market-group:not(:has(.trend-bets)) .trend-market-columns span:nth-child(n+5){display:none}
.ke-tb .trend-market-row{min-height:52px;padding-block:8px!important;border:0!important;border-top:1px solid #ffffff0a!important;border-radius:0!important;background:none!important}
.ke-tb .trend-market-row:hover{background:#ffffff05!important}
.ke-tb .trend-selection{grid-area:sel!important;justify-content:flex-start!important;gap:10px!important}
.ke-tb .trend-sel-name,.ke-tb .trend-label-selection strong{overflow:hidden;color:var(--ke-text);font-size:14px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.ke-tb .trend-reference,.ke-tb .trend-live,.ke-tb .trend-diff,.ke-tb .trend-split,.ke-tb .trend-signal{margin:0!important}
.ke-tb .trend-reference{grid-area:ref!important}
.ke-tb .trend-reference::before{display:none!important}
.ke-tb .trend-reference strong{color:var(--ke-text-2);font-size:14px}
.ke-tb .trend-live{grid-area:live!important}
.ke-tb .trend-live strong{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}
.ke-tb .trend-live span{color:var(--ke-text-3);font-size:11.5px}
.ke-tb .trend-diff{grid-area:diff!important;justify-self:start!important}
.ke-tb .trend-split small,.ke-tb .trend-signal small{display:none!important}
.ke-tb .trend-source-panel{border-top:1px solid var(--ke-hairline)}

/* Right rail */
.ke-tb .ke-tb-side{position:sticky;top:84px;display:grid;gap:14px}
.ke-tb .ke-tb-side .ke-trends-live{padding:16px!important;border-radius:16px!important}
.ke-tb .ke-tb-side .ke-trends-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.ke-tb .ke-tb-side .ke-movers{margin:0!important;padding:14px 12px 12px!important}
.ke-tb .ke-tb-side .ke-movers-head{display:grid;gap:2px;margin:0 4px 10px}
.ke-tb .ke-tb-side .ke-movers-head h2{margin:0;font-size:15px}
.ke-tb .ke-tb-side .ke-movers-list{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;margin:0!important;padding:0!important;overflow:visible!important}
.ke-tb .ke-tb-side .ke-movers-list li{flex:none}
.ke-tb .ke-tb-side .movement-legend{display:flex;flex-wrap:wrap;gap:8px 12px;margin:0;padding:14px 16px;font-size:12px}
.ke-tb .ke-tb-side .movement-legend-note{flex-basis:100%;color:var(--ke-text-3)}
.ke-trends .ke-tb-method{margin:28px 0 0;border-top:1px solid var(--ke-hairline)}
.ke-trends .ke-tb-method>summary{padding:14px 0;color:var(--ke-text-2);font-size:13px;font-weight:600;cursor:pointer}
.ke-trends .ke-tb-method .pulse-boundary{margin-top:0}
.ke-trends .live-trends-pagination{margin-top:14px}

@media(max-width:1180px){
  .ke-tb{grid-template-columns:240px minmax(0,1fr)}
  .ke-tb .ke-tb-side{position:static;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}
  .ke-tb .ke-tb-side .movement-legend{grid-column:1/-1}
}
@media(max-width:820px){
  .ke-trends .ke-trends-hero{display:block!important}
  .ke-tb{grid-template-columns:minmax(0,1fr)}
  .ke-tb .ke-tb-fixtures{position:static;max-height:none;border:0;background:none}
  .ke-tb .ke-tb-rail-head{padding:0 2px 8px}
  .ke-tb .ke-tb-fix-list{display:flex;gap:8px;margin:0 -20px;padding:0 20px 4px;scroll-padding-inline:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .ke-tb .ke-tb-fix-list::-webkit-scrollbar{display:none}
  .ke-tb .ke-tb-fix{flex:0 0 200px;scroll-snap-align:start}
  .ke-tb .ke-tb-fix-all{flex-basis:130px}
  .ke-tb .ke-tb-side{grid-template-columns:1fr}
  .ke-tb .trend-market-columns{display:none!important}
  .ke-tb .trend-market-row,.ke-tb .trend-market-row:has(.trend-bets){grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"sel live diff" "sel ref diff" "bets money signal"!important;gap:2px 12px!important;padding:10px 14px!important}
  .ke-tb .trend-market-title{padding:12px 14px 4px!important}
  .ke-tb .trend-reference strong{font-size:12px}
  .ke-tb .trend-reference::before{display:inline!important}
  .ke-tb .trend-split small,.ke-tb .trend-signal small{display:block!important}
}
/* Board toolbar: league tabs + one Filters button; the form opens beneath it. */
.ke-trends .ke-trends-toolbar{padding:0!important;border:0!important;background:none!important;box-shadow:none!important;justify-content:space-between}
.ke-trends .ke-trends-toolbar .live-trends-filter-panel{flex:0 0 auto!important;border:0!important;background:none!important}
.ke-trends .ke-trends-toolbar .live-trends-filter-panel>summary{display:inline-flex!important;align-items:center;gap:8px;min-height:38px;padding:0 16px!important;border:1px solid var(--ke-hairline-strong);border-radius:999px;background:#0c0d10;color:var(--ke-text);font-size:13px;font-weight:600;cursor:pointer;list-style:none}
.ke-trends .ke-trends-toolbar .live-trends-filter-panel>summary::-webkit-details-marker{display:none}
.ke-trends .ke-trends-toolbar .live-trends-filter-panel>summary::before{content:"";width:14px;height:10px;background:linear-gradient(currentColor,currentColor) 0 0/100% 2px no-repeat,linear-gradient(currentColor,currentColor) 50% 4px/70% 2px no-repeat,linear-gradient(currentColor,currentColor) 50% 8px/40% 2px no-repeat;opacity:.8}
.ke-trends .ke-trends-toolbar .live-trends-filter-panel[data-has-active-filters="true"]>summary{border-color:#31fbb766;color:var(--ke-mint)}
.ke-trends .ke-trends-toolbar .live-trends-filter-panel>summary small{display:none}
.ke-trends .ke-trends-toolbar .live-trends-filter-panel[open]{flex:1 1 100%!important;order:3}
.ke-trends .ke-trends-toolbar .live-trends-filter-panel[open]>summary{margin-bottom:10px}
.ke-trends .ke-trends-toolbar .live-trends-filter-panel[open] .live-trends-filters{padding:12px;border:1px solid var(--ke-hairline);border-radius:14px;background:#0a0a0c}
/* Over / Under rows read as words in the table. */
.ke-tb .trend-label-selection>strong{position:static!important;width:auto!important;height:auto!important;margin:0!important;clip:auto!important}
.ke-tb .trend-market-columns{background:none!important;border:0!important}
.ke-tb .ke-tb-side .ke-trends-stats dt{font-size:9.5px;letter-spacing:.08em;white-space:nowrap}
.ke-tb .ke-tb-side .ke-mover-copy small,.ke-tb .ke-tb-side .ke-mover-copy strong{white-space:normal;text-overflow:clip}
.ke-tb .ke-tb-side .ke-mover{padding:10px 12px!important;gap:10px!important}
.ke-tb .ke-tb-side .ke-mover-teams{display:none!important}
.ke-tb .ke-tb-side .ke-mover-copy small{font-size:11px}
.ke-tb .ke-tb-side .ke-mover-copy strong{font-size:14px}
.ke-tb .ke-tb-side .movement-legend-splits{border-radius:10px}
/* AC, 2026-10-07: in the table the Signal column was blank (the card layout hid
   it on purpose) and a moneyline that changed sign ("-130 → +280") spilled its
   grey chip into Bet %. Signal shows; the crossing chip fits and reads clearly. */
.ke-tb .trend-market-group:has(.trend-bets) .trend-market-columns,.ke-tb .trend-market-row:has(.trend-bets){grid-template-columns:minmax(140px,1.4fr) minmax(64px,.8fr) minmax(64px,.8fr) minmax(124px,1.1fr) minmax(64px,.8fr) minmax(64px,.8fr) minmax(130px,1.3fr)}
.ke-tb .trend-market-columns,.ke-tb .trend-market-row{grid-template-columns:minmax(150px,1.6fr) minmax(70px,1fr) minmax(70px,1fr) minmax(124px,1fr)}
.ke-tb .trend-market-columns span{line-height:1.25}
.ke-tb .trend-signal{display:flex!important;flex-direction:column;align-items:flex-start;gap:1px!important}
.ke-tb .trend-signal strong{font-size:12.5px;font-weight:700;line-height:1.2}
.ke-tb .trend-signal>span{color:var(--ke-text-3);font-size:11px}
.ke-tb .trend-split{display:flex!important;flex-direction:column;gap:4px!important}
.ke-tb .split-meter{display:block!important;width:100%;max-width:64px;height:3px;border-radius:2px;background:#ffffff14;overflow:hidden}
.ke-tb .split-meter b{display:block;width:var(--split);height:100%;background:currentColor}
.ke-tb .split-meter-bets{color:var(--kt-bets)}.ke-tb .split-meter-money{color:var(--kt-money)}
.ke-tb .trend-diff{max-width:100%;white-space:nowrap}
.ke-tb .trend-diff.direction-sign-crossing{color:var(--ke-text)!important;border-color:var(--ke-hairline-strong)!important;background:#ffffff0d!important}
.ke-tb .trend-diff.direction-sign-crossing strong{color:var(--ke-text);font-size:12px}
/* Filters always on the page, and the pager always in reach (2026-10-17, Alok:
   "they shouldn't have to click this function (for all sports)" and "can those
   buttons stay on the bottom of the page the whole time"). Phones keep the team
   search on the page and open the rest as a sheet (static/mobile_app.js). */
.ke-trends .ke-trends-toolbar .live-trends-filter-panel>summary{display:none!important}
.ke-trends .ke-trends-toolbar .live-trends-filter-panel{flex:1 1 100%!important;order:3}
.ke-trends .ke-trends-toolbar .live-trends-filter-panel .live-trends-filters{justify-content:flex-start;padding:12px;border:1px solid var(--ke-hairline);border-radius:14px;background:#0a0a0c}
.ke-trends .live-trends-pagination.has-pages{position:sticky;bottom:16px;z-index:30;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:14px;
  max-width:620px;margin:16px auto 0;padding:8px 8px 8px 20px;border:1px solid var(--ke-hairline-strong);border-radius:999px;background:rgba(10,11,13,.88);
  -webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);box-shadow:0 18px 44px #000000b3;color:var(--ke-text-2);font-size:13px}
.ke-trends .live-trends-pagination.has-pages>span{min-width:0}
.ke-trends .live-trends-pagination.has-pages>div{display:flex;flex:none;gap:8px}
.ke-trends .live-trends-pagination.has-pages a{display:inline-flex;align-items:center;min-height:40px;padding:0 18px;border:1px solid var(--ke-hairline-strong);border-radius:999px;
  background:#ffffff0a;color:#fff;font-size:13.5px;font-weight:700;text-decoration:none}
.ke-trends .live-trends-pagination.has-pages a[rel=next]{border-color:#fff;background:#fff;color:#000}

/* 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}
}
