/* MatchPoint · the Home A look across the whole app (6 Nov, Joshua: "based on this new style direction, update the whole app").
   Source: Joshua's Figma HOME (node 186:1762) built as home11/a.html, with his own Aa-panel settings. Only on html.va (kids.js VA; ?look=r4 = the 4 Nov look). */
html.va{--va-bdC:2.5px;--va-wLbl:800;--va-wTtl:700;--va-wBtn:800;--va-lbl:14.1px;--va-ttl:20.2px;--va-btn:14.1px;--va-tag:12.1px;
  --va-p1:#4821A3;--va-p2:#612DAA;--va-blue:#00ACE6;--va-ink:#191919;--va-line:#E5E5E5}

/* ---------- Home ---------- */
html.va #app[data-tab=home] .bar,html.va #app[data-tab=home] .bar-sp{display:none!important}
html.va #app[data-tab=home] .scroll{background:linear-gradient(180deg,var(--va-p1) 0,var(--va-p2) 300px,#fff 301px)!important;padding:0!important}
.va-home{position:relative;font-family:Nunito,system-ui,sans-serif;padding-bottom:24px}
.va-hero{position:relative;height:285px;overflow:hidden}
.va-hero::before{content:"";position:absolute;left:177px;top:64px;width:395px;height:324px;background:url(assets/va/trophy.webp) center/cover;opacity:.05;mix-blend-mode:luminosity}
.va-carlos{position:absolute;left:106.7px;top:40px;width:304.5px;height:407.9px;object-fit:cover;pointer-events:none}
.va-hi{position:absolute;left:26.7px;top:83px;margin:0;color:#fff;font-weight:800;font-size:23px;line-height:1.22;letter-spacing:-.42px}
.va-sub{position:absolute;left:27.6px;top:117px;width:153px;margin:0;color:rgba(255,255,255,.9);font-weight:600;font-size:14.6px;line-height:1.42;letter-spacing:-.27px}
.va-cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-width:108.7px;height:32.9px;padding:0 14px;border:0;border-radius:11.3px;color:#fff;
  font:var(--va-wBtn) var(--va-btn)/1 Nunito,system-ui,sans-serif;cursor:pointer;white-space:nowrap;transition:transform .08s}
.va-cta:active{transform:translateY(1.5px)}
.va-ch{width:3.3px;height:6.8px;transform:rotate(180deg);overflow:visible}
.va-hdr{position:absolute;left:26.7px;top:169.6px;min-width:131.8px;height:31.6px;background:#5929A7;border:2.25px solid #fff;box-shadow:0 2.2px 0 #fff}
.va-or{background:#FC9B00;box-shadow:0 2.65px 0 #DC8000}
.va-bl{background:#00B3FC;box-shadow:0 2.65px 0 #009CDC;min-width:100.9px}
.va-chips{position:absolute;left:27.6px;top:218px;display:flex;align-items:center;gap:4px}
.va-bell{width:23.9px;height:23.9px;padding:0;margin-right:3.8px;border:0;background:none;cursor:pointer}.va-bell img{width:100%;height:100%;display:block}
.va-chip{display:flex;align-items:center;gap:4px;height:23px;min-width:35.1px;padding:0 8px 0 5.5px;border:0;border-radius:9.7px;background:rgba(255,255,255,.11);
  color:rgba(255,255,255,.9);font:600 10px/1 Nunito,system-ui,sans-serif;letter-spacing:-.2px;font-variant-numeric:tabular-nums;cursor:pointer}
.va-chip img{width:11px;height:11px;object-fit:contain}.va-xp{min-width:41.7px}
.va-sheet{position:relative;margin-top:-22px;background:#fff;border-radius:22px 22px 0 0;padding:23.2px 0 0;z-index:1}
.va-lbl{display:block;color:var(--va-blue);font-weight:var(--va-wLbl);font-size:var(--va-lbl);line-height:1.85;letter-spacing:-.27px}
.va-ttl{display:block;color:var(--va-ink);font-weight:var(--va-wTtl);font-size:var(--va-ttl);line-height:1.17;letter-spacing:-.38px}
.va-next{position:relative;margin:0 15.5px;height:184.6px;border-radius:17.9px;background:#FFF5D7;border:1.77px solid rgba(255,255,255,.2)}
.va-next .va-pill{position:absolute;left:18.5px;top:14.4px;display:flex;align-items:center;gap:6px;height:24px;min-width:138.3px;padding:0 10px;border-radius:6.8px;background:#FEEDBC;
  color:#A78C39;font:italic 600 var(--va-tag)/1 Nunito,system-ui,sans-serif;letter-spacing:-.18px;white-space:nowrap}
.va-pill img{width:9px;height:9px}
.va-next .va-lbl{position:absolute;left:23.8px;top:56px;color:#A78C39}
.va-next .va-ttl{position:absolute;left:23.8px;top:82.6px;line-height:.93;max-width:170px}
.va-next .va-cta{position:absolute;left:23.8px;top:119.9px}
.va-kip{position:absolute;left:191.7px;top:11.7px;width:148.6px;height:148.6px;object-fit:contain;filter:drop-shadow(0 10px 6px rgba(0,0,0,.04))}
.va-card{position:relative;margin:21.5px 18.1px 0 17.9px;border:var(--va-bdC) solid var(--va-line);border-radius:17.7px;background:#fff}
.va-tip{min-height:177.3px}
.va-tip .tod-b{display:block;width:100%;min-height:172px;padding:23px 0 22px 21.4px;border:0;background:none;text-align:left;cursor:pointer;font:inherit;position:relative;z-index:1}
.va-tip .va-ttl{width:200px;margin-top:3px}
.va-tip .va-cta{margin-top:15px}
.va-badge{position:absolute;left:201.4px;top:16.5px;width:139.6px;height:139.6px;object-fit:contain;transform:scaleX(-1);pointer-events:none}
.va-f{display:grid;grid-template-columns:1fr 82px;gap:12px;align-items:center;min-height:157px;padding:40px 12px 30px 20px}
.va-f .va-tx{align-self:start;min-width:0}.va-f .va-ttl{margin-top:3px;overflow-wrap:anywhere}
.va-pic{width:80px;height:80px;object-fit:contain}
.va-ed{position:absolute;right:13.7px;top:13.7px;width:22.7px;height:22.7px;padding:0;border:0;background:none;cursor:pointer}.va-ed img{width:100%;height:100%;display:block}
/* the tip card rides on the tip sheet's .tod.t4 hooks (tipsheet.js): drop the old purple card look */
html.va .va-tip.tod{background:#fff!important;box-shadow:none!important;border:var(--va-bdC) solid var(--va-line)!important;border-radius:17.7px!important;color:var(--va-ink)!important;overflow:visible!important;padding:0!important}
html.va .va-tip.tod::before,html.va .va-tip.tod::after{display:none!important}
html.va .va-tip .tod-b{background:none!important;box-shadow:none!important;color:inherit!important}
html.va .va-tip .va-lbl{color:var(--va-blue)!important}html.va .va-tip .va-ttl{color:var(--va-ink)!important}

/* ---------- tab bar (Home A: white, 2px line, glossy icons, light-blue tile on the open tab) ---------- */
html.va .tabs{background:#fff!important;border-top:2px solid #EAEAEA!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;height:63px!important;padding:0 14px!important;border-radius:0!important}
html.va .tabs button{position:relative;display:flex!important;align-items:center;justify-content:center;background:none!important;box-shadow:none!important}
html.va .tabs button::before,html.va .tabs button::after{display:none!important}
html.va .tabs .tl{display:none!important}
html.va .tabs .ti{position:relative;display:flex!important;align-items:center;justify-content:center;width:44.8px!important;height:44.8px!important;border-radius:14.6px;background:none!important;transform:none!important}
html.va .tabs .ti img{width:33px!important;height:33px!important;object-fit:contain;filter:grayscale(1);opacity:.71;transform:none!important}
html.va .tabs button.on .ti{background:rgba(0,172,230,.17)!important}
html.va .tabs button.on .ti img{filter:none;opacity:1}

/* ---------- other tabs: Home A's purple header band with a white title, then the white sheet ---------- */
html.va #app:not([data-tab=home]):not([data-tab=path]) .bar{display:none!important}
html.va #app:not([data-tab=home]):not([data-tab=path]) .bar-sp{height:0!important}
html.va #app:not([data-tab=home]):not([data-tab=path]) .scroll{padding-top:0!important}
html.va #app:is([data-tab=mine],[data-tab=match],[data-tab=me]) .scroll{background:linear-gradient(180deg,var(--va-p1) 0,var(--va-p1) 60px,#fff 61px)!important}
html.va #app:not([data-tab=home]):not([data-tab=path]) .mt-h{position:relative;margin:0 -16px 0!important;padding:62px 26px 46px!important;background:linear-gradient(180deg,var(--va-p1) 0,var(--va-p2) 100%)!important;
  color:#fff!important;font:800 23px/1.22 Nunito,system-ui,sans-serif!important;letter-spacing:-.42px!important;text-align:left!important}
html.va #app:not([data-tab=home]):not([data-tab=path]) .mt-h::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:22px;background:#fff;border-radius:22px 22px 0 0}

/* ---------- cards everywhere: white, 2.5px light-grey line, 17.7px corners, no shadow (Home A's Tip / Focus cards) ---------- */
html.va .jn-week,html.va .jn-row,html.va .jn-quick>*,html.va .mr-list,html.va .mr-pr,html.va .pf-tro,html.va .tkrow,html.va .pf-games,html.va .prog2,html.va .rv,html.va .grown,
html.va .m6-ask,html.va .m5-t,html.va .stk,html.va .evc,html.va .pf-stats>*{background:#fff!important;border:var(--va-bdC) solid var(--va-line)!important;border-radius:17.7px!important;box-shadow:none!important}
html.va .mr-list .mr-pr{border:0!important;border-radius:0!important}
html.va .mr-list .mr-pr+.mr-pr{border-top:2px solid #F0F0F0!important}
/* section headings + small kickers: Home A's blue label (sentence case) and ink titles */
html.va .jn-h,html.va .m4-sec h3,html.va .m4-sec h2,html.va .pf-gh b,html.va .sec{color:var(--va-ink)!important;font-weight:800!important;letter-spacing:-.3px!important}
html.va .m6-top small,html.va .m5-t small,html.va .pf-gh small{text-transform:none!important;letter-spacing:-.2px!important;font-weight:800!important;font-size:13px!important;color:var(--va-blue)!important}
/* Match: the green Carlos hero and the orange / purple tiles become Home A cards (cream feature card + white cards) */
html.va .m6-top{background:#FFF5D7!important;color:var(--va-ink)!important;border-radius:15px 15px 0 0!important}
html.va .m6-top small{color:#A78C39!important}html.va .m6-top b,html.va .m6-top h2,html.va .m6-top h3{color:var(--va-ink)!important}
html.va .m6-in{background:#F7F7FB!important;border:2px solid #EDEDF3!important}
html.va .m5-t,html.va .m5-t *{color:var(--va-ink)}html.va .m5-t b{color:var(--va-ink)!important}html.va .m5-t span{color:#6B6880!important}
/* Profile: the blue card becomes the purple Home A hero, Switch is the outlined header button */
html.va .pf{background:linear-gradient(180deg,var(--va-p1),var(--va-p2))!important;box-shadow:none!important;border-radius:17.9px!important}
html.va .pf-sw{background:#5929A7!important;border:2.25px solid #fff!important;box-shadow:0 2.2px 0 #fff!important;border-radius:11.3px!important;font-weight:800!important}
html.va .pf-stats>*{color:var(--va-ink)!important}
html.va .b3.sm.white{background:#fff!important;border:2.5px solid var(--va-line)!important;border-radius:11.3px!important;box-shadow:none!important}
/* trophy cabinet (opens from Profile): the purple band holds Back + the title, white sheet below */
html.va #app[data-tab=rewards] .scroll{background:linear-gradient(180deg,var(--va-p1) 0,var(--va-p2) 195px,#fff 196px)!important}
html.va .cab-back{color:rgba(255,255,255,.9)!important;margin-top:48px!important;font-weight:800!important}
html.va #app[data-tab=rewards] .cab:first-of-type>h2{color:#fff!important;font:800 23px/1.22 Nunito,system-ui,sans-serif!important;letter-spacing:-.42px!important}
html.va #app[data-tab=rewards] .cab:first-of-type>p{color:rgba(255,255,255,.9)!important;margin-bottom:34px!important}
html.va #app[data-tab=rewards] .cab:first-of-type>.shelf{position:relative}
html.va .evcab h2{color:var(--va-ink)!important;font-weight:800!important;font-size:20px!important}
html.va .m5-t.o,html.va .m5-t.p{background:#fff!important;background-image:none!important}
/* Journey: the map stays its own world; its bottom card is a Home A card with the orange Continue-style button */
html.va .j3next{border:var(--va-bdC) solid var(--va-line)!important;border-radius:17.7px!important;box-shadow:0 10px 30px -14px rgba(40,20,90,.25)!important}
html.va #app .j3next button.b3{background:#FC9B00!important;box-shadow:0 2.65px 0 #DC8000!important;border-radius:11.3px!important;font-weight:800!important;color:#fff!important}
html.va .j3next small{color:#A78C39!important;text-transform:none!important;letter-spacing:-.2px!important}
/* trophy cabinet title on the band (the cabinet's own h2 rule is more specific) */
html.va #app[data-tab=rewards] .scroll .cab:first-of-type>h2,html.va #app[data-tab=rewards] .scroll .cab:first-of-type>p{color:#fff!important}
html.va #app[data-tab=rewards] .scroll .cab:first-of-type>p{opacity:.9}
/* sheets: Tip of the day gets Home A's purple hero; buttons + choice rows use the Home A button and card */
html.va .tsh-hero{background:linear-gradient(180deg,var(--va-p1) 0,var(--va-p2) 100%)!important}
html.va .tsh-btn{border-radius:11.3px!important;font-weight:800!important;box-shadow:0 2.65px 0 #DC8000!important;background:#FC9B00!important;color:#fff!important}
html.va .tsh-btn.ghost{background:#fff!important;color:var(--va-ink)!important;border:2.5px solid var(--va-line)!important;box-shadow:none!important}
html.va .mr-ch button{background:#fff!important;border:var(--va-bdC) solid var(--va-line)!important;border-radius:17.7px!important;box-shadow:none!important}
html.va .mr-btn{background:#FC9B00!important;box-shadow:0 2.65px 0 #DC8000!important;border-radius:11.3px!important;color:#fff!important;font-weight:800!important}
html.va .mr-btn.ghost{background:#fff!important;color:var(--va-ink)!important;border:2.5px solid var(--va-line)!important;box-shadow:none!important}
html.va .mr-step{color:var(--va-blue)!important;text-transform:none!important;letter-spacing:-.2px!important}
/* the trophy cabinet's first .cab follows the Back link */
html.va #app[data-tab=rewards] .cab-back+.cab>h2,html.va #app[data-tab=rewards] .cab-back+.cab>p{color:#fff!important}
/* the app's main button (.b3: lesson Next, setup, sheets) = Home A's blue button; .white/.ghost = white with the card line */
html.va #app .b3:not(.white):not(.ghost):not(.sm),html.va .sheet .b3:not(.white):not(.ghost):not(.sm),html.va .b3:not(.white):not(.ghost):not(.sm){background:#00B3FC!important;box-shadow:0 3.5px 0 #009CDC!important;border-radius:14px!important;color:#fff!important;font-weight:800!important}
html.va .b3.ghost{border-radius:14px!important}
/* Switch player: the player's own circle instead of a letter */
html.va .avs.va-av{background:none!important;padding:0!important;overflow:hidden}html.va .avs.va-av img{width:100%;height:100%;object-fit:cover;display:block}
html.va .who-l button{border:var(--va-bdC) solid var(--va-line)!important;border-radius:17.7px!important;box-shadow:none!important;background:#fff!important}
html.va .who-l button.on{border-color:#00ACE6!important;background:#F0FAFE!important}
/* the design-system button colour (ds.css reads these): Home A blue instead of green */
html.va.duo3,html.va.pm2{--ds-btn-bg:#00B3FC;--ds-btn-edge:0 3.5px 0 #009CDC}
html.va #app:is([data-tab=mine],[data-tab=match],[data-tab=me],[data-tab=rewards]),html.va #app[data-tab=home]{background:var(--va-p1)!important}
/* Match hero = Home A's Next Lesson card: cream, no court lines, the gold pill, the new Carlos (coach-*.webp = carlos2 poses, 6 Nov) */
html.va .m6-top .m5-court{display:none!important}
html.va .m6-top small{display:inline-flex!important;align-items:center;height:24px;padding:0 10px!important;border-radius:6.8px!important;background:#FEEDBC!important;color:#A78C39!important;
  font:italic 600 12.1px/1 Nunito,system-ui,sans-serif!important;letter-spacing:-.18px!important}
html.va .m6-top h3{font-weight:700!important;font-size:20.2px!important;line-height:1.17!important;letter-spacing:-.38px!important;color:var(--va-ink)!important}
html.va .m6-top img{object-fit:contain!important;object-position:bottom right!important}
/* Journey, 6 Nov: Duolingo-style section banner per Slam (sticks while you scroll its road) + a topic line where each 10-lesson topic starts + a label under every stop */
.j-sec{position:sticky;top:8px;z-index:6;margin:12px 66px 0 12px;padding:11px 14px;border-radius:16px;background:var(--sc,#7A3FE0);color:#fff;display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:10px;box-shadow:0 3px 0 rgba(0,0,0,.14)}
.j-sec small{grid-column:1;font:800 12px/1.2 Nunito,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;opacity:.85}
.j-sec b{grid-column:1;font:800 19px/1.2 Nunito,system-ui,sans-serif;letter-spacing:-.2px}
.j-sec span{display:none;grid-column:2;grid-row:1/3;padding:6px 10px;border-radius:10px;border:2px solid rgba(255,255,255,.55);font:800 12px/1 Nunito,system-ui,sans-serif;white-space:nowrap}
.j-topic{position:absolute;left:14px;right:14px;z-index:2;display:flex;align-items:center;gap:10px;pointer-events:none}
.j-topic::before,.j-topic::after{content:"";flex:1;height:2px;border-radius:2px;background:rgba(27,34,54,.16)}
.j-topic span{max-width:70%;padding:4px 12px;border-radius:999px;background:rgba(255,255,255,.92);color:#4B4B4B;font:800 14px/1.25 Nunito,system-ui,sans-serif;text-align:center}
#app .node .j3ev.ls{background:#fff;color:#1B2236;font-size:11.5px;padding:3px 9px 3px 7px}
#app .node .j3ev.ls svg{width:12px;height:12px;color:#00ACE6;filter:none}
#app .node .j3ev.gm{background:#7A3FE0;color:#fff;font-size:11.5px;padding:3px 10px 3px 8px}
#app .node .j3ev.gm svg{width:13px;height:13px;color:#fff;filter:none}
#app .node.lock .j3ev.ls,#app .node.lock .j3ev.gm{opacity:.8}
/* lesson progress bar: the drawn seams read as a white stripe (6 Nov) → the real 3D ball from the Journey */
html.va .flow .pb i::after{left:auto!important;right:-13px!important;width:26px!important;height:26px!important;margin-top:-13px!important;border-radius:0!important;box-shadow:none!important;
  background:url(assets/steps/ball-yellow2.webp) center/contain no-repeat!important;filter:drop-shadow(0 1.5px 1px rgba(0,0,0,.18))}
/* lesson sheet: the coach sits in a rounded tile, cropped to head + shoulders, instead of spilling out of it */
html.va .sh-h .chs.shc{position:relative;width:64px!important;height:64px!important;margin:0 4px 0 0!important;border-radius:18px!important;background:#E6F6FE!important;box-shadow:inset 0 0 0 2px #D5EEFB!important;overflow:hidden!important;flex:none}
html.va .sh-h .chs.shc img{position:absolute!important;left:50%!important;top:7%!important;width:118%!important;height:auto!important;max-width:none!important;transform:translateX(-50%)!important;object-fit:contain}
/* the stop just before yours drops its label, so the START bubble has room */
.path .nrow:has(+ .nrow .node.cur) .j3ev.ls,.path .nrow:has(+ .nrow .node.cur) .j3ev.gm{display:none}
/* Test out + placement (7 Nov): Green and Yellow let players who know a topic skip it */
.j-tout{pointer-events:auto}
.j-tout{display:inline-flex;align-items:center;gap:4px;flex:none;padding:4px 10px;border:2px solid #E2D8FF;border-radius:999px;background:#fff;color:#6A3DF0;font:900 12px/1.2 Nunito,system-ui,sans-serif;cursor:pointer}
.j-tout svg{width:13px;height:13px}
.j-place{display:flex;align-items:center;gap:12px;width:calc(100% - 24px);margin:10px 12px 0;padding:12px 14px;border:2.5px solid #E2D8FF;border-radius:18px;background:#F6F2FF;color:#1A1D2B;text-align:left;cursor:pointer;position:relative;z-index:3}
.j-place>svg{width:24px;height:24px;color:#6A3DF0;flex:none}.j-place>svg:last-child{width:16px;height:16px;margin-left:auto}
.j-place span{display:flex;flex-direction:column}.j-place b{font:900 15px/1.2 Nunito,system-ui,sans-serif}.j-place small{font:700 12.5px/1.3 Nunito,system-ui,sans-serif;color:#5B5F72}
.tryc-adv{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:#F6F2FF;color:#3B3F52;font:700 13.5px/1.4 Nunito,system-ui,sans-serif}.tryc-adv b{display:block;color:#6A3DF0;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px}
/* Match recap (7 Nov): "Played recently? Let's analyse your last match" at the top of Match, the walkthrough and the performance page */
.rc-top{display:flex;align-items:center;gap:12px;width:100%;margin:4px 0 14px;padding:14px 16px;border:2.5px solid #E2D8FF;border-radius:20px;background:linear-gradient(135deg,#F6F2FF,#fff);text-align:left;cursor:pointer;color:#1A1D2B}
.rc-top img{width:52px;height:52px;object-fit:contain;flex:none}.rc-top span{display:flex;flex-direction:column;flex:1;min-width:0}
.rc-top small{font:900 11.5px/1.2 Nunito,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#6A3DF0}
.rc-top b{font:900 17px/1.25 Nunito,system-ui,sans-serif;margin:2px 0}.rc-top em{font:700 12.5px/1.3 Nunito,system-ui,sans-serif;font-style:normal;color:#6B6F80}.rc-top>svg{width:18px;height:18px;color:#6A3DF0;flex:none}
.rc-dots{display:flex;gap:6px;margin:4px 0 18px}.rc-dots i{flex:1;height:6px;border-radius:6px;background:#ECEAF3}.rc-dots i.on{background:#6A3DF0}
.rc-k{margin:0 0 4px;font:900 12px/1.2 Nunito,system-ui,sans-serif;letter-spacing:.07em;text-transform:uppercase;color:#6A3DF0}
.rc-two{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}
.rc-res{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 10px;border:2.5px solid #E5E5E5;border-radius:18px;background:#fff;font:900 17px Nunito,system-ui,sans-serif;color:#1A1D2B;cursor:pointer}
.rc-res img{width:64px;height:64px;object-fit:contain}.rc-res.on{border-color:#6A3DF0;background:#F6F2FF;box-shadow:0 0 0 3px rgba(106,61,240,.15)}
.rc-l{display:block;margin:12px 0 0;font:800 14px Nunito,system-ui,sans-serif;color:#1A1D2B}.rc-l small{color:#9A9DAD;font-weight:700}
.rc-in{display:block;width:100%;margin-top:6px;padding:13px 14px;border:2.5px solid #E5E5E5;border-radius:14px;font:700 16px Nunito,system-ui,sans-serif;color:#1A1D2B;background:#fff;box-sizing:border-box}
.rc-in:focus{outline:none;border-color:#6A3DF0}
.rc-opts{display:flex;flex-direction:column;gap:10px;margin-top:16px}.rc-opts.row{flex-direction:row;flex-wrap:wrap}.rc-opts.row button{flex:1;min-width:30%}
.rc-opts button{padding:15px 16px;border:2.5px solid #E5E5E5;border-radius:16px;background:#fff;text-align:left;font:800 16px/1.3 Nunito,system-ui,sans-serif;color:#1A1D2B;cursor:pointer}
.rc-opts button.on{border-color:#6A3DF0;background:#F6F2FF;color:#4B23C8}
.rc-q2{margin:0;font:900 18px/1.3 Nunito,system-ui,sans-serif;color:#1A1D2B}
.rc-h{margin:18px 0 8px;font:900 16px Nunito,system-ui,sans-serif;color:#1A1D2B}
.rc-ch{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.rc-ch button{padding:9px 13px;border:2px solid #E5E5E5;border-radius:999px;background:#fff;font:800 14px Nunito,system-ui,sans-serif;color:#3B3F52;cursor:pointer}
.rc-ch button.on{border-color:#6A3DF0;background:#6A3DF0;color:#fff}
.rc-go{width:100%;margin-top:22px}.rc-go[disabled]{opacity:.45;pointer-events:none}
.rc-hero{padding:22px 18px 18px;border-radius:22px;background:linear-gradient(160deg,#6A3DF0,#4B23C8);color:#fff;text-align:center}
.rc-hero small{font:800 13px Nunito,system-ui,sans-serif;opacity:.85}.rc-hero p{margin:10px 0 0;font:700 13px/1.4 Nunito,system-ui,sans-serif;opacity:.85}
.rc-ring{--v:0;width:132px;height:132px;margin:12px auto 6px;border-radius:50%;display:grid;place-content:center;background:radial-gradient(closest-side,#5530DC 78%,transparent 79% 100%),conic-gradient(#CDEB3F calc(var(--v)*1%),rgba(255,255,255,.18) 0)}
.rc-ring b{font:900 46px/1 Nunito,system-ui,sans-serif}.rc-ring span{font:800 13px Nunito,system-ui,sans-serif;opacity:.8}
.rc-lab{display:block;font:900 17px Nunito,system-ui,sans-serif}
.rc-stars{margin:10px 0 4px;font-size:38px;letter-spacing:2px;color:#FFD23F}.rc-stars span{color:rgba(255,255,255,.25)}
.rc-card{margin-top:12px;padding:16px;border:2.5px solid #E5E5E5;border-radius:20px;background:#fff}
.rc-bar{display:grid;grid-template-columns:86px 1fr auto;align-items:center;gap:10px;margin:8px 0;font:800 14px Nunito,system-ui,sans-serif;color:#1A1D2B}
.rc-bar i{height:12px;border-radius:12px;background:#F0EFF5;overflow:hidden}.rc-bar i b{display:block;height:100%;border-radius:12px;background:var(--c)}
.rc-bar em{min-width:44px;font-style:normal;text-align:right;color:#6B6F80;font-size:13px;letter-spacing:-.5px;white-space:nowrap}
.rc-carlos{display:flex;gap:12px;align-items:flex-start}.rc-carlos>img{width:70px;height:84px;object-fit:cover;object-position:top;border-radius:14px;background:#EEF6FE;flex:none}
.rc-say{margin:0 0 10px;font:800 15.5px/1.4 Nunito,system-ui,sans-serif;color:#1A1D2B}
.rc-pt{margin:6px 0 0;font:700 14px/1.4 Nunito,system-ui,sans-serif;color:#3B3F52}.rc-pt b{display:flex;align-items:center;gap:5px;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:#6A3DF0}.rc-pt svg{width:14px;height:14px}
.rc-next{background:#FAFDE9;border-color:#E6F2A8}.rc-next h3{margin:0 0 12px;font:900 20px/1.25 Nunito,system-ui,sans-serif;color:#1A1D2B}.rc-next .b3{width:100%;margin-top:8px}
.rc-tr{width:100%;height:auto;display:block;margin:6px 0}.rc-tl{margin:4px 0 0;font:700 13.5px/1.4 Nunito,system-ui,sans-serif;color:#3B3F52}
.rc-saved{display:flex;align-items:center;justify-content:center;gap:6px;margin:14px 0 0;font:800 13.5px Nunito,system-ui,sans-serif;color:#22B573}.rc-saved svg{width:15px;height:15px}
.jn-sc{margin-left:8px;padding:2px 8px;border-radius:999px;background:#F6F2FF;color:#6A3DF0;font-size:12px;font-weight:900}
/* ---------- Joshua's Home (7 Nov, Figma 199:460): kids.js home5(). White page, cream lesson hero with Carlos, light bordered cards ---------- */
.hf{padding:6px 16px 0;font-family:Nunito,system-ui,sans-serif;color:#191919}
.hf-top{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:8px 2px 16px}
.hf-top small{display:block;font:600 13.5px/1.2 Nunito,system-ui,sans-serif;color:#9E7945}.hf-top h1{margin:2px 0 0;font:800 24px/1.15 Nunito,system-ui,sans-serif;letter-spacing:-.4px}
.hf-chips{display:flex;align-items:center;gap:6px;margin-bottom:2px}
.hf-chip{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 9px;border:1.5px solid #E5E5E5;border-radius:12px;background:#fff;box-shadow:0 1.5px 0 #E5E5E5;font:700 12px Nunito,system-ui,sans-serif;color:#191919}
.hf-chip img{width:14px;height:14px;object-fit:contain}
.hf-bell{position:relative;width:28px;height:28px;border:1.5px solid #E5E5E5;border-radius:12px;background:#fff;box-shadow:0 1.5px 0 #E5E5E5;display:grid;place-items:center;padding:0}.hf-bell img{width:15px;height:15px}
.hf-hero{position:relative;isolation:isolate;margin-top:40px;padding:20px 18px 18px;border-radius:20px;background:#F9EDC9;box-shadow:0 4px 0 #E2CD8E}
.hf-carlos{position:absolute;z-index:0;right:-6px;bottom:40px;height:calc(100% + 12px);width:auto;max-width:72%;object-fit:contain;object-position:right bottom;pointer-events:none;filter:drop-shadow(0 6px 10px rgba(146,119,38,.18))}
.hf-hero>:not(.hf-carlos){z-index:1}
.hf-k{display:inline-flex;align-items:center;gap:7px;font:800 11.5px/1 Nunito,system-ui,sans-serif;letter-spacing:.9px;text-transform:uppercase;color:#927726}.hf-k img{width:12px;height:10px}
.hf-t{position:relative;display:block;max-width:56%;margin:14px 0 4px;font:800 21px/1.1 Nunito,system-ui,sans-serif;letter-spacing:-.4px}
.hf-s{position:relative;max-width:52%;margin:0;font:600 14.5px/1.3 Nunito,system-ui,sans-serif;color:#A78C39}
.hf-bar{position:relative;display:block;width:46%;height:7px;margin:18px 0 6px;border-radius:7px;background:rgba(252,155,0,.21);overflow:hidden}.hf-bar i{display:block;height:100%;border-radius:7px;background:#FC9B00}
.hf-tp{position:relative;display:block;font:600 12.5px/1.2 Nunito,system-ui,sans-serif;color:#A78C39}
.hf-go{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:46px;margin-top:14px;border:0;border-radius:14px;background:#FC9B00;box-shadow:0 3px 0 #DC8000;color:#fff;font:800 16px Nunito,system-ui,sans-serif;cursor:pointer}
.hf-go svg{width:18px;height:18px}.hf-go:active{transform:translateY(3px);box-shadow:none}
.hf-streak{display:flex;align-items:center;gap:8px;width:100%;margin-top:18px;padding:11px 14px;border:1.5px solid #E5E5E5;border-radius:18px;background:#fff;box-shadow:0 2px 0 #E5E5E5;cursor:pointer;color:#191919}
.hf-streak>img{width:26px;height:26px}.hf-streak b{font:700 16.5px Nunito,system-ui,sans-serif;white-space:nowrap}
.hf-streak span{display:flex;gap:5px;margin-left:auto}.hf-streak i{width:23px;height:23px;border-radius:50%;background:#F0F0F0;display:grid;place-items:center}
.hf-streak i.on{background:#FFE7D1}.hf-streak i img{width:17px;height:17px}
.hf-h{margin:22px 4px 10px;font:800 17.5px/1.2 Nunito,system-ui,sans-serif;letter-spacing:-.3px;color:#191919}
.hf-card{position:relative;display:block;width:100%;padding:16px 16px 18px;border:2px solid #E5E5E5;border-radius:18px;background:#fff;box-shadow:0 2px 0 #E5E5E5;text-align:left;color:#191919;box-sizing:border-box;font-family:inherit}
.hf-lab{display:flex;align-items:center;gap:6px;font:700 13.5px/1.2 Nunito,system-ui,sans-serif}.hf-lab img{width:26px;height:26px;object-fit:contain}
.hf-lab.b{color:#00ACE6}.hf-lab.p{color:#8540E6}.hf-lab.g{color:#53A470}.hf-lab.o{color:#E69040}
.hf-ct{display:block;margin-top:10px;font:700 19px/1.18 Nunito,system-ui,sans-serif;letter-spacing:-.3px;color:#191919}.hf-ct.hf-mute{color:#9A9AA6}
.hf-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:36px;margin-top:14px;padding:0 18px;border:0;border-radius:12px;color:#fff;font:700 13.5px Nunito,system-ui,sans-serif;cursor:pointer}
.hf-btn svg{width:14px;height:14px}.hf-btn.bl{background:#00B3FC;box-shadow:0 3px 0 #009CDC}.hf-btn.gr{background:#53A470;box-shadow:0 3px 0 #3E7F56}
.hf-tip{padding:0;overflow:hidden}.hf-tip .tod-b{display:block;width:100%;padding:16px 140px 18px 16px;border:0;background:none;text-align:left;font-family:inherit;color:inherit;cursor:pointer}
.hf-tip .hf-ct{max-width:200px}.hf-badge{position:absolute;right:6px;top:50%;width:128px;transform:translateY(-50%);pointer-events:none}
.hf-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hf-sq{min-height:200px;cursor:pointer}.hf-sq .hf-ct{font-size:18.5px}
.hf-ma,.hf-dyk{display:flex;align-items:center;gap:8px;min-height:170px}.hf-mt{flex:1;min-width:0}
.hf-ring{position:relative;flex:none;width:128px;height:128px;margin-right:-2px}.hf-ring svg{width:100%;height:100%;display:block}
.hf-ring>span{position:absolute;inset:25px;border-radius:50%;background:#F3F1FB;display:flex;flex-direction:column;align-items:center;justify-content:center}
.hf-ring b{font:900 30px/1 Nunito,system-ui,sans-serif;color:#191919;letter-spacing:-.5px}.hf-ring b.q{color:#B9B3D6}
.hf-ring small{margin-top:2px;font:700 10px/1.1 Nunito,system-ui,sans-serif;color:#8A86A3;text-transform:uppercase;letter-spacing:.04em}
.hf-dyk{padding-right:0;overflow:hidden}.hf-who{flex:none;width:132px;align-self:flex-end;margin:-6px -4px -20px 0;pointer-events:none}
.hf-more{margin-top:12px;padding:0;border:0;background:none;font:700 13.5px Nunito,system-ui,sans-serif;color:#9B9B9B;cursor:pointer}
html.va #app[data-tab=home] .scroll:has(.hf){background:#fff!important}html.va #app[data-tab=home]:has(.hf){background:#fff!important}.hf{padding-top:max(6px,env(safe-area-inset-top))}
.hf .hf-tip.tod{background:#fff!important;color:#191919;min-height:0;box-shadow:0 2px 0 #E5E5E5!important;border:2px solid #E5E5E5;border-radius:18px;padding:0;margin:0}
.hf .hf-tip.tod::before,.hf .hf-tip.tod::after{display:none}
.hf-bell svg{width:16px;height:16px}
.hf-sq{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}
/* ---------- 7 Nov, Joshua: "this is the one we're going to lock in" — every tab takes the new Home look:
   white page (no purple band), Home-style title, cream hero cards, 2px light-grey cards with a 2px bottom line, 17.5px headings ---------- */
html.va #app:is([data-tab=mine],[data-tab=match],[data-tab=me],[data-tab=rewards]),html.va #app:is([data-tab=mine],[data-tab=match],[data-tab=me],[data-tab=rewards]) .scroll{background:#fff!important}
html.va #app:not([data-tab=home]):not([data-tab=path]) .mt-h{margin:0 2px 14px!important;padding:max(14px,env(safe-area-inset-top)) 0 0!important;background:none!important;color:#191919!important;font:800 26px/1.15 Nunito,system-ui,sans-serif!important;letter-spacing:-.5px!important}
html.va #app:not([data-tab=home]):not([data-tab=path]) .mt-h::after{display:none!important}
html.va #app:not([data-tab=home]):not([data-tab=path]) .mt-h::before{display:block;margin-bottom:3px;font:600 13.5px/1.2 Nunito,system-ui,sans-serif;letter-spacing:0;color:#9E7945}
html.va #app[data-tab=mine] .mt-h::before{content:"Your tennis diary"}html.va #app[data-tab=match] .mt-h::before{content:"Your game. Your plan."}html.va #app[data-tab=me] .mt-h::before{content:"Your player card"}
html.va #app[data-tab=match] .mc-sub{display:none!important}
html.va .mt-s{color:#9E7945!important;font-weight:600!important}
/* cards: the Home card */
html.va .jn-week,html.va .jn-row,html.va .jn-quick>*,html.va .mr-list,html.va .mr-pr,html.va .pf-tro,html.va .tkrow,html.va .pf-games,html.va .prog2,html.va .rv,html.va .grown,
html.va .m5-t,html.va .stk,html.va .evc,html.va .rc-card,html.va .pf-games .gtile,html.va .pf-games>div>button{background:#fff!important;border:2px solid #E5E5E5!important;border-radius:18px!important;box-shadow:0 2px 0 #E5E5E5!important}
html.va .mr-list .mr-pr{border:0!important;box-shadow:none!important;border-radius:0!important}
/* headings */
html.va .jn-h,html.va .m4-sec h3,html.va .m4-sec h2,html.va .pf-gh b,html.va .sec{font:800 17.5px/1.2 Nunito,system-ui,sans-serif!important;letter-spacing:-.3px!important;color:#191919!important}
/* Match: Ask Carlos is the cream hero card */
html.va .m6-ask{background:#F9EDC9!important;border:0!important;border-radius:20px!important;box-shadow:0 4px 0 #E2CD8E!important;overflow:hidden}
html.va .m6-top{background:#F9EDC9!important;border-radius:20px 20px 0 0!important}
html.va .m6-top small{background:rgba(146,119,38,.12)!important;color:#927726!important;font-style:normal!important;text-transform:uppercase!important;letter-spacing:.9px!important;font-size:11.5px!important}
html.va .m6-in{background:#fff!important;border:2px solid #E2CD8E!important;box-shadow:none!important}
html.va .m6-qk>*{background:#fff!important;border:2px solid #EADBB0!important;box-shadow:0 2px 0 #EADBB0!important;border-radius:14px!important}
/* Profile: the player card is the cream hero, stats are white tiles */
html.va .pf{background:#F9EDC9!important;border-radius:20px!important;box-shadow:0 4px 0 #E2CD8E!important;color:#191919!important}
html.va .pf-n h2{color:#191919!important}html.va .pf-n p{color:#A78C39!important;font-weight:600!important}
html.va .pf-sw{background:#FC9B00!important;border:0!important;box-shadow:0 3px 0 #DC8000!important;border-radius:12px!important;color:#fff!important}
html.va .pf-stats>*{border:2px solid #EADBB0!important;box-shadow:0 2px 0 #EADBB0!important;border-radius:14px!important}
html.va .pf-stats small{color:#A78C39!important}
/* trophy cabinet: white page, ink title */
html.va .cab-back{color:#9E7945!important;margin-top:max(14px,env(safe-area-inset-top))!important}
html.va #app[data-tab=rewards] .scroll .cab:first-of-type>h2{color:#191919!important}html.va #app[data-tab=rewards] .scroll .cab:first-of-type>p{color:#9E7945!important;opacity:1;margin-bottom:16px!important}
/* buttons: Home's orange main and blue second */
html.va #app:not([data-tab=path]) .b3:not(.white):not(.ghost){background:#FC9B00!important;box-shadow:0 3px 0 #DC8000!important;border-radius:14px!important;color:#fff!important;font-weight:800!important}
html.va #app:is([data-tab=mine],[data-tab=match]) .mt{padding-top:0!important}
html.va .m5-t.o,html.va .m5-t.p,html.va .m5-t.b,html.va .m5-t.g{background:#fff!important;border:2px solid #E5E5E5!important;box-shadow:0 2px 0 #E5E5E5!important}
html.va .rc-top{background:#fff!important;border:2px solid #E5E5E5!important;border-radius:18px!important;box-shadow:0 2px 0 #E5E5E5!important}
html.va .rc-top small{color:#8540E6!important}
html.va #app[data-tab=rewards] .scroll .cab-back+.cab>h2{color:#191919!important;font-size:26px!important}html.va #app[data-tab=rewards] .scroll .cab-back+.cab>p{color:#9E7945!important}
/* 7 Nov polish: the old duo tokens tinted every card edge lavender. Point them at the Home palette: grey on white, gold on cream */
html.va.duo2,html.va.duo3,html.va{--mp-line:#E5E5E5;--mp-edge:#E5E5E5;--mp-page:#F7F7F7;--duo-line:#E5E5E5;--ds-page:#fff;--ds-ink:#191919;--ds-line:#E5E5E5;
  --ds-shadow:0 2px 0 #E5E5E5;--ds-shadow-lift:0 2px 0 #E5E5E5;--ds-btn2-bg:#fff;--ds-btn2-edge:0 0 0 2px #E5E5E5 inset,0 2px 0 #E5E5E5}
html.va :is(.m6-ask,.pf,.hf-hero){--mp-line:#EADBB0;--mp-edge:#E2CD8E;--mp-page:#FFF8E6}
html.va .m6-ask{box-shadow:0 4px 0 #E2CD8E!important}
html.va .m6-qk button,html.va .m6-in{box-shadow:0 0 0 2px #EADBB0 inset,0 2px 0 #E2CD8E!important;border:0!important}
/* Match Analysis score card */
.hf-sc{flex:none;width:132px;padding:12px 12px 13px;border-radius:16px;background:#F7F7F7;box-shadow:0 0 0 1.5px #EDEDED inset;display:flex;flex-direction:column;gap:7px}
.hf-sct{display:flex;align-items:baseline;gap:2px;margin-bottom:2px}.hf-sct b{font:900 30px/1 Nunito,system-ui,sans-serif;letter-spacing:-.8px;color:#191919}
.hf-sct small{font:800 13px Nunito,system-ui,sans-serif;color:#A0A0AA}.hf-sc.none .hf-sct b{color:#C9C9D1}
.hf-scr{display:block}.hf-scr em{display:block;margin-bottom:3px;font:700 10.5px/1 Nunito,system-ui,sans-serif;font-style:normal;color:#6E6E78}
.hf-scr i{display:block;height:6px;border-radius:6px;background:color-mix(in srgb,var(--c) 18%,#fff);overflow:hidden}.hf-scr u{display:block;height:100%;border-radius:6px;background:var(--c);text-decoration:none}
.hf-sc.none .hf-scr i{background:repeating-linear-gradient(90deg,#E6E6EA 0 6px,transparent 6px 10px)}
/* score card as a court-green scoreboard */
.hf-sc{background:linear-gradient(165deg,#1F7A4D,#145C39);box-shadow:0 3px 0 #0E4A2D,inset 0 0 0 2px rgba(255,255,255,.08);gap:6px;padding:11px 12px 13px}
.hf-sck{font:800 9.5px/1 Nunito,system-ui,sans-serif;letter-spacing:.9px;text-transform:uppercase;color:#CDEB3F}
.hf-sct b{color:#fff}.hf-sct small{color:rgba(255,255,255,.55)}.hf-sc.none .hf-sct b{color:rgba(255,255,255,.4)}
.hf-scr em{color:rgba(255,255,255,.78)}.hf-scr i{background:rgba(255,255,255,.14)}
.hf-sc.none .hf-scr i{background:repeating-linear-gradient(90deg,rgba(255,255,255,.18) 0 6px,transparent 6px 10px)}
/* ---------- Home fixes (7 Nov, Joshua) ---------- */
/* streak/stars sheet: the Home flame/star in a cream tile */
.sh-h .ic.sh-art{background:#FFF1D9;box-shadow:0 3px 0 #F3DDB4;display:grid;place-items:center}.sh-h .ic.sh-art img{width:70%;height:70%;object-fit:contain}
.hf-tip .tod-mine{display:none!important}   /* only pressed by the tip sheet’s "Make it my focus" */
/* On court empty states: a round icon, one line, what to do */
.hf-sq.hf-none{align-items:stretch}
.hf-em{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin-top:12px}
.hf-emi{display:grid;place-items:center;width:62px;height:62px;margin-bottom:10px;border-radius:50%;background:#F5EFFE;border:2px dashed #D8C5FA;box-sizing:border-box}.hf-emi img{width:36px;height:36px;object-fit:contain}
.hf-em b{font:800 15.5px/1.2 Nunito,system-ui,sans-serif;color:#191919}
.hf-em small{margin-top:3px;font:600 12.5px/1.3 Nunito,system-ui,sans-serif;color:#9A9AA6}
.hf-emb{display:inline-flex;align-items:center;height:32px;margin-top:12px;padding:0 13px;border-radius:11px;background:#8540E6;box-shadow:0 3px 0 #6A2DC2;color:#fff;font:800 13px Nunito,system-ui,sans-serif;white-space:nowrap}
/* Match Analysis: a white card like the rest of Home; score top right, the four scores as tinted tiles */
.hf-ma2t{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.hf-ma2t .hf-ct{margin-top:8px}
.hf-ma2s{flex:none;display:flex;align-items:baseline;gap:1px;padding:9px 12px;border-radius:14px;background:#EEF7F1}
.hf-ma2s b{font:900 28px/1 Nunito,system-ui,sans-serif;letter-spacing:-.6px;color:#2F7A4C}.hf-ma2s small{font:800 12px Nunito,system-ui,sans-serif;color:#7FA88E}.hf-ma2.none .hf-ma2s b{color:#A9C9B5}
.hf-ma2g{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.hf-m4{display:grid;grid-template-columns:1fr auto;align-items:center;row-gap:8px;padding:10px 12px 12px;border-radius:13px;background:color-mix(in srgb,var(--c) 9%,#fff)}
.hf-m4 em{font:800 13px/1 Nunito,system-ui,sans-serif;font-style:normal;color:#3B3F52}.hf-m4 small{font:800 12px/1 Nunito,system-ui,sans-serif;color:var(--c)}.hf-ma2.none .hf-m4 small{color:#B5B5BE}
.hf-m4 i{grid-column:1/-1;display:block;height:6px;border-radius:6px;background:color-mix(in srgb,var(--c) 20%,#fff);overflow:hidden}.hf-m4 u{display:block;height:100%;border-radius:6px;background:var(--c)}
.hf-ma2b{display:flex;width:100%;height:44px;margin-top:14px;font-size:15px}
/* Did you know: 3 lines, See more opens the rest; the character stands on the card's bottom edge */
.hf-dyk{min-height:0;align-items:stretch}
.hf-dyk .hf-fx{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.hf-dyk.open .hf-fx{display:block;-webkit-line-clamp:unset}
.hf-fxm{display:block;margin-top:6px;padding:0;border:0;background:none;font:800 14px Nunito,system-ui,sans-serif;color:#E69040;cursor:pointer}
.hf-dyk .hf-more{margin-top:10px}
/* bell (Joshua's Figma, 7 Nov): bigger and round, green count; same on Home and the Journal */
.hf .hf-bell{width:34px;height:34px;border-radius:50%;border:1.5px solid #E5E5E5;box-shadow:0 2px 0 #E5E5E5;overflow:visible}.hf .hf-bell svg{width:18px;height:18px}
.hf-bdg{position:absolute;top:-4px;right:-5px;min-width:15px;height:15px;padding:0 3px;border-radius:99px;background:#58CC8B;box-shadow:0 0 0 2px #fff;color:#fff;font:900 9.5px/15px Nunito,system-ui,sans-serif;font-style:normal;text-align:center;box-sizing:border-box}
.hf-chips{align-items:center}
/* Journal tabs: the picked one gets a 10% fill of its text colour and a stroke in that colour */
html.va .jx-seg button.on{background:color-mix(in srgb,#18C471 10%,#fff)!important;box-shadow:inset 0 0 0 2px #18C471!important;border-radius:14px!important}
/* coloured cards get a border in their own edge colour (Joshua's Figma): Home lesson, Journal hero, Match, Profile, trophy room */
.hf-hero{border:2px solid #E2CD8E}
html.va .jx-hero{border:2px solid #5AD886!important}
html.va .m6-ask.m6-ask{border:2px solid #E2CD8E!important;box-shadow:0 4px 0 #E2CD8E!important}
html.va .pf.pf{border:2px solid #E2CD8E}
.cb-room{border:2px solid #E2CD8E}
/* Match folded into Home + Journal (7 Nov eve) */
/* Home: Ask Coach Carlos card (was the Match tab's cream hero); Carlos waves top right */
.hf-ask{padding-top:16px}.hf-ask>.hf-ct{max-width:62%}
.hf-askc{position:absolute;top:-10px;right:4px;width:112px;height:auto;pointer-events:none;filter:drop-shadow(0 4px 6px rgba(0,0,0,.12))}
.hf-askp{display:flex;align-items:center;gap:10px;width:100%;margin-top:14px;padding:10px 12px;border:0;border-radius:14px;background:#EEF7F1;text-align:left;font-family:inherit;cursor:pointer}
.hf-askp span{flex:1;min-width:0}.hf-askp small{display:block;font:700 11.5px Nunito,system-ui,sans-serif;color:#53A470}.hf-askp b{display:block;font:800 14px/1.25 Nunito,system-ui,sans-serif;color:#191919}
.hf-askp em{flex:none;font:800 12.5px Nunito,system-ui,sans-serif;font-style:normal;color:#fff;background:#53A470;border-radius:10px;padding:6px 10px}
.hf-askin{display:flex;align-items:center;gap:10px;width:100%;height:48px;margin-top:16px;padding:0 14px;border:2px solid #E5E5E5;border-radius:14px;box-shadow:0 2px 0 #E5E5E5;background:#fff;font:700 15px Nunito,system-ui,sans-serif;color:#8A8A94;cursor:pointer;text-align:left}
.hf-askin svg{width:19px;height:19px;flex:none;color:#8540E6}
.hf-askq{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.hf-askq button{display:flex;align-items:center;gap:8px;min-height:52px;padding:6px 10px 6px 6px;border:2px solid #E5E5E5;border-radius:14px;box-shadow:0 2px 0 #E5E5E5;background:#fff;text-align:left;font:800 13.5px/1.2 Nunito,system-ui,sans-serif;color:#191919;cursor:pointer}
.hf-askq img{flex:none;width:36px;height:36px;border-radius:50%;object-fit:cover;object-position:50% 15%;background:#F5EFFE}
.hf-askall{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;margin-top:12px;padding:4px 0 0;border:0;background:none;font:800 14px Nunito,system-ui,sans-serif;color:#8540E6;cursor:pointer}.hf-askall svg{width:15px;height:15px}
/* Journal Tips: Coach Carlos's saved ideas as rows beside the coach's tips */
.jx-tip.jx-ct .jx-q{background:#F5EFFE;font:400 21px/1 system-ui,sans-serif;padding-top:0}
.jx-ctp{flex:none;font:800 12px Nunito,system-ui,sans-serif;font-style:normal;color:#53A470}
/* ---------- Profile in the Journal look (7 Nov eve): calm, white cards, one cream player card ---------- */
html.va #app[data-tab=me] .scroll:has(.prf),html.va #app[data-tab=me]:has(.prf){background:#fff!important}
.prf-card{position:relative;margin-top:4px;padding:16px;border:2px solid #E2CD8E;border-radius:20px;background:#F9EDC9;box-shadow:0 4px 0 #E2CD8E}
.prf-who{display:flex;align-items:center;gap:12px}
.prf-av{flex:none;width:58px;height:58px;border-radius:50%;overflow:hidden;background:#fff;box-shadow:0 0 0 3px #fff;display:grid;place-items:center}.prf-av img{width:100%;height:100%;object-fit:cover}.prf-av span{display:grid;place-items:center;width:100%;height:100%;color:#fff;font:900 24px Nunito}
.prf-n{flex:1;min-width:0}.prf-n b{display:block;font:800 20px/1.15 Nunito,system-ui,sans-serif;color:#191919}.prf-n small{display:block;margin-top:3px;font:600 13px/1.3 Nunito,system-ui,sans-serif;color:#A78C39}
.prf-sw{flex:none;height:34px;padding:0 14px;border:1.5px solid #E2CD8E;border-radius:12px;background:#fff;box-shadow:0 2px 0 #E2CD8E;font:800 13.5px Nunito,system-ui,sans-serif;color:#191919;cursor:pointer}
.prf-st{display:grid;grid-template-columns:repeat(4,1fr);margin-top:14px;padding:12px 4px;border-radius:14px;background:#fff;box-shadow:0 0 0 1.5px #EADBB0}
.prf-st>div{text-align:center}.prf-st>div+div{border-left:1.5px solid #F1E6C6}
.prf-st b{display:flex;align-items:center;justify-content:center;gap:4px;font:900 18px/1.1 Nunito,system-ui,sans-serif;color:#191919}.prf-st b img{width:17px;height:17px;object-fit:contain}
.prf-st small{display:block;margin-top:3px;font:700 11px/1.2 Nunito,system-ui,sans-serif;color:#8A8A94}
.prf-hr{display:flex;align-items:center;justify-content:space-between;gap:10px}.prf-hr .hf-h{flex:1}
.prf-tk{display:inline-flex;align-items:center;gap:5px;margin-top:12px;height:28px;padding:0 10px;border:1.5px solid #E5E5E5;border-radius:12px;box-shadow:0 1.5px 0 #E5E5E5;font:800 12.5px Nunito,system-ui,sans-serif;color:#191919}.prf-tk svg{width:16px;height:16px;color:#E0A21B}
.prf-lk{margin-top:12px;padding:0;border:0;background:none;font:800 14px Nunito,system-ui,sans-serif;color:#8540E6;cursor:pointer}
.prf-g{padding:14px 0 14px}
.prf-gs{display:flex;gap:8px;overflow-x:auto;padding:0 14px 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.prf-gs::-webkit-scrollbar{display:none}
.prf-gs button{flex:none;width:86px;display:flex;flex-direction:column;align-items:center;gap:7px;padding:10px 4px 9px;border:0;border-radius:14px;background:color-mix(in srgb,var(--gc) 9%,#fff);cursor:pointer;font-family:inherit}
.prf-gs i{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--gc);color:#fff}.prf-gs i svg{width:21px;height:21px}
.prf-gs b{font:800 11.5px/1.2 Nunito,system-ui,sans-serif;color:#191919;text-align:center}
.prf-gs button.lock{background:#F6F6F7}.prf-gs button.lock i{background:#D9D9DE}.prf-gs button.lock b{color:#9A9AA6}
.prf-fine{margin:10px 14px 0;font:600 12.5px/1.4 Nunito,system-ui,sans-serif;color:#9A9AA6}
.prf-p{display:flex;flex-direction:column;gap:14px}.prf-p .prf-fine{margin:0}
.prf-pr span{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:7px}.prf-pr b{font:800 15px Nunito,system-ui,sans-serif;color:#191919}.prf-pr em{font:700 13px Nunito,system-ui,sans-serif;font-style:normal;color:#8A8A94}
.prf-pr i{display:block;height:8px;border-radius:8px;background:#EFEFEF;overflow:hidden}.prf-pr u{display:block;height:100%;border-radius:8px;background:#53A470}
.prf-rv .jx-q{background:color-mix(in srgb,var(--tc) 14%,#fff)!important;color:var(--tc)!important;padding:0!important}.prf-rv .jx-q svg{width:20px;height:20px}
.prf-set{padding:4px 16px}
.prf-r{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 0;border-bottom:1.5px solid #F0F0F0}
.prf-r small{display:block;font:700 12.5px Nunito,system-ui,sans-serif;color:#8A8A94}.prf-r b{display:block;margin-top:2px;font:800 15px Nunito,system-ui,sans-serif;color:#191919}
.prf-r.col{flex-direction:column;align-items:stretch}
.prf-a{flex:none;height:32px;padding:0 13px;border:1.5px solid #E5E5E5;border-radius:11px;box-shadow:0 1.5px 0 #E5E5E5;background:#fff;font:800 13px Nunito,system-ui,sans-serif;color:#191919;cursor:pointer}
.prf-ball{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:2px}
.prf-ball button{display:flex;align-items:center;justify-content:center;gap:5px;height:34px;border:1.5px solid #E5E5E5;border-radius:11px;background:#fff;font:800 12.5px Nunito,system-ui,sans-serif;color:#3B3F52;cursor:pointer}
.prf-ball button i{width:10px;height:10px;border-radius:50%}
.prf-ball button.on{background:color-mix(in srgb,#18C471 10%,#fff);border:2px solid #18C471;color:#0E8F52}
.prf-note{font:600 12px/1.35 Nunito,system-ui,sans-serif!important;color:#9A9AA6!important}
.prf-del{display:flex;align-items:center;gap:8px;width:100%;padding:14px 0 12px;border:0;background:none;font:800 14px Nunito,system-ui,sans-serif;color:#D64545;cursor:pointer;text-align:left}.prf-del svg{width:17px;height:17px}
.prf-priv{margin:12px 6px 0}
/* ---------- Journal (7 Nov, Joshua's Figma): blue "Played recently?" hero with Tico, My Notes · Coach Tips · Performance ---------- */
html.va #app[data-tab=mine] .scroll:has(.jx){background:#fff!important}
.jx-hero{position:relative;isolation:isolate;margin-top:14px;padding:20px 18px 18px;border-radius:22px;background:#D3E8F8;box-shadow:0 4px 0 #A9CDEB;overflow:hidden}
.jx-tico{position:absolute;z-index:-1;right:-14px;bottom:-12px;height:94%;max-width:54%;object-fit:contain;object-position:right bottom;pointer-events:none}
.jx-xp{position:absolute;top:12px;right:12px;z-index:1;display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:11px;background:#EAF5FD;box-shadow:inset 0 0 0 1.5px #A9CDEB,0 2px 0 #A9CDEB;font:800 12px Nunito,system-ui,sans-serif;color:#191919}.jx-xp img{width:14px;height:14px}
.jx-k{display:block;font:800 11.5px/1 Nunito,system-ui,sans-serif;letter-spacing:.9px;text-transform:uppercase;color:#3F7FB5}
.jx-t{display:block;max-width:60%;margin:12px 0 8px;font:800 22px/1.12 Nunito,system-ui,sans-serif;letter-spacing:-.4px;color:#191919}
.jx-s{max-width:58%;margin:0;font:600 14.5px/1.35 Nunito,system-ui,sans-serif;color:#2C3E50}
.jx-go{display:inline-flex;align-items:center;justify-content:center;height:44px;margin-top:16px;padding:0 20px;border:0;border-radius:14px;background:#4DB3F2;box-shadow:0 3px 0 #2D8FD0;color:#fff;font:800 15.5px Nunito,system-ui,sans-serif;cursor:pointer}
.jx-go:active{transform:translateY(3px);box-shadow:none}
.jx-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:18px 0 16px;padding:5px;border:2px solid #E5E5E5;border-radius:18px;box-shadow:0 2px 0 #E5E5E5;background:#fff}
.jx-seg button{height:42px;border:0;border-radius:13px;background:none;font:700 15px Nunito,system-ui,sans-serif;color:#6E6E78;cursor:pointer}
.jx-seg button.on{background:#fff;color:#191919;box-shadow:0 0 0 2px #E5E5E5,0 2px 0 #E5E5E5}
.jx-add{display:flex;gap:10px;margin-bottom:14px}
.jx-new{flex:1;display:flex;align-items:center;gap:12px;padding:12px 14px;border:2px dashed #CFE3F4;border-radius:18px;background:#F4FAFF;text-align:left;cursor:pointer;font-family:inherit;color:#191919}
.jx-new i{flex:none;width:38px;height:38px;border-radius:12px;background:#4DB3F2;box-shadow:0 3px 0 #2D8FD0;display:grid;place-items:center;color:#fff}.jx-new i svg{width:20px;height:20px}
.jx-new b{display:block;font:800 15.5px Nunito,system-ui,sans-serif}.jx-new small{display:block;margin-top:2px;font:600 12.5px Nunito,system-ui,sans-serif;color:#7C8A99}
.jx-mini{flex:none;width:84px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:2px solid #E5E5E5;border-radius:18px;box-shadow:0 2px 0 #E5E5E5;background:#fff;font:800 12.5px Nunito,system-ui,sans-serif;color:#191919;cursor:pointer}.jx-mini img{width:36px;height:36px;object-fit:contain}
.jx-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.jx-note{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:128px;padding:14px 14px 12px;border:2px solid #E5E5E5;border-radius:18px;box-shadow:0 2px 0 #E5E5E5;background:#fff;text-align:left;font-family:inherit;color:#191919;cursor:pointer;overflow:hidden}
.jx-note::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--c)}
.jx-note small{font:800 11px/1 Nunito,system-ui,sans-serif;letter-spacing:.5px;text-transform:uppercase;color:var(--c)}
.jx-note b{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-top:8px;font:700 15px/1.3 Nunito,system-ui,sans-serif}
.jx-note em{margin-top:auto;padding-top:8px;font:600 12px Nunito,system-ui,sans-serif;font-style:normal;color:#9A9AA6}
.jx-tip{display:flex;align-items:center;gap:12px;width:100%;margin-bottom:10px;padding:14px;border:2px solid #E5E5E5;border-radius:18px;box-shadow:0 2px 0 #E5E5E5;background:#fff;text-align:left;font-family:inherit;color:#191919;cursor:pointer}
.jx-tip .jx-q{flex:none;width:40px;height:40px;border-radius:12px;background:#FFF1DE;color:#F2913A;display:grid;place-items:center;font:900 30px/1 Georgia,serif;padding-top:10px}
.jx-tip>span:nth-child(2){flex:1;min-width:0}.jx-tip b{display:block;font:700 15.5px/1.3 Nunito,system-ui,sans-serif}.jx-tip small{display:block;margin-top:4px;font:600 12.5px Nunito,system-ui,sans-serif;color:#8A8A94}.jx-tip>svg{flex:none;width:18px;height:18px;color:#B5B5BD}
.jx-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;margin-bottom:12px}
.jx-stats span{padding:12px 4px 10px;border:2px solid #E5E5E5;border-radius:16px;box-shadow:0 2px 0 #E5E5E5;background:#fff;text-align:center;font:700 12px Nunito,system-ui,sans-serif;color:#8A8A94}
.jx-stats b{display:block;font:900 24px/1.05 Nunito,system-ui,sans-serif;color:#191919}.jx-stats .w b{color:#3E9A5F}.jx-stats .l b{color:#E2577F}.jx-stats .a b{color:#F2913A}
.jx-trend{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:12px;padding:16px;border-radius:18px;background:#D3E8F8;box-shadow:0 3px 0 #A9CDEB}
.jx-trend small{display:block;font:800 11.5px Nunito,system-ui,sans-serif;letter-spacing:.9px;text-transform:uppercase;color:#3F7FB5}.jx-trend b{display:block;margin-top:4px;font:900 36px/1 Nunito,system-ui,sans-serif;letter-spacing:-1px}.jx-trend b em{font:800 14px Nunito,system-ui,sans-serif;font-style:normal;color:#5B7A95;letter-spacing:0}
.jx-trend .up,.jx-trend .dn{display:inline-block;margin-top:6px;padding:3px 8px;border-radius:9px;font:800 12px Nunito,system-ui,sans-serif}.jx-trend .up{background:#E1F5E8;color:#2F8A52}.jx-trend .dn{background:#FDE6EC;color:#C93D63}
.jx-bars{flex:1;max-width:170px;height:76px;display:flex;align-items:flex-end;gap:7px}.jx-bars i{flex:1;border-radius:6px 6px 3px 3px;background:#A9CDEB}.jx-bars i.now{background:#4DB3F2}
.jx-week{margin-bottom:6px;padding:14px;border:2px solid #E5E5E5;border-radius:18px;box-shadow:0 2px 0 #E5E5E5}.jx-week>b{font:800 15px Nunito,system-ui,sans-serif}
.jx-week div{display:flex;justify-content:space-between;margin-top:10px}.jx-week i{display:flex;flex-direction:column;align-items:center;gap:4px;font-style:normal}
.jx-week i span{width:30px;height:30px;border-radius:50%;background:#F2F2F4}.jx-week i.on span{background:#CDEB3F url(../design/assets/steps/ball-yellow2.webp) center/26px no-repeat}.jx-week i.now span{box-shadow:0 0 0 2.5px #4DB3F2}
.jx-week small{font:700 11px Nunito,system-ui,sans-serif;color:#8A8A94}
.jx-h{display:flex;align-items:center;justify-content:space-between;margin:20px 2px 10px}.jx-h b{font:800 17.5px Nunito,system-ui,sans-serif;letter-spacing:-.3px}.jx-h .lk{display:inline-flex;align-items:center;gap:4px;color:#2D8FD0;font-weight:800}
.jx-match{display:flex;align-items:center;gap:12px;width:100%;margin-bottom:10px;padding:12px 14px;border:2px solid #E5E5E5;border-radius:18px;box-shadow:0 2px 0 #E5E5E5;background:#fff;text-align:left;font-family:inherit;color:#191919;cursor:pointer}
.jx-wl{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font:900 18px Nunito,system-ui,sans-serif;color:#fff}.jx-wl.w{background:#53A470;box-shadow:0 3px 0 #3E7F56}.jx-wl.l{background:#E2577F;box-shadow:0 3px 0 #B83D60}
.jx-match>span:nth-child(2){flex:1;min-width:0}.jx-match b{display:block;font:800 15.5px Nunito,system-ui,sans-serif}.jx-match b em{font-style:normal;font-weight:600;color:#8A8A94}
.jx-match small{display:block;margin-top:3px;font:600 12.5px Nunito,system-ui,sans-serif;color:#8A8A94;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jx-ms{flex:none;text-align:right;font:700 12px Nunito,system-ui,sans-serif;color:#8A8A94}.jx-ms b{font:900 18px Nunito,system-ui,sans-serif;color:#191919}.jx-ms em{display:block;font-style:normal;margin-top:2px}
.jx-empty{padding:18px 18px 22px;border:2px solid #E5E5E5;border-radius:18px;text-align:center}.jx-empty img{width:120px;height:120px;object-fit:contain}.jx-empty b{display:block;margin-top:6px;font:800 17px Nunito,system-ui,sans-serif}.jx-empty p{margin:6px auto 0;max-width:260px;font:600 14px/1.4 Nunito,system-ui,sans-serif;color:#8A8A94}
.jx .jn-coach{margin-top:14px;text-align:center}
.hf.jx{box-shadow:none;border:0;border-radius:0}   /* 7 Nov, Joshua: the Journal panel is plain white on the page, no outline line or soft shadow (premium.css .jx) */
/* the sheets */
.jx-sh{padding:4px 2px 8px;font-family:Nunito,system-ui,sans-serif;color:#191919}.jx-shh small{display:block;font:700 13px Nunito,system-ui,sans-serif;color:#9E7945}.jx-shh b{display:block;margin:2px 0 14px;font:800 24px/1.15 Nunito,system-ui,sans-serif;letter-spacing:-.4px}
.jx-ta textarea{min-height:150px;font:600 16px/1.45 Nunito,system-ui,sans-serif}
.jx-tl{margin:14px 2px 8px;font:700 13.5px Nunito,system-ui,sans-serif;color:#8A8A94}
.jx-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.jx-tags button{height:36px;padding:0 14px;border:2px solid #E5E5E5;border-radius:12px;background:#fff;font:700 13.5px Nunito,system-ui,sans-serif;color:#3B3B45;cursor:pointer}
.jx-tags button.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 12%,#fff);color:var(--c)}
.jx-quote{position:relative;padding:20px 18px 20px 52px;border-radius:18px;background:#FFF6E8;box-shadow:0 3px 0 #F3D9AE;font:700 19px/1.35 Nunito,system-ui,sans-serif}.jx-quote span{position:absolute;left:16px;top:6px;font:900 48px/1 Georgia,serif;color:#F2913A}
.jx .jx-s{padding:0!important;text-indent:0}.jx-hero p.jx-s{margin:0!important}
/* ---------- Tico's Pro Shop (7 Nov) ---------- */
html.va #app[data-tab=shop],html.va #app[data-tab=shop] .scroll{background:#fff!important}
html.va #app[data-tab=shop] .cab-back{margin:max(14px,env(safe-area-inset-top)) 16px 0!important}
.ps-hero{position:relative;isolation:isolate;margin-top:10px;padding:20px 18px 18px;min-height:178px;border-radius:22px;background:#F9EDC9;box-shadow:0 4px 0 #E2CD8E;overflow:hidden}
.ps-tico{position:absolute;z-index:-1;right:-10px;bottom:-14px;height:112%;max-width:52%;object-fit:contain;object-position:right bottom}
.ps-t{display:block;margin:10px 0 10px;font:800 23px/1.1 Nunito,system-ui,sans-serif;letter-spacing:-.4px}
.ps-bal{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:14px;background:#fff;box-shadow:0 0 0 2px #EADBB0,0 3px 0 #E2CD8E;font:900 22px Nunito,system-ui,sans-serif}.ps-bal img{width:22px;height:22px}
.ps-earn{display:flex;align-items:center;gap:4px;margin-top:14px;padding:0;border:0;background:none;font:800 13.5px Nunito,system-ui,sans-serif;color:#927726;cursor:pointer}.ps-earn svg{width:14px;height:14px}
.ps-cats{display:flex;gap:8px;margin:18px -16px 14px;padding:2px 16px 4px;overflow-x:auto;scrollbar-width:none}.ps-cats::-webkit-scrollbar{display:none}
.ps-cats button{flex:none;height:38px;padding:0 15px;border:2px solid #E5E5E5;border-radius:13px;background:#fff;box-shadow:0 2px 0 #E5E5E5;font:800 14px Nunito,system-ui,sans-serif;color:#5E5E68;cursor:pointer}
.ps-cats button.on{background:#191919;border-color:#191919;box-shadow:0 2px 0 #000;color:#fff}
.ps-b{display:flex;align-items:center;gap:12px;width:100%;margin-bottom:10px;padding:12px 12px 12px 12px;border:2px solid #E5E5E5;border-radius:18px;box-shadow:0 2px 0 #E5E5E5;background:#fff;text-align:left;font-family:inherit;color:#191919;cursor:pointer}
.ps-bi{flex:none;width:60px;height:60px;border-radius:16px;background:#FFF4DA;display:grid;place-items:center}.ps-bi img{width:44px;height:44px;object-fit:contain}
.ps-bt{flex:1;min-width:0}.ps-bt b{display:block;font:800 16.5px Nunito,system-ui,sans-serif}.ps-bt small{display:block;margin-top:3px;font:600 12.5px/1.35 Nunito,system-ui,sans-serif;color:#7A7A84}
.ps-bt em{display:inline-block;margin-top:6px;padding:2px 8px;border-radius:8px;background:#E1F5E8;color:#2F8A52;font:800 11.5px Nunito,system-ui,sans-serif;font-style:normal}
.ps-pr{flex:none;display:inline-flex;align-items:center;gap:4px;height:38px;padding:0 12px;border-radius:12px;background:#FC9B00;box-shadow:0 3px 0 #DC8000;color:#fff;font:900 15px Nunito,system-ui,sans-serif}.ps-pr img{width:16px;height:16px}
.ps .lk-h,.ps .lk-cats{display:none!important}.ps .lkr{margin:0!important;padding:0!important;background:none!important;box-shadow:none!important;border:0!important}
.ps-badges{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ps-bd{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px 10px;border:2px solid #E5E5E5;border-radius:16px;box-shadow:0 2px 0 #E5E5E5;text-align:center}.ps-bd small{font:700 11px/1.2 Nunito,system-ui,sans-serif}
.ps-bd.off{opacity:.45;filter:grayscale(1)}.ps-bd i{display:grid;place-items:center;border-radius:50%;background:var(--tc);color:#fff}.ps-bd i svg{width:60%;height:60%}
.ps-shb{display:grid;place-items:center;width:84px;height:84px;margin:4px 0 10px;border-radius:22px;background:#FFF4DA}.ps-shb img{width:62px;height:62px;object-fit:contain}
.ps-earnl{margin:6px 0 18px}.ps-earnl div{display:flex;align-items:center;justify-content:space-between;padding:12px 2px;border-bottom:2px solid #F2F2F4;font:700 15px Nunito,system-ui,sans-serif}.ps-earnl b{display:inline-flex;align-items:center;gap:5px;font-weight:900}.ps-earnl img{width:16px;height:16px}
.pf-shop{display:flex;align-items:center;gap:12px;width:calc(100% - 38px);margin:12px 19px 0;padding:12px 14px 12px 8px;border:0;border-radius:20px;background:#F9EDC9;box-shadow:0 4px 0 #E2CD8E;text-align:left;font-family:inherit;color:#191919;cursor:pointer;overflow:hidden}
.pf-shop img{flex:none;width:76px;height:76px;object-fit:contain;object-position:bottom;margin:-6px 0 -14px}.pf-shop span{flex:1}.pf-shop small{display:block;font:800 11.5px Nunito,system-ui,sans-serif;letter-spacing:.6px;text-transform:uppercase;color:#927726}
.pf-shop b{display:block;margin-top:3px;font:800 19px Nunito,system-ui,sans-serif}.pf-shop em{display:block;margin-top:2px;font:600 13px Nunito,system-ui,sans-serif;font-style:normal;color:#A78C39}.pf-shop>svg{width:18px;height:18px;color:#B59A55}
.ps-pr{background:#FFF4DA;box-shadow:inset 0 0 0 2px #F6D77A,0 3px 0 #F6D77A;color:#8A5A00}
.ps .lk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ps .lk-grid button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px 10px;border:2px solid #E5E5E5!important;border-radius:16px!important;box-shadow:0 2px 0 #E5E5E5!important;background:#fff!important}
.ps .lk-grid button.on{border-color:#FC9B00!important;box-shadow:0 2px 0 #FC9B00!important;background:#FFF8EC!important}
.ps .lk-grid b{display:block;font:800 13px/1.2 Nunito,system-ui,sans-serif!important;color:#191919!important;text-align:center}
.ps .lk-grid small{font:800 12px Nunito,system-ui,sans-serif!important;color:#A07A00!important}
.ps .lk-stage{border-radius:18px!important;margin-bottom:12px}

/* ---------- Rewards tab (7 Nov): wooden trophy cabinet, Pro Shop, badges ---------- */
.cbv .hf-top{align-items:center}
.cb-bal{display:flex;align-items:center;gap:5px;height:38px;padding:0 13px 0 9px;border-radius:99px;background:#F9EDC9;box-shadow:0 3px 0 #E2CD8E;border:0;font:900 16px Nunito;color:#191919;cursor:pointer}.cb-bal img{width:22px;height:22px}
.cb-seg{margin:12px 0 14px}
.cb-room{position:relative;margin:0 -2px;padding:16px 4px 20px;border-radius:24px;background:radial-gradient(120% 70% at 50% 18%,#FFF6DD 0%,#F6E5BC 58%,#EED7A3 100%);box-shadow:0 4px 0 #E2CD8E;overflow:hidden}
.cb-room::after{content:"";position:absolute;left:0;right:0;bottom:0;height:16%;background:linear-gradient(#E3C58A,#D9B676);border-top:2px solid rgba(160,110,40,.18)}
.cb{position:relative;z-index:1;width:min(100%,380px);margin:0 auto;aspect-ratio:880/1163;container-type:inline-size;filter:drop-shadow(0 14px 14px rgba(90,50,10,.28))}
.cb-img{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
/* 7 Nov fix (Joshua: trophies float, labels off, plate cramped). Everything below is measured off cabinet.webp (880×1163 px): % of the art, cqw = 1% of the cabinet width (8.8 art px) */
.cb-plate{position:absolute;left:40%;width:20%;top:6.2%;height:5%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15cqw;text-align:center;color:#5B3A06;text-shadow:0 .12cqw 0 rgba(255,240,190,.75)}   /* the brass face between the two screws (x 352–528, y 72–130) */
.cb-plate b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:900 3.3cqw/1 Nunito}.cb-plate small{font:800 2.3cqw/1 Nunito;letter-spacing:.15cqw;opacity:.85}
.cb-sh{position:absolute;left:19.5%;right:19.5%;display:flex;align-items:flex-end;justify-content:space-evenly;--lab:.4cqw}   /* each row ends exactly on its shelf top; it starts under the light above */
.cb-sh.s1{top:21.1%;height:15.01%}   /* top shelf: board top y 416–421 → bases at 420 */
.cb-sh.s2{top:40.4%;height:15.15%;--lab:.9cqw}.cb-sh.s2 .cb-t:not(.cup){flex:1.7 1 0}   /* middle shelf: top surface 636–652 → bases at 646, front face 652–673 */
.cb-sh.s2 .cup img{max-height:52%}
.cb-sh.s3{top:60.2%;height:17.19%;left:17.8%;right:17.8%}.cb-sh.s3 .cb-t img{max-height:40%;max-width:86%}   /* cabinet floor 870–925 → bases at 900; the row uses the floor’s full width so the 8 cups get room */
.cb-t{position:relative;height:100%;flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cb-t img{display:block;max-height:calc(80% * var(--h,1));max-width:80%;object-fit:contain;transition:transform .2s}
.cb-t:active img{transform:scale(.94)}
.cb-t.won img{filter:drop-shadow(0 0 6px rgba(255,214,120,.75)) drop-shadow(0 3px 2px rgba(0,0,0,.35))}
.cb-t.off img{filter:brightness(0) opacity(.28)}
.cb-t.won::before{content:"";position:absolute;left:50%;bottom:4%;width:80%;height:55%;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(255,220,140,.45),transparent);pointer-events:none}
.cb-t b{position:absolute;top:calc(100% + var(--lab));left:50%;transform:translateX(-50%);z-index:1;white-space:nowrap;font:900 2.6cqw/1 Nunito;color:#5B3A06;padding:.45cqw 1.2cqw .5cqw;border-radius:.8cqw;background:linear-gradient(#F8E09A,#D9AC4E);box-shadow:inset 0 0 0 .2cqw rgba(255,248,215,.45),0 .3cqw .4cqw rgba(60,30,0,.4)}   /* a little brass tag hanging from the shelf edge, centred under its trophy */
.cb-t.off b{background:linear-gradient(#E9D7A6,#C7A666);color:rgba(91,58,6,.72)}
.cb-t.cup b{display:none}
.cb-t em{position:absolute;top:0;right:4%;z-index:1;font:900 9px/1 Nunito;font-style:normal;color:#191919;background:#FFD24A;border-radius:99px;padding:2px 4px}
.cb-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 0}
.cb-stats div{border:2px solid #E5E5E5;box-shadow:0 2px 0 #E5E5E5;border-radius:16px;padding:10px 4px;text-align:center;background:#fff}
.cb-stats b{display:block;font:900 22px/1.1 Nunito;color:#191919}.cb-stats small{font:700 12px Nunito;color:#8A8A94}
.cb-hint{margin:10px 2px 0;text-align:center;font:700 13px/1.4 Nunito;color:#8A8A94}
.cb-big{width:150px;height:170px;object-fit:contain;margin:4px auto 6px;display:block;filter:drop-shadow(0 6px 8px rgba(0,0,0,.25))}.cb-big.off{filter:brightness(0) opacity(.22)}
.cb-bh{display:flex;align-items:center;gap:12px;margin:0 0 12px}.cb-bh b{font:900 16px Nunito;color:#191919;white-space:nowrap}
.cb-bh i{flex:1;height:12px;border-radius:99px;background:#EFEFEF;overflow:hidden}.cb-bh u{display:block;height:100%;border-radius:99px;background:#FC9B00}
.cb-bg{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cb-bd{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;border:2px solid #E5E5E5;box-shadow:0 2px 0 #E5E5E5;border-radius:18px;padding:12px 6px 10px;background:#fff}
.cb-bd b{font:900 12.5px/1.15 Nunito;color:#191919}.cb-bd small{font:600 11px/1.25 Nunito;color:#8A8A94}
.cb-bd.off{background:#FAFAFA}.cb-bd.off img,.cb-bd.off svg{filter:grayscale(1);opacity:.35}.cb-bd.off b{color:#9A9AA2}
.cbv .ps{padding:0}.cbv .ps .ps-hero{margin-top:0}

/* ---------- New badge screen (7 Nov) ---------- */
.bdc{position:absolute;inset:0;z-index:90;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(120% 80% at 50% 38%,var(--c2) 0%,var(--c1) 62%);animation:bdcIn .35s ease-out both;font-family:Nunito,system-ui,sans-serif}
.bdc.out{animation:bdcOut .55s ease-in .1s forwards}
.bdc-rays{position:absolute;left:50%;top:40%;width:900px;height:900px;margin:-450px 0 0 -450px;background:repeating-conic-gradient(rgba(255,255,255,.2) 0 9deg,transparent 9deg 22.5deg);border-radius:50%;-webkit-mask:radial-gradient(closest-side,#000 25%,transparent 72%);mask:radial-gradient(closest-side,#000 25%,transparent 72%);animation:bdcSpin 14s linear infinite,bdcFade .8s ease-out both}
.bdc-rays::after{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(rgba(255,255,255,.1) 0 5deg,transparent 5deg 30deg);animation:bdcSpin 22s linear infinite reverse}
@keyframes bdcFade{from{opacity:0}to{opacity:1}}
.bdc-in{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 28px;margin-top:-40px}
.bdc-k{font:900 14px Nunito;letter-spacing:2px;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.14);padding:7px 14px;border-radius:99px;animation:bdcUp .4s .25s both}
.bdc-b{position:relative;width:240px;height:240px;margin:22px 0 10px;display:flex;align-items:center;justify-content:center;animation:bdcPop 1s cubic-bezier(.2,1.4,.4,1) .15s both}
.bdc-b img,.bdc-b>i:not(.bdc-sh){position:relative;z-index:1;filter:drop-shadow(0 12px 14px rgba(0,0,0,.25))}
.bdc-b img{object-fit:contain;animation:bdcFloat 3s ease-in-out 1.2s infinite}
.bart{object-fit:contain}
@keyframes bdcFloat{50%{transform:translateY(-8px) rotate(-2deg)}}
.bdc-b>i:not(.bdc-sh){width:170px!important;height:170px!important;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--tc)}
.bdc-b>i:not(.bdc-sh) svg{width:84px;height:84px}
.bdc-glow{position:absolute;inset:-30px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.75),rgba(255,255,255,0));animation:bdcPulse 2.4s ease-in-out 1s infinite}
.bdc-sh{position:absolute;inset:0;z-index:2;border-radius:50%;overflow:hidden;pointer-events:none;-webkit-mask:radial-gradient(closest-side,#000 96%,transparent);mask:radial-gradient(closest-side,#000 96%,transparent)}
.bdc-sh::after{content:"";position:absolute;top:-20%;left:-60%;width:40%;height:140%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:rotate(20deg);animation:bdcShine 1s ease-in-out 1.1s both}
.bdc-t{margin:6px 0 4px;font:900 32px/1.1 Nunito;color:#fff;letter-spacing:-.5px;text-shadow:0 2px 0 rgba(0,0,0,.12);animation:bdcUp .45s .7s both}
.bdc-d{margin:0;font:700 17px/1.35 Nunito;color:rgba(255,255,255,.92);animation:bdcUp .45s .8s both}
.bdc-n{margin:16px 0 0;font:800 13px Nunito;color:#fff;background:rgba(255,255,255,.2);padding:7px 13px;border-radius:99px;animation:bdcUp .45s .95s both}
.bdc-btns{position:absolute;left:20px;right:20px;bottom:calc(30px + env(safe-area-inset-bottom));z-index:1;display:flex;flex-direction:column;gap:10px;animation:bdcUp .45s 1.1s both}
.bdc-btns button{height:52px;border:0;border-radius:14px;font:800 17px Nunito,system-ui,sans-serif;cursor:pointer}
.bdc-go{background:#FC9B00;color:#fff;box-shadow:0 3px 0 #DC8000}
.bdc-see{background:#fff;color:#191919;box-shadow:0 3px 0 rgba(0,0,0,.16)}
.bdc-btns button:active{transform:translateY(2px);box-shadow:0 1px 0 rgba(0,0,0,.16)}
.bdc-p{position:absolute;left:50%;top:calc(40% - 40px);width:9px;height:9px;border-radius:2px;background:var(--pc);opacity:0;animation:bdcBurst 1.1s cubic-bezier(.1,.8,.3,1) .45s both}
.bdc-p:nth-of-type(odd){border-radius:50%}
.bdc-b.fly{animation:bdcFly .65s cubic-bezier(.5,0,.75,.4) forwards}
/* 7 Nov eve, Joshua: a light tint of the badge's own colour (--bc, read off the art) with dark text, instead of the same pink */
.bdc{background:radial-gradient(120% 80% at 50% 38%,color-mix(in srgb,var(--bc,#2D9BE0) 10%,#fff) 0%,color-mix(in srgb,var(--bc,#2D9BE0) 26%,#fff) 62%,color-mix(in srgb,var(--bc,#2D9BE0) 36%,#fff) 100%)}
.bdc-rays{background:repeating-conic-gradient(rgba(255,255,255,.6) 0 9deg,transparent 9deg 22.5deg)}.bdc-rays::after{background:repeating-conic-gradient(rgba(255,255,255,.35) 0 5deg,transparent 5deg 30deg)}
.bdc-glow{background:radial-gradient(closest-side,rgba(255,255,255,.95),rgba(255,255,255,0))}
.bdc-k{color:color-mix(in srgb,var(--bc,#2D9BE0) 60%,#191919);background:#fff;box-shadow:0 0 0 1.5px color-mix(in srgb,var(--bc,#2D9BE0) 30%,#fff),0 2px 0 color-mix(in srgb,var(--bc,#2D9BE0) 30%,#fff)}
.bdc-b img,.bdc-b>i:not(.bdc-sh){filter:drop-shadow(0 10px 12px color-mix(in srgb,var(--bc,#2D9BE0) 35%,transparent))}
.bdc-t{color:#191919;text-shadow:none}.bdc-d{color:#4B4B55}
.bdc-n{color:#3B3F52;background:#fff;box-shadow:0 0 0 1.5px color-mix(in srgb,var(--bc,#2D9BE0) 25%,#fff)}
/* Buttons (7 Nov eve, Joshua: buttons didn't look great; "See my badges" should just be a text link) */
.bdc-btns{gap:6px}
.bdc-btns .bdc-go{height:54px;border-radius:16px;font:900 18px Nunito,system-ui,sans-serif;letter-spacing:.2px;background:color-mix(in srgb,var(--bc,#2D9BE0) 86%,#000);color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.15);box-shadow:0 4px 0 color-mix(in srgb,var(--bc,#2D9BE0) 64%,#000)}
.bdc-btns .bdc-go:active{transform:translateY(3px);box-shadow:0 1px 0 color-mix(in srgb,var(--bc,#2D9BE0) 64%,#000)}
.bdc-btns .bdc-see{height:auto;padding:12px 8px;background:none;border:0;box-shadow:none;color:color-mix(in srgb,var(--bc,#2D9BE0) 45%,#191919);font:800 15px Nunito,system-ui,sans-serif}
.bdc-btns .bdc-see:active{transform:none;box-shadow:none;opacity:.6}
.bdc-see i{font-style:normal;font-weight:700;opacity:.7}
.bdc.out .bdc-in>*:not(.bdc-b),.bdc.out .bdc-btns,.bdc.out .bdc-rays{opacity:0;transition:opacity .2s}
html.va .tabs .ti.bump{animation:bdcBump .6s cubic-bezier(.3,1.6,.5,1)}
html.va .tabs .ti[data-new]::after{content:attr(data-new);position:absolute;top:-6px;right:-8px;background:#FC9B00;color:#fff;font:900 11px/1 Nunito;padding:4px 6px;border-radius:99px;box-shadow:0 2px 0 #DC8000;animation:bdcUp .3s both}
.cb-bd.new{border-color:#FC9B00;box-shadow:0 2px 0 #DC8000;animation:bdcBump .7s cubic-bezier(.3,1.6,.5,1) .2s}
@keyframes bdcIn{from{opacity:0}to{opacity:1}}
@keyframes bdcOut{to{background:transparent;opacity:0}}
@keyframes bdcSpin{to{transform:rotate(360deg)}}
@keyframes bdcRays{from{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes bdcPop{0%{transform:scale(.1) rotateY(540deg);opacity:0}55%{opacity:1}100%{transform:scale(1) rotateY(0)}}
@keyframes bdcUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes bdcPulse{50%{transform:scale(1.12);opacity:.7}}
@keyframes bdcShine{from{left:-60%}to{left:130%}}
@keyframes bdcBurst{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(1)}100%{opacity:0;transform:rotate(var(--a)) translateY(calc(var(--d) * -1.9)) scale(.4)}}
@keyframes bdcFly{to{transform:translate(var(--fx),var(--fy)) scale(.14);opacity:.6}}
@keyframes bdcBump{0%{transform:scale(1)}40%{transform:scale(1.25)}100%{transform:scale(1)}}

/* ---------- Journey polish (7 Nov, Joshua picked "polish the live Journey"): own colours instead of the old purple, a light section card like Home, orange Start ---------- */
html.va #app[data-tab=path]{--k-purple:#191919}
html.va .j3go{background:#FC9B00!important;color:#fff!important;border-radius:99px!important;padding:8px 16px!important;box-shadow:0 3px 0 #DC8000!important;letter-spacing:.06em!important;animation:jgoBob 1.6s ease-in-out infinite}
html.va .j3go::after{background:#FC9B00!important;box-shadow:none!important;bottom:-5px!important}
@keyframes jgoBob{50%{transform:translateX(-50%) translateY(-4px)}}
html.va .j3ev.gm,html.va .gf-lab{background:#191919!important;color:#fff!important}
html.va .j3ev b{background:#FC9B00!important;color:#fff!important}
html.va .jc-bub{color:#191919!important}html.va .jc-bub svg,html.va .jc-bub circle{color:#FC9B00!important;fill:#FC9B00}
html.va .j3n-bk{color:#191919!important}
html.va .j-sec{background:#fff!important;color:#191919!important;border:2px solid #E5E5E5;box-shadow:0 2px 0 #E5E5E5!important;border-radius:18px!important;padding:10px 14px!important}
html.va .j-sec small{color:var(--sc,#9E7945)!important;opacity:1!important;font-weight:900!important}
html.va .j-sec b{color:#191919!important}
html.va .j-sec span{color:#8A8A94!important}
html.va .j-tro{top:max(62px,calc(env(safe-area-inset-top) + 18px));box-shadow:0 2px 0 #E5E5E5,0 0 0 2px #E5E5E5}
html.va .j3next{border:2px solid #E5E5E5;box-shadow:0 3px 0 #E5E5E5,0 18px 30px -18px rgba(0,0,0,.25)!important}
html.va .j3next .b3{background:#FC9B00!important;box-shadow:0 4px 0 #DC8000!important;color:#fff!important}
html.va .j3n.cur .j3w::before{content:"";position:absolute;inset:-10px;border-radius:50%;border:3px solid rgba(255,255,255,.9);animation:jcurRing 1.8s ease-out infinite;pointer-events:none}
@keyframes jcurRing{from{transform:scale(.85);opacity:.9}to{transform:scale(1.35);opacity:0}}
/* 7 Nov, Joshua: no sticky section card on the Journey ("too many cards going on" with the Up next card at the bottom) */
html.va .j-sec{display:none!important}
/* Up next card, concept C without the picture (7 Nov) */
html.va .j3next.jnc{display:block!important;padding:14px 14px 13px 18px!important;border-radius:20px!important}
html.va .jnc-row{display:flex;align-items:center;gap:12px}
html.va .jnc .j3x{flex:1;min-width:0}
html.va .jnc .j3x small{display:block;font:800 13px Nunito!important;color:#9E7945!important;letter-spacing:0!important;text-transform:none!important;margin-bottom:2px}
html.va .jnc .j3x b{display:block;font:900 21px/1.15 Nunito!important;color:#191919!important;letter-spacing:-.3px}
html.va .jnc .b3.sm{flex:none;height:48px!important;padding:0 22px!important;font-size:17px!important;border-radius:14px!important}
html.va .jnc-pr{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:11px;border-top:2px solid #F2F2F2}
html.va .jnc-pr i{flex:1;height:6px;border-radius:6px;background:#EDEDED;overflow:hidden}html.va .jnc-pr u{display:block;height:100%;border-radius:6px;background:#FC9B00}
html.va .jnc-pr small{font:800 13px Nunito!important;color:#8A8A94!important;white-space:nowrap;text-transform:none!important;letter-spacing:0!important}
/* Analyse my match: first-time walkthrough (7 Nov) */
.ri{display:flex;flex-direction:column;align-items:center;text-align:center;padding:8px 6px 0;min-height:60vh}
.ri-dots{display:flex;gap:6px;margin:4px 0 14px}.ri-dots i{width:8px;height:8px;border-radius:99px;background:#E5E5E5;transition:width .25s}.ri-dots i.on{width:22px;background:#FC9B00}
.ri-pic{width:220px;height:220px;object-fit:contain;margin:4px 0 8px;border-radius:28px;background:#D3E8F8;box-shadow:0 4px 0 #A9CDEB;padding:10px;animation:riIn .45s cubic-bezier(.2,1.3,.4,1) both}
.ri-t{margin:14px 0 6px;font:900 26px/1.15 Nunito;color:#191919;letter-spacing:-.4px;animation:riUp .35s .08s both}
.ri-s{margin:0 10px;font:700 16px/1.45 Nunito;color:#6B6B73;animation:riUp .35s .14s both}
.ri-btns{width:100%;margin-top:auto;padding-top:26px;display:flex;flex-direction:column;gap:8px}
/* the "why" card (7 Nov): a smaller picture, then three reasons as white rows */
.ri-pic.sm{width:124px;height:124px;padding:6px;margin-top:0;background:#FFF1D9;box-shadow:0 4px 0 #F3DDB4}
.ri-why{width:100%;display:flex;flex-direction:column;gap:8px;margin-top:16px;text-align:left;animation:riUp .35s .2s both}
.ri-why>div{display:flex;align-items:center;gap:12px;padding:11px 14px;border:2px solid #E5E5E5;border-radius:16px;box-shadow:0 2px 0 #E5E5E5;background:#fff}
.ri-why img{flex:none;width:34px;height:34px;object-fit:contain}
.ri-why b{display:block;font:800 15.5px/1.2 Nunito,system-ui,sans-serif;color:#191919}.ri-why small{display:block;margin-top:2px;font:600 13px/1.35 Nunito,system-ui,sans-serif;color:#6B6B73}
@keyframes riIn{from{transform:scale(.85);opacity:0}to{transform:none;opacity:1}}
@keyframes riUp{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}

/* ---------- Journal, Joshua's Figma 204:658 (7 Nov): green hero, plain tabs, dated note rows ---------- */
html.va .jx-hero{background:#B2F9C2!important;box-shadow:0 4px 0 #5AD886!important}
html.va .jx-hero .jx-k{color:#00A93B!important;letter-spacing:1px!important;font-weight:900!important}
html.va .jx-hero .jx-go{background:#18C471!important;box-shadow:0 3px 0 #06A156!important;color:#fff!important;border-radius:12px!important}
html.va .jx-hero .jx-xp{background:#fff!important;border:1.5px solid #5AD886!important;box-shadow:0 2px 0 #3EC26C!important;color:#191919!important}
html.va .jx-seg button{background:none!important;box-shadow:none!important;border:0!important;color:#191919!important;font-weight:700!important}
html.va .jx-seg button.on{color:#18C471!important;font-weight:900!important}
.jx-mon{display:flex;align-items:center;gap:7px;margin:18px 2px 10px;font:800 14.5px Nunito;color:#191919}.jx-mon svg{width:17px;height:17px;color:#191919}
.jx-rows{display:flex;flex-direction:column;gap:10px}
.jx-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:2px solid #E5E5E5;border-radius:18px;box-shadow:0 2px 0 #E5E5E5;background:#fff;text-align:left;cursor:pointer;font-family:Nunito,system-ui,sans-serif}
.jx-row:active{transform:translateY(1px);box-shadow:none}
.jxr-d{flex:none;width:38px;display:flex;flex-direction:column;align-items:center;line-height:1}
.jxr-d small{font:700 14px Nunito;color:#FF4C4C}.jxr-d b{font:800 22px/1.1 Nunito;color:#191919;letter-spacing:-.4px}
.jxr-sep{flex:none;width:2px;align-self:stretch;min-height:44px;border-radius:2px;background:#E5E5E5}
.jxr-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.jxr-t small{font:800 11.5px Nunito;letter-spacing:.3px;text-transform:uppercase}
.jxr-t b{font:700 15.5px/1.35 Nunito;color:#191919;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jx-foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px}
.jx-newp{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 14px;border:2px solid #E5E5E5;border-radius:14px;box-shadow:0 2px 0 #E5E5E5;background:#fff;font:800 13.5px Nunito;color:#00B6F8;cursor:pointer}.jx-newp svg{width:13px;height:13px}
/* Journal hero spacing (7 Nov): more padding, Tico sits below the +10 chip instead of under it */
html.va .jx-hero{padding:24px 22px 24px!important}
html.va .jx-hero .jx-tico{height:auto!important;top:48px;bottom:-10px!important;right:-8px!important;max-width:46%!important}
html.va .jx-hero .jx-xp{top:14px!important;right:14px!important}
html.va .jx-hero .jx-t{max-width:56%!important;margin:12px 0 4px!important}
html.va .jx-hero .jx-go{margin-top:18px!important}
/* Journal empty states (7 Nov): soft grey card, centred clay picture */
html.va .jx-empty{display:flex;flex-direction:column;align-items:center;padding:22px 20px 24px;background:#F7F7F7;border:2px dashed #E2E2E2;border-radius:20px;box-shadow:none;text-align:center}
html.va .jx-empty img{display:block;width:150px;height:118px;margin:0 auto 8px;object-fit:contain}
html.va .jx-empty b{color:#5E5E66}
html.va .jx-empty p{color:#9A9AA2}
/* Weekly focus sheet (7 Nov): the current focus as a cream card, white input, Home's orange Save, picks as cards */
html.va.pm2 #sheet .fcs-h small{color:#9E7945!important;letter-spacing:.8px!important}
html.va.pm2 #sheet .fcs-h b{font-size:23px!important}
html.va #sheet .fcs-cur{display:flex;align-items:center;gap:12px;margin:12px 0 14px;padding:13px 14px;border-radius:18px;background:#F9EDC9;box-shadow:0 3px 0 #E2CD8E}
html.va #sheet .fcs-cur i{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#fff;box-shadow:0 2px 0 #E2CD8E;color:#FC9B00}.fcs-cur i svg{width:22px;height:22px}
html.va #sheet .fcs-cur span{min-width:0}.fcs-cur small{display:block;font:800 12px Nunito;color:#9E7945}.fcs-cur b{display:block;margin-top:1px;font:800 16.5px/1.25 Nunito;color:#191919}
html.va.pm2 #sheet .fcs-in textarea{background:#fff!important;border:2px solid #E5E5E5!important;box-shadow:0 2px 0 #E5E5E5!important}
html.va.pm2 #sheet .fcs-in textarea:focus{border-color:#FC9B00!important}
html.va.pm2 #sheet .fcs-in .micsm{background:#FFF3DF!important;color:#E08600!important;box-shadow:none!important}
html.va.pm2 #sheet .fcs-save{background:#FC9B00!important;box-shadow:0 3px 0 #DC8000!important;border-radius:14px!important;color:#fff!important}
html.va.pm2 #sheet .fcs-or{color:#9E7945!important;letter-spacing:.8px!important}
html.va.pm2 #sheet .fcs-pick button{display:flex!important;align-items:center;justify-content:space-between;gap:10px;background:#fff!important;border:2px solid #E5E5E5!important;box-shadow:0 2px 0 #E5E5E5!important;border-radius:16px!important;text-align:left}
html.va.pm2 #sheet .fcs-pick button svg{flex:none;width:14px;height:14px;color:#FC9B00}
html.va.pm2 #sheet .fcs-pick button:active{transform:translateY(1px);box-shadow:none!important}
html.va.pm2:not(.ds-off) #sheet .b3.fcs-save:not(.ghost):not(.white):not(.lk){background:#FC9B00!important;box-shadow:0 3px 0 #DC8000!important;border-radius:14px!important;color:#fff!important}
html.va.pm2 #sheet .fcs-in .micsm svg{color:#E08600!important}
/* fun fact: character centred vertically */
html.va .hf-dyk .hf-who{align-self:center!important;margin:0 -4px 0 0!important;width:124px}
/* weekly focus: 3D target, no tile */
html.va #sheet .fcs-cur i{width:48px;height:48px;background:none;box-shadow:none;border-radius:0}
html.va #sheet .fcs-cur i img{width:48px;height:48px;object-fit:contain;display:block}
/* focus input: no purple ring, one orange border */
html.va.pm2 #sheet .fcs-in,html.va.pm2 #sheet .fcs-in:focus-within{outline:none!important;box-shadow:none!important;border:0!important;background:none!important}
html.va.pm2 #sheet .fcs-in textarea:focus,html.va.pm2 #sheet .fcs-in textarea:focus-visible{outline:none!important;border-color:#FC9B00!important;box-shadow:0 2px 0 #DC8000!important}
html.va.pm2 #sheet .hwin:not(.fcs-in):focus-within{box-shadow:0 0 0 2px #FC9B00!important}html.va .hwin textarea:focus{box-shadow:none}
/* recap intro: calmer spacing + clearer hierarchy */
html.va .mr .ri{padding:4px 8px 0}
html.va .mr .ri .ri-dots{margin:2px 0 22px}
html.va .mr .ri .ri-pic:not(.sm){width:100%;max-width:300px;height:244px;padding:14px;border-radius:28px}
html.va .mr .ri .ri-k{display:block;margin:28px 0 0;font:800 13px Nunito;letter-spacing:.8px;text-transform:uppercase;color:#9E7945;animation:riUp .35s .05s both}
html.va .mr .ri .ri-pic:not(.sm)+.ri-t{margin-top:28px}
html.va .mr .ri .ri-k+.ri-t{margin:8px 0 0!important}
html.va .mr .ri .ri-t{margin:20px 0 0;font:900 27px/1.15 Nunito;text-wrap:balance}
html.va .mr .ri .ri-s{margin:12px auto 0!important;max-width:310px;font:700 16.5px/1.5 Nunito;color:#6B6B73;text-wrap:balance}
html.va.pm2 .mr .ri .b3.ri-go.ri-go.ri-go.ri-go.ri-go:not(.ghost){background:#FC9B00!important;box-shadow:0 3px 0 #DC8000!important;border-radius:14px!important;color:#fff!important}

html.va .mr .ri .ri-k{font:800 13px Nunito!important;letter-spacing:.8px!important;text-transform:uppercase;color:#9E7945!important;opacity:1}
/* recap: Coach Carlos card, quote first then two clear tiles */
html.va .rcc{padding:16px!important}
.rcc-top{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.rcc-top img{flex:none;width:76px;height:76px;object-fit:contain;border-radius:20px;background:#E8F3FC;padding:4px}
.rcc-top small{display:block;font:800 12.5px Nunito,system-ui,sans-serif;letter-spacing:.6px;text-transform:uppercase;color:#9E7945}
.rcc-top p{margin:3px 0 0;font:800 18px/1.3 Nunito,system-ui,sans-serif;color:#191919;letter-spacing:-.2px;text-wrap:pretty}
.rcc-pt{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:16px}
.rcc-pt+.rcc-pt{margin-top:8px}
.rcc-pt.ok{background:#E8F9EE}.rcc-pt.nx{background:#FFF3DF}
.rcc-pt i{flex:none;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;color:#fff}
.rcc-pt.ok i{background:#22B573;box-shadow:0 2px 0 #14955A}.rcc-pt.nx i{background:#FC9B00;box-shadow:0 2px 0 #DC8000}
.rcc-pt i svg{width:16px;height:16px}
.rcc-pt span{min-width:0;font:700 14.5px/1.4 Nunito,system-ui,sans-serif;color:#3B3F52}
.rcc-pt b{display:block;margin-bottom:1px;font:900 12.5px Nunito,system-ui,sans-serif;letter-spacing:.6px;text-transform:uppercase}
.rcc-pt.ok b{color:#14955A}.rcc-pt.nx b{color:#C46D00}
html.va .hf-streak>img{width:21px;height:21px;object-fit:contain}
html.va:has(#sheet.on) .j3next.jnc,html.va:has(.flow) .j3next.jnc,html.va:has(.mr .mr-s) .j3next.jnc{display:none!important}
/* the bell: What's new (7 Nov) */
#sheet .bl{padding:2px 2px 8px}
.bl-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 14px}
html.va #sheet .bl-h h2{margin:0;font:900 23px Nunito,system-ui,sans-serif;color:#191919}
html.va #sheet .bl-h .lk{font:800 14px Nunito,system-ui,sans-serif;color:#C46D00;background:none;border:0;padding:4px 0}
.bl-l{display:flex;flex-direction:column;gap:8px}
html.va #sheet .bl-i{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:12px 12px 12px 12px;border:2px solid #E5E5E5;border-radius:18px;background:#fff;box-shadow:0 2px 0 #E5E5E5;text-align:left;color:#191919;cursor:pointer}
html.va #sheet .bl-i.new{background:#FFF8EA;border-color:#F3DDB4;box-shadow:0 2px 0 #F3DDB4}
html.va #sheet .bl-i.new::after{content:"";position:absolute;top:12px;right:12px;width:9px;height:9px;border-radius:50%;background:#FC9B00}
.bl-p{flex:none;width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#F7F7F7}
.bl-i.new .bl-p{background:#fff}
.bl-p img{width:40px;height:40px;object-fit:contain}.bl-p .bart{width:44px!important;height:44px!important}
.bl-p svg{width:24px;height:24px;color:var(--gc,#FC9B00)}
.bl-t{flex:1;min-width:0}
.bl-t b{display:block;font:800 15.5px/1.25 Nunito,system-ui,sans-serif;color:#191919;padding-right:12px}
.bl-t small{display:block;margin-top:2px;font:600 13.5px/1.35 Nunito,system-ui,sans-serif;color:#6B6B73;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bl-t em{display:block;margin-top:4px;font:700 12px Nunito,system-ui,sans-serif;font-style:normal;color:#9E9EA6}
.bl-i>svg{flex:none;width:16px;height:16px;color:#BDBDC4}
.bl-e{display:flex;flex-direction:column;align-items:center;text-align:center;padding:22px 16px 26px;border:2px dashed #E5E5E5;border-radius:20px;background:#F7F7F7}
.bl-e img{width:120px;height:120px;object-fit:contain;margin-bottom:8px}
.bl-e b{font:900 19px Nunito,system-ui,sans-serif;color:#191919}.bl-e small{margin-top:4px;max-width:260px;font:700 14.5px/1.4 Nunito,system-ui,sans-serif;color:#6B6B73}
/* Pressure Points card (7 Nov, Joshua's mock): white card, brain label, big title, Learn Strategy, character in a soft circle */
.hf .hf-pp.tod{position:relative;padding:0;overflow:hidden;background:#fff!important;border:2px solid #E5E5E5;border-radius:18px;box-shadow:0 2px 0 #E5E5E5!important;color:#191919;min-height:0;margin:0}
.hf .hf-pp.tod::before,.hf .hf-pp.tod::after{display:none}
.hf-pp .tod-b{position:relative;z-index:1;display:block;width:100%;padding:18px 138px 20px 18px;border:0;background:none!important;box-shadow:none!important;text-align:left;font-family:inherit;color:inherit;cursor:pointer}
.hf-lab.pp{color:#8A2BD9}
.hf-pp .hf-ct{display:block;margin-top:10px;font:700 19px/1.25 Nunito,system-ui,sans-serif;color:#191919}
.hf-btn.pp{background:#7C3AED;box-shadow:0 3px 0 #5B21B6;margin-top:16px;height:38px;padding:0 18px;font-size:14px}
.hf-ppic{position:absolute;right:12px;top:50%;width:118px;height:118px;margin-top:-59px;border-radius:50%;background:#F5C46B;box-shadow:0 0 0 6px #FBE3B0;overflow:hidden;pointer-events:none}
.hf-ppic img{position:absolute;left:50%;bottom:-6px;width:122%;transform:translateX(-50%);object-fit:contain}
.hf-pp .tod-mine{display:none!important}
/* tip sheet: Save to my Journal (7 Nov) */
.tsh-acts .tsh-btn.main{order:1}.tsh-acts .tsh-save{order:2}.tsh-acts .tsh-two{order:3}
.tsh .tsh-save svg{width:19px;height:19px}
html:not(.ds-off) .tsh .tsh-save.on{background:#E8F9EE!important;color:#14955A!important;box-shadow:0 3px 0 #BFEACD!important}
.tsh .tsh-save.on svg{fill:currentColor}
.hf-ppic img{width:112%;bottom:-4px}

/* 7 Nov: Pressure Points character without the circle */
.hf-ppic{background:none!important;box-shadow:none!important;border-radius:0!important;overflow:visible!important;width:132px!important;height:150px!important;margin-top:-75px!important;right:6px!important}
.hf-ppic img{width:100%!important;height:100%!important;bottom:0!important;object-fit:contain;object-position:50% 100%}
/* On court with just Weekly Focus (Game Plan off Home for now) */
.hf-one .hf-sq{width:100%;min-height:0}
html.va .hf .hf-lab{font-weight:900!important}   /* card labels extra bold (7 Nov, Joshua) */
/* lesson start screen in the Home look (8 Nov, Joshua: icons + the "Mind lesson" label didn't match) */
html.va .ki-card{padding:20px 18px 22px!important;border:2px solid #E5E5E5!important;border-radius:20px!important;background:#fff!important;box-shadow:0 3px 0 #E5E5E5!important}
html.va .ki-pill{position:static!important;transform:none!important;display:inline-flex!important;align-items:center;gap:7px;margin:0 auto 10px;padding:0!important;background:none!important;box-shadow:none!important;color:#9E7945!important;font:900 15px Nunito,system-ui,sans-serif!important;letter-spacing:0!important;text-transform:none!important}
html.va .ki-pill img{width:26px;height:26px;object-fit:contain}
html.va .ki-card h2{color:#191919!important}
html.va .ki-steps i{width:68px!important;height:68px!important;border-radius:20px!important;background:#fff!important;border:2px solid #E5E5E5;box-shadow:0 3px 0 #E5E5E5!important}
html.va .ki-steps i img{width:42px;height:42px;object-fit:contain}
html.va .ki-steps span{color:#191919!important;font-weight:800!important}
html.va .ki-steps em svg{color:#C9C9CF!important}
html.va.pm2 .flow.introf .ffoot .b3[data-qnext]:not(.ghost):not(.white),html.va .flow.introf .b3[data-qnext].b3.b3.b3{background:#FC9B00!important;box-shadow:0 3px 0 #DC8000!important;color:#fff!important;border-radius:14px!important}
/* Journal: faint doodle background (8 Nov, Joshua's Figma 219:1057, 10% opacity) */
html.va .hf.jx{position:relative;isolation:isolate;min-height:100%}
html.va .hf.jx::before{content:"";position:absolute;inset:-60px -20px -40px;z-index:-1;pointer-events:none;background:url(assets/journal/doodles.webp) 50% 0/100% auto repeat-y;opacity:.1}
/* Weekly focus: Coach Carlos peeks up from behind the cream card (8 Nov, Joshua) */
html.va #sheet .fcs-h{position:relative;z-index:0;padding-right:128px!important}
html.va #sheet .fcs-carlos{position:absolute;right:0;bottom:-50px;width:142px;height:auto;z-index:-1;pointer-events:none}
html.va #sheet .fcs-cur{position:relative;z-index:1}
html.va #sheet:has(.fcs-carlos){overflow:visible!important;max-height:none!important}   /* his head can hang over the top of the sheet; this sheet never needs to scroll */

/* ---------- 8 Nov: the minimal Journey (Joshua's Figma 208:840) · html.jm ---------- */
html.va.jm .chap,html.va.jm .chap.chap-all,html.va.jm .path,html.va.jm #app .scr:has(.path){background:#fff!important;background-image:none!important}
html.va.jm .chap::before,html.va.jm .chap::after,html.va.jm .path::before,html.va.jm .path::after,html.va.jm .pstars,html.va.jm .dball{display:none!important}
html.va.jm .trail .re{display:none}
html.va.jm .trail .rb,html.va.jm .trail .rb.on{fill:none!important;stroke:#DADADA!important;stroke-width:3px!important;stroke-dasharray:9 12;stroke-linecap:round;opacity:1!important;filter:none!important}
/* stops */
html.va.jm .jm-n{background:none!important;border:0!important;box-shadow:none!important;padding:0!important;display:flex;flex-direction:column;align-items:center;overflow:visible}
html.va.jm .jm-c{position:relative;display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:#fff;border:2px solid #E5E5E5;box-shadow:0 3px 0 #C9C9C9;transition:transform .15s}
html.va.jm .jm-c img{width:25px;height:25px;display:block}
html.va.jm .jm-n.k-ticket .jm-c img{width:32px;height:auto}
html.va.jm .jm-n.done .jm-c{background:#90F0A6;border-color:#5AD886;box-shadow:0 3px 0 #49C876}
html.va.jm .jm-n.done .jm-c img{width:28px;height:28px}
html.va.jm .jm-n.cur .jm-c{width:80px;height:80px;background:#fff;border:4px solid #FFDF43;box-shadow:none;padding:0}
html.va.jm .jm-n.cur .jm-c .jm-ball{width:66px;height:66px;animation:jmBob 1.8s ease-in-out infinite}
@keyframes jmBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
html.va.jm .jm-n:active .jm-c{transform:translateY(2px)}
html.va.jm .jm-lab{margin-top:8px;padding:5px 12px;border-radius:999px;background:#fff;border:2px solid #E5E5E5;box-shadow:0 2px 0 #E5E5E5;font:800 13.5px/1.1 Nunito,system-ui,sans-serif;color:#191919;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
html.va.jm .jm-lab small{font:900 10.5px/1 Nunito;color:#fff;background:#FC9B00;border-radius:6px;padding:3px 5px}
html.va.jm .jm-lab svg{width:13px;height:13px;color:#E0A100}
html.va.jm .jm-lab.cur{position:absolute;top:calc(100% + 2px);left:50%;transform:translateX(-50%);margin:0}
/* tournaments = little stadiums, grey until you reach them */
html.va.jm .jm-ev .jm-stop{display:block;width:150px;margin:-34px 0 -18px}
html.va.jm .jm-ev .jm-stop img{width:100%;display:block}
html.va.jm .jm-ev.lock .jm-stop img{filter:grayscale(1) contrast(.9) brightness(1.08);opacity:.75}
html.va.jm .jm-ev.lock .jm-lab{color:#9A9A9A}
html.va.jm .jm-ev.lock .jm-lab small{background:#CFCFCF}
html.va.jm .jm-ev.cur .jm-stop img{animation:jmBob 1.8s ease-in-out infinite}
/* the Slam stadium */
html.va.jm .slam3d .s3-fx,html.va.jm .slam3d .s3-sh{display:none!important}
html.va.jm .slam3d.lock img{filter:grayscale(1) contrast(.9) brightness(1.08)!important;opacity:.8}
/* topic lines + the road's name */
html.va.jm .j-topic::before,html.va.jm .j-topic::after{height:2px;background:#E5E5E5}
html.va.jm .j-topic span{background:#fff!important;color:#191919!important;font:800 16px/1.2 Nunito,system-ui,sans-serif!important;padding:2px 10px!important}
/* Up next sits on top */
html.va.jm .j3next.jnc.jmx{top:calc(env(safe-area-inset-top,0px) + 10px)!important;bottom:auto!important;display:flex!important;align-items:center;gap:10px;padding:12px 12px 12px 16px!important;border-radius:22px!important;border:2px solid #D0D0D0!important;box-shadow:0 4px 0 #D0D0D0!important;background:#fff!important}
html.va.jm .jmx-l{flex:1;min-width:0}
html.va.jm .jmx-l small{display:flex;align-items:center;gap:5px;font:800 15px/1.1 Nunito!important;color:#00A93B!important;text-transform:none!important;letter-spacing:-.2px!important}
html.va.jm .jmx-l small img{width:17px;height:17px}
html.va.jm .jmx-l b{display:block;margin-top:3px;font:900 19.5px/1.15 Nunito!important;color:#191919;letter-spacing:-.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.va.jm .jmx-pr{display:flex;align-items:center;gap:8px;margin-top:6px;font:700 13px/1 Nunito;color:#7B7B7B;white-space:nowrap}
html.va.jm .jmx-pr>span{display:flex;gap:3px}
html.va.jm .jmx-pr i{width:13px;height:7px;border-radius:5px;background:#E5E5E5}html.va.jm .jmx-pr i.on{background:#5AD886}
html.va.jm .jmx-st{width:58px;height:auto;flex:none;margin:-8px -6px -8px 0}
html.va.jm .jmx .b3.sm{flex:none;height:46px!important;padding:0 18px!important;font-size:16px!important;border-radius:14px!important}
html.va.jm .app .scroll .chap.chap.chap,html.va.jm .app .scroll.scroll.scroll:has(.path){background:#fff!important;background-image:none!important}
html.va.jm .app .scroll .trail path.rb.rb.rb{fill:none!important;stroke:#DADADA!important;stroke-width:3px!important;stroke-dasharray:9 12!important;stroke-linecap:round!important;opacity:1!important;filter:none!important}
html.va.jm .app .scroll:has(.path){padding-top:92px}
html.va.jm .jmx-pr i{width:22px}html.va.jm .jmx-pr i:not(.on){background:#E5E5E5}html.va.jm .jmx-pr i.on{background:#5AD886}
html.va.jm .jmx-pr{overflow:hidden;text-overflow:ellipsis}
html.va.jm .jmx-st{width:46px;margin:0}
html.va.jm .rsign{background:none!important;border:0!important;box-shadow:none!important;justify-content:center!important;text-align:center}
html.va.jm .rsign small{color:#9E7945!important}
html.va.jm .rsign b{font-size:22px!important}
html.va.jm .rsign span:not(.rs-tix){color:#7B7B7B!important}
html.va.jm .rsign .rs-tix{display:none!important}
html.va.jm .jmx-pr i{width:15px}html.va.jm .jmx-pr{gap:6px;font-size:12.5px}html.va.jm .jmx-st{width:40px;margin-left:-4px}
html.va.jm .jm-ev .jm-stop{position:relative;width:136px}
html.va.jm .jm-ev .jm-stop::before{content:"";position:absolute;left:-8%;right:-8%;bottom:4%;height:38%;border-radius:50%;background:#F0F0F0;z-index:-1}
/* 8 Nov: Up next hides over sheets, flows (tournament draw, Slam, lessons) and the recap, so their back buttons show */
html.va.jm:has(#sheet.on) .j3next.jnc.jmx,html.va.jm:has(.flow) .j3next.jnc.jmx,html.va.jm:has(.mr .mr-s) .j3next.jnc.jmx,html.va.jm:has(.slam) .j3next.jnc.jmx{display:none!important}
html.va.jm .jmx-st{display:none}
/* 8 Nov (Joshua): Up next goes back to the bottom of the phone, over the tab bar */
html.va.jm .j3next.jnc.jmx{top:auto!important;bottom:96px!important}
html.va.jm .app .scroll:has(.path){padding-top:0}
html.va.jm:has(#sheet.on) .j3next.jnc.jmx,html.va.jm:has(.flow) .j3next.jnc.jmx,html.va.jm:has(.mr .mr-s) .j3next.jnc.jmx{display:none!important}
/* 8 Nov (Joshua: "not so clean"): answer banner headline + quiz stars pill stay on one line each */
html.va .fban .fb-h{display:flex!important;align-items:center;flex-wrap:wrap;gap:6px 10px}
html.va .fban .fb-h>b{white-space:nowrap}
html.va .fban .qz-plus{display:inline-flex!important;align-items:center;gap:5px;white-space:nowrap;padding:5px 11px!important;border-radius:999px;background:#fff;font:800 14px/1 Nunito!important;color:#9E7945!important;width:auto!important;max-width:none!important}
html.va .fban .qz-plus svg{width:15px;height:15px;color:#F5B400;flex:none}
/* 8 Nov (Joshua: "make this design better"): the tournament screen in the Home look, with the stop's own stadium */
html.va.jm .flow .sl-hero.ev-hero{height:auto;padding:64px 20px 22px;background:#F9EDC9!important;border-radius:0 0 28px 28px;box-shadow:0 4px 0 #E2CD8E;display:flex;flex-direction:column;align-items:center;overflow:visible}
html.va.jm .flow .sl-hero.ev-hero::after{display:none}
html.va.jm .flow .ev-hero .ev-st{width:62%;max-width:250px;margin:0 0 4px;filter:none;position:relative;z-index:1}
html.va.jm .flow .ev-hero::before{content:"";position:absolute;left:50%;top:calc(64px + 46%);transform:translateX(-50%);width:62%;max-width:270px;aspect-ratio:2.6;border-radius:50%;background:rgba(226,205,142,.55);z-index:0}
html.va.jm .flow .ev-hero .sl-ht{position:relative!important;inset:auto!important;left:auto!important;bottom:auto!important;text-align:center;z-index:1;color:#191919!important;padding:0!important}
html.va.jm .flow .ev-hero .sl-ht small{display:block;font:800 12.5px/1.2 Nunito!important;letter-spacing:.06em;text-transform:uppercase;color:#9E7945!important;opacity:1!important;text-shadow:none!important}
html.va.jm .flow .ev-hero .sl-ht b{display:block;margin-top:4px;font:900 32px/1.05 Nunito!important;color:#191919!important;letter-spacing:-.6px;text-shadow:none!important}
html.va.jm .flow .ev-hero .x{top:calc(env(safe-area-inset-top,0px) + 14px);background:#fff;border:2px solid #E5E5E5;box-shadow:0 2px 0 #E5E5E5}
html.va.jm .flow .prize{border-radius:20px;box-shadow:0 0 0 2px #E5E5E5 inset,0 3px 0 #E5E5E5;background:#fff!important;background-image:none!important}
html.va.jm .flow .prize .pz-t.ev-cup{background:#FFF4D6!important;color:#E0A100!important;box-shadow:none!important;border-radius:16px}
html.va.jm .flow .prize small{color:#9E7945!important}
html.va.jm .flow .prize b{color:#191919!important}
html.va.jm .flow .prize em{color:#7B7B7B!important}
html.va.jm .flow .draw .dr-h b{color:#191919}html.va.jm .flow .draw .dr-h small{color:#9E7945;font-weight:800}
html.va.jm .flow .dr-m{border-radius:18px;box-shadow:0 0 0 2px #E5E5E5 inset,0 3px 0 #E5E5E5;padding:12px 14px}
html.va.jm .flow .dr-m.cur{box-shadow:0 0 0 2px #FC9B00 inset,0 3px 0 #DC8000}
html.va.jm .flow .dr-m.cur>small{color:#DC8000}
html.va.jm .flow .dr-m.next{opacity:.5}
html.va.jm .flow .dr-go{background:#FC9B00!important;color:#fff!important;box-shadow:0 3px 0 #DC8000!important;border-radius:12px}
html.va.jm .flow .dr-ln{background:#E5E5E5!important}
html.va.jm .flow:has(.ev-hero) .b3.slb{background:#FC9B00!important;box-shadow:0 4px 0 #DC8000!important;color:#fff!important;border-radius:16px!important}
html.va.jm .app .flow:has(.ev-hero) .b3.slb.slb.slb:not([disabled]){background:#FC9B00!important;box-shadow:0 4px 0 #DC8000!important;color:#fff!important}
/* 8 Nov: Joshua's Journey look, set on journey-art/ (Look panel) and saved to /api/mp/journey · kids.js jmLook() fills these */
html.va.jm .app .scroll .chap.chap.chap,html.va.jm .app .scroll.scroll.scroll:has(.path){background:var(--jm-bg,#fff)!important}
html.va.jm .j-topic span{background:var(--jm-bg,#fff)!important}
html.va.jm .app .scroll .trail path.rb.rb.rb{stroke:var(--jm-road,#DADADA)!important}
html.va.jm .jm-c{width:var(--jm-s,62px);height:var(--jm-s,62px)}
html.va.jm .jm-n.done .jm-c{background:var(--jm-done,#90F0A6);border-color:var(--jm-done-d,#5AD886);box-shadow:0 3px 0 var(--jm-done-dd,#49C876)}
html.va.jm .jm-n.cur .jm-c{width:calc(var(--jm-s,62px) + 18px);height:calc(var(--jm-s,62px) + 18px);border-color:var(--jm-ring,#FFDF43)}
html.va.jm .jm-n.cur .jm-c .jm-ball{width:calc(var(--jm-s,62px) + 4px);height:calc(var(--jm-s,62px) + 4px)}
html.va.jm .j3next.jnc.jmx{bottom:var(--jm-cb,96px)!important;border-radius:var(--jm-cr,22px)!important}
html.va.jm.jm-top .j3next.jnc.jmx{top:calc(env(safe-area-inset-top,0px) + var(--jm-cb,10px))!important;bottom:auto!important}
html.va.jm.jm-top .app .scroll:has(.path){padding-top:92px}
html.va.jm.jm-top .j-tro{display:none}   /* 9 Nov, Joshua: the Up next card sits over the trophy shortcut when it's at the top; Rewards is in the tab bar */
html.va.jm .jmx .b3.sm{background:var(--jm-go,#FC9B00)!important;box-shadow:0 4px 0 var(--jm-go-d,#DC8000)!important}
/* 8 Nov: a background for each Slam's section (journey-art › Look › Each Slam), colour or top-to-bottom gradient */
html.va.jm.jm-each .app .scroll .chap.chap.chap[data-slam=ao]{background:var(--jm-sec-ao,var(--jm-bg,#fff))!important}
html.va.jm.jm-each .app .scroll .chap.chap.chap[data-slam=rg]{background:var(--jm-sec-rg,var(--jm-bg,#fff))!important}
html.va.jm.jm-each .app .scroll .chap.chap.chap[data-slam=wim]{background:var(--jm-sec-wim,var(--jm-bg,#fff))!important}
html.va.jm.jm-each .app .scroll .chap.chap.chap[data-slam=uso]{background:var(--jm-sec-uso,var(--jm-bg,#fff))!important}
html.va.jm.jm-each .j-topic span{background:rgba(255,255,255,.85)!important;border-radius:999px}
/* 8 Nov (Joshua: grey on a coloured background doesn't work): text + line colours, for the whole Journey or each Slam's section */
html.va.jm .app .scroll .chap{--jtx:var(--jm-tx,#191919);--jln:var(--jm-ln,#E5E5E5);--jrd:var(--jm-road,#DADADA)}
html.va.jm.jm-each .app .scroll .chap[data-slam=ao]{--jtx:var(--jm-tx-ao,#191919);--jln:var(--jm-ln-ao,#E5E5E5);--jrd:var(--jm-ln-ao,var(--jm-road,#DADADA))}
html.va.jm.jm-each .app .scroll .chap[data-slam=rg]{--jtx:var(--jm-tx-rg,#191919);--jln:var(--jm-ln-rg,#E5E5E5);--jrd:var(--jm-ln-rg,var(--jm-road,#DADADA))}
html.va.jm.jm-each .app .scroll .chap[data-slam=wim]{--jtx:var(--jm-tx-wim,#191919);--jln:var(--jm-ln-wim,#E5E5E5);--jrd:var(--jm-ln-wim,var(--jm-road,#DADADA))}
html.va.jm.jm-each .app .scroll .chap[data-slam=uso]{--jtx:var(--jm-tx-uso,#191919);--jln:var(--jm-ln-uso,#E5E5E5);--jrd:var(--jm-ln-uso,var(--jm-road,#DADADA))}
html.va.jm .app .scroll .chap .j-topic span{color:var(--jtx)!important}
html.va.jm.jm-each .app .scroll .chap .j-topic span{background:transparent!important}
html.va.jm .app .scroll .chap .j-topic::before,html.va.jm .app .scroll .chap .j-topic::after{background:var(--jln)!important}
html.va.jm .app .scroll .chap .trail path.rb.rb.rb{stroke:var(--jrd)!important}
html.va.jm .app .scroll .chap .rsign b{color:var(--jtx)!important}
html.va.jm .app .scroll .chap .rsign small,html.va.jm .app .scroll .chap .rsign span:not(.rs-tix){color:var(--jtx)!important;opacity:.72}

/* 8 Nov: stadium shadows follow the Look (journey-art/ › Stops): colour, see-through, size; hero shadow sits under the picture */
html.va.jm .jm-ev .jm-stop::before{left:50%;right:auto;width:var(--jm-stw,116%);transform:translateX(-50%);height:var(--jm-sth,38%);bottom:var(--jm-sty,4%);background:var(--jm-stsh,rgba(27,34,54,.06))}
html.va.jm .flow .ev-hero::before{display:none}
html.va.jm .flow .ev-hero .ev-st{background:radial-gradient(ellipse 50% 17% at 50% 80%,rgba(158,121,69,.2) 97%,transparent 100%)}
html.va.jm .flow .ev-hero .sl-ht{max-width:310px}
html.va.jm .flow .ev-hero .sl-ht small{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;font-size:11.5px!important;line-height:1.35!important}

/* 8 Nov: stop fill, stroke and shadow from the Look (journey-art/ › Colours) */
html.va.jm .jm-n:not(.done):not(.cur) .jm-c{background:var(--jm-lk,#fff);border-color:var(--jm-lk-s,#E5E5E5);box-shadow:0 3px 0 var(--jm-lk-sh,#C9C9C9)}

/* 9 Nov test ?journey=sec (Joshua, from the football app): a full-width Section bar + chunky stops — yellow done, the section's colour for next, grey locked */
html.jsec [data-slam=ao]{--js-sc:#3E86F5;--js-sd:#2B69CF}
html.jsec [data-slam=rg]{--js-sc:#E8773D;--js-sd:#C45E29}
html.jsec [data-slam=wim]{--js-sc:#4FA675;--js-sd:#3A875C}
html.jsec [data-slam=uso]{--js-sc:#7B5CE5;--js-sd:#5F43C2}
html.va.jm.jsec .app .scroll .trail{display:none!important}
html.jsec .jsbar{position:sticky;top:0;z-index:40;margin:0 0 10px;padding:calc(env(safe-area-inset-top,0px) + 12px) 14px 14px;background:var(--js-sc,#4FA675);box-shadow:0 4px 0 var(--js-sd,#3A875C);color:#fff;display:grid;grid-template-columns:42px 1fr 42px;column-gap:12px;row-gap:12px;align-items:center;transition:background .25s,box-shadow .25s}
html.jsec .jsbar button{width:42px;height:42px;padding:0;border-radius:12px;border:2px solid rgba(255,255,255,.4);background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;cursor:pointer}
html.jsec .jsbar button svg{width:20px;height:20px}
html.jsec .jsbar button[disabled]{opacity:.3;cursor:default}
html.jsec .jsb-t{min-width:0}
html.jsec .jsb-t small{display:block;font:900 12px/1.2 Nunito,system-ui,sans-serif;letter-spacing:.07em;text-transform:uppercase;opacity:.9}
html.jsec .jsb-t b{display:block;margin-top:2px;font:900 20px/1.15 Nunito,system-ui,sans-serif;letter-spacing:-.2px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
html.jsec .jsp{grid-column:1/-1;height:11px;border-radius:99px;background:rgba(255,255,255,.28);overflow:hidden}
html.jsec .jsp i{display:block;height:100%;min-width:11px;border-radius:99px;background:#fff;transition:width .35s}
html.va.jm.jsec .js-n{background:none!important;border:0!important;box-shadow:none!important;padding:0!important;position:relative;display:flex;flex-direction:column;align-items:center;overflow:visible}
html.jsec .js-c{position:relative;display:grid;place-items:center;width:calc(var(--jm-s,62px) + 10px);height:calc(var(--jm-s,62px) + 10px);border-radius:50%;background:#E5E5E5;box-shadow:0 7px 0 #CDCDD2;color:#B4B4BA;transition:transform .12s,box-shadow .12s}
html.jsec .js-n.sq .js-c{border-radius:24px}
html.jsec .js-c svg{width:44%;height:44%}
html.jsec .js-n.done .js-c{background:#FFC93C;box-shadow:0 7px 0 #E2A300;color:#fff}
html.jsec .js-n.cur .js-c{background:var(--js-sc);box-shadow:0 7px 0 var(--js-sd);color:#fff}
html.jsec .js-n.cur .js-c::before{content:"";position:absolute;inset:-12px -12px -19px;border-radius:50%;border:5px solid var(--js-sc);opacity:.28}
html.jsec .js-n.cur.sq .js-c::before{border-radius:32px}
html.jsec .js-n:active .js-c{transform:translateY(5px);box-shadow:0 2px 0 var(--js-sd,#CDCDD2)}
html.jsec .js-n.done:active .js-c{box-shadow:0 2px 0 #E2A300}
html.jsec .js-lab{position:absolute;bottom:calc(100% - 16px);left:42%;z-index:3;padding:9px 14px;border-radius:14px;background:#fff;border:2.5px solid #E5E5E5;font:900 14.5px/1 Nunito,system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--js-sc);white-space:nowrap}
html.jsec .js-un{margin-top:17px;max-width:250px;font:900 12.5px/1.2 Nunito,system-ui,sans-serif;letter-spacing:.07em;text-transform:uppercase;color:#B4B4BA;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.jsec .js-n.done .js-un{color:#C99B1E}
html.va.jm.jsec .js-n.done .js-c,html.va.jm.jsec .js-n.cur .js-c{color:#fff!important}
html.va.jm.jsec .js-n.lock .js-c{color:#B4B4BA!important}
html.jsec .js-c svg,html.jsec .js-c svg *{stroke:currentColor!important}
html.jsec .js-c svg path{fill:none!important}
html.va.jm.jsec .app .scroll .chap .j-topic span{font:900 14px/1.2 Nunito,system-ui,sans-serif!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:#A6A6AE!important}
html.va.jm.jsec .app[data-tab=path] .js-n .js-c svg{color:inherit!important}

/* 9 Nov polish of ?journey=sec: the bar never sits over a lesson, sheet or Slam; your section's colour carries to Up next; done sections get a tick */
html.jsec .jsbar{z-index:8}
html.jsec:has(#sheet.on) .jsbar,html.jsec:has(.flow) .jsbar,html.jsec:has(.mr .mr-s) .jsbar,html.jsec:has(.slam) .jsbar{visibility:hidden!important}
html.jsec .jsp{position:relative;overflow:visible}
html.jsec .jsp i{overflow:hidden}
html.jsec .jsp em{position:absolute;right:-4px;top:50%;width:24px;height:24px;margin-top:-12px;border-radius:50%;background:#FFC93C;box-shadow:0 2px 0 #E2A300;color:#fff;display:grid;place-items:center;transform:scale(0);transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
html.jsec .jsp em svg{width:14px;height:14px}
html.jsec .jsbar.full .jsp em{transform:scale(1)}
html.jsec[data-jss=ao]{--jsu:#3E86F5;--jsu-d:#2B69CF}html.jsec[data-jss=rg]{--jsu:#E8773D;--jsu-d:#C45E29}html.jsec[data-jss=wim]{--jsu:#4FA675;--jsu-d:#3A875C}html.jsec[data-jss=uso]{--jsu:#7B5CE5;--jsu-d:#5F43C2}
html.va.jm.jsec .jmx .b3.sm{background:var(--jsu,#4FA675)!important;box-shadow:0 5px 0 var(--jsu-d,#3A875C)!important;border-radius:16px!important;text-transform:uppercase;letter-spacing:.05em;font-weight:900!important}
html.va.jm.jsec .j3next.jnc.jmx{border-width:2.5px!important;box-shadow:0 5px 0 #E5E5E5!important}
html.va.jm.jsec .jmx-pr i.on,html.va.jm.jsec .jmx-pr .on{background:var(--jsu,#4FA675)!important}
html.va.jm.jsec .rsign small{color:var(--js-sc,#9E7945)!important;font-weight:900!important}
html.jsec .js-lab::after{content:"";position:absolute;left:22px;bottom:-8px;width:12px;height:12px;background:#fff;border-right:2.5px solid #E5E5E5;border-bottom:2.5px solid #E5E5E5;transform:rotate(45deg);border-bottom-right-radius:3px}
html.jsec .js-n.cur .js-lab{animation:jsBob 1.6s ease-in-out infinite}
@keyframes jsBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
html.jsec .js-n.cur .js-c::before{animation:jsRing 1.8s ease-in-out infinite}
@keyframes jsRing{0%,100%{opacity:.28}50%{opacity:.5}}
@media (prefers-reduced-motion:reduce){html.jsec .js-n.cur .js-lab,html.jsec .js-n.cur .js-c::before{animation:none}}
html.jsec .js-un{max-width:180px;white-space:normal;text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}
html.va.jm.jsec .app .j3next.jnc.jmx .b3.sm.sm.sm{background:var(--jsu,#4FA675)!important;box-shadow:0 5px 0 var(--jsu-d,#3A875C)!important}
html.va.jm.jsec #app .j3next.jnc.jmx button.b3.sm{background:var(--jsu,#4FA675)!important;box-shadow:0 5px 0 var(--jsu-d,#3A875C)!important}
html.jsec .js-un{display:block;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35;padding:1px 2px}

/* 9 Nov polish 2: Next lesson label stays on the phone (centred, or tucked to the side the stop is on); ring centred on the stop;
   games = rounded tile with a game pad, quizzes = tile with a gift, tickets = a ticket — each keeps its own icon with a little ✓ / lock badge */
html.jsec .js-n.cur .js-c::before{inset:-11px}
html.jsec .js-lab{left:50%;translate:-50% 0;bottom:calc(100% + 12px)}
html.jsec .js-lab::after{left:calc(50% - 7px)}
html.jsec .js-n.sr .js-lab{left:auto;right:-16px;translate:none}
html.jsec .js-n.sr .js-lab::after{left:auto;right:36px}
html.jsec .js-n.sl .js-lab{left:-16px;translate:none}
html.jsec .js-n.sl .js-lab::after{left:36px}
html.jsec .js-bd{position:absolute;top:-7px;right:-7px;z-index:2;width:26px;height:26px;border-radius:50%;background:#fff;border:2.5px solid #EDEDED;display:grid;place-items:center;color:#B4B4BA}
html.jsec .js-c .js-bd svg{width:13px;height:13px}
html.va.jm.jsec .app .js-n.done .js-bd{color:#E2A300!important;border-color:#FFE7A6}
html.va.jm.jsec .app .js-n.lock .js-bd{color:#B4B4BA!important}
html.jsec .js-n.k-game .js-c svg,html.jsec .js-n.k-quiz .js-c svg{width:50%;height:50%}
html.jsec .js-n.k-ticket .js-c{width:calc(var(--jm-s,62px) + 34px);border-radius:0;background:none!important;box-shadow:none!important;--tf:#E5E5E5;--td:#CDCDD2;filter:drop-shadow(0 7px 0 var(--td))}
html.jsec .js-n.k-ticket.done .js-c{--tf:#FFC93C;--td:#E2A300}
html.jsec .js-n.k-ticket.cur .js-c{--tf:var(--js-sc);--td:var(--js-sd)}
html.jsec .js-t{position:absolute;inset:0;border-radius:16px;background:var(--tf);-webkit-mask:radial-gradient(circle 10px at 0 50%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 10px at 100% 50%,#0000 97%,#000) right/51% 100% no-repeat;mask:radial-gradient(circle 10px at 0 50%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 10px at 100% 50%,#0000 97%,#000) right/51% 100% no-repeat}
html.jsec .js-t::after{content:"";position:absolute;top:10px;bottom:10px;right:30%;border-left:3px dashed rgba(255,255,255,.55)}
html.jsec .js-n.k-ticket .js-c svg{position:relative;width:46%;height:60%;translate:-12% 0}
html.jsec .js-n.k-ticket.cur .js-c::before{inset:-11px -13px;border-radius:24px}
html.jsec .js-n.k-ticket:active .js-c{transform:translateY(5px);filter:drop-shadow(0 2px 0 var(--td))}

/* 9 Nov (Joshua: "they look so good"): stadiums stay full colour when locked, with a lock on top and a soft round shadow underneath */
html.va.jm.jsec .jm-ev.lock .jm-stop img,html.va.jm.jsec .slam3d.lock img{filter:none!important;opacity:1!important}
html.va.jm.jsec .jm-ev.lock .jm-lab{color:#191919}
html.va.jm.jsec .jm-ev.lock .jm-lab small{background:#FC9B00}
html.jsec .js-elk{position:absolute;left:50%;top:44%;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;background:#fff;box-shadow:0 3px 0 rgba(27,34,54,.14),0 6px 16px rgba(27,34,54,.12);display:grid;place-items:center;color:#4B5563}
html.jsec .js-elk svg{width:18px;height:18px}
html.jsec .js-elk svg path{fill:none!important}
html.va.jm.jsec .slam3d img{background:radial-gradient(ellipse 47% 14% at 50% 84%,var(--jm-stsh,rgba(27,34,54,.08)) 97%,transparent 100%)}
html.jsec .js-bd{border-color:#E2E2E6;box-shadow:0 2px 0 rgba(27,34,54,.1)}
html.jsec .js-n.k-ticket .js-c svg{width:40%;height:52%}

/* 9 Nov test: the Season banner between seasons (two seasons of 60 lessons) */
html.jsec .js-season{margin:26px 16px 6px;padding:22px 18px 20px;border-radius:24px;background:#191919;color:#fff;text-align:center;box-shadow:0 6px 0 #000}
html.jsec .js-season.first{display:none}
html.jsec .js-season small{display:block;font:900 12px/1.2 Nunito,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#FFC93C}
html.jsec .js-season b{display:block;margin:4px 0 2px;font:900 30px/1.05 Nunito,system-ui,sans-serif;letter-spacing:-.5px}
html.jsec .js-season span{font:800 14px/1.3 Nunito,system-ui,sans-serif;color:rgba(255,255,255,.7)}

/* 9 Nov: game stops are pictures of the game (design/assets/games/<id>.webp), full colour even when locked, on a soft round shadow */
html.jsec .js-n.k-game .js-c.js-g{width:calc(var(--jm-s,62px) + 52px);height:calc(var(--jm-s,62px) + 52px);border-radius:0;background:radial-gradient(ellipse 46% 15% at 50% 86%,var(--jm-stsh,rgba(27,34,54,.08)) 97%,transparent 100%)!important;box-shadow:none!important;margin:-22px 0 -14px}
html.jsec .js-g img{width:100%;height:100%;object-fit:contain;display:block;position:relative}
html.jsec .js-n.k-game.cur .js-g img{animation:jmBob 1.8s ease-in-out infinite}
html.jsec .js-n.k-game.cur .js-c.js-g::before{inset:6% 6% 2%;border-radius:50%}
html.jsec .js-n.k-game .js-bd{top:12%;right:8%}
html.jsec .js-n.k-game:active .js-c.js-g{transform:translateY(3px)}
html.jsec .js-n.k-game .js-c.js-g{width:calc(var(--jm-s,62px) + 82px);height:calc(var(--jm-s,62px) + 82px);margin:-34px 0 -22px}
html.jsec .js-n.k-game.cur .js-c.js-g::before{display:none}
html.jsec .js-n.k-game.cur .js-lab{bottom:calc(100% - 22px)}
html.jsec .js-n.k-game .js-bd{top:16%;right:12%}
html.jsec .js-n.k-game.cur .js-lab{bottom:calc(100% + 2px)}
html.jsec .gcard .gc-art{width:128px;height:128px;object-fit:contain;flex:none;margin:-10px -6px -6px -10px}
/* 9 Nov polish: icons dead centre on the stop face (they sat 5px high), the Next ring a true circle round face + edge, lock beside the stadium name */
html.va.jm.jsec .app .js-c svg{top:0!important}
html.jsec .js-c .js-bd svg{width:14px;height:14px}
html.jsec .js-n.cur:not(.sq) .js-c::before{inset:-11px -14.5px -18px}
html.jsec .js-llk{display:inline-grid;place-items:center;width:20px;height:20px;margin:0 5px 0 -2px;vertical-align:-3px;color:#9CA3AF}
html.jsec .js-llk svg{width:16px;height:16px}html.jsec .js-llk svg path{fill:none!important}html.jsec .js-llk svg rect{fill:currentColor!important}
html.jsec .js-n.cur.sq .js-c::before{inset:-11px -11px -18px}html.jsec .js-n.k-ticket.cur .js-c::before{inset:-11px -13px -18px}
html.va.jm.jsec .app .js-c .js-bd svg{width:14px!important;height:14px!important;translate:none!important}
html.va.jm.jsec .app .jm-lab .js-llk{width:auto;height:auto;margin:0 -1px 0 -3px;display:inline-flex;align-self:center}html.va.jm.jsec .app .jm-lab .js-llk svg{width:15px!important;height:15px!important;top:-1px!important}
.hf-badge.hf-tpic{width:112px;right:14px}
/* 9 Nov: game pictures get the same shadow as the stadiums, so journey-art › Stadium & game shadow (colour, strength, width, height, up/down) moves both */
html.jsec .js-n.k-game .js-c.js-g{background:none!important}
html.jsec .js-n.k-game .js-c.js-g img{position:relative;z-index:1}
html.jsec .js-n.k-game .js-c.js-g::after{content:"";position:absolute;left:50%;transform:translateX(-50%);width:calc(var(--jm-stw,116%) * .8);height:calc(var(--jm-sth,38%) * .78);bottom:calc(var(--jm-sty,4%) + 4%);border-radius:50%;background:var(--jm-stsh,rgba(27,34,54,.08));pointer-events:none}
/* 9 Nov: the connector line, when it's turned on in journey-art (html.jtr) */
html.va.jm.jsec.jtr .app .scroll .trail{display:block!important}
html.va.jm.jsec.jtr #app .scroll .trail path.rb.rb.rb,html.va.jm.jsec.jtr #app .scroll .chap .trail path.rb.rb.rb{stroke:var(--jtr-c,#DADADA)!important;stroke-width:var(--jtr-w,4px)!important;stroke-dasharray:var(--jtr-da,10 10)!important;stroke-linecap:round!important;opacity:var(--jtr-o,1)!important}
html.va.jm.jsec .j-tro{display:none!important}   /* 9 Nov, Joshua: the Section bar covered the trophy shortcut; Trophies is in the tab bar */
/* 9 Nov, Joshua: "the game icons need to be smaller, and the stadiums need to be bigger" (games were 148px, city stadiums 136px). journey-art/ draws the same sizes */
html.jsec .js-n.k-game .js-c.js-g{width:calc(var(--jm-s,62px) + 44px);height:calc(var(--jm-s,62px) + 44px);margin:-20px 0 -14px}
html.va.jm .jm-ev .jm-stop{width:180px;margin:-56px 0 -8px}
html.va.jm.jsec .app .js-c > svg{scale:var(--jm-ico,1)}   /* 9 Nov, Joshua: Look › Icon size */
html.va.jm.jm-rh .app[data-tab=path] .nrow:not(.s3row){height:var(--jm-rh)!important}   /* 9 Nov: Look › Space between stops */
.g3d-load{position:absolute;inset:0;display:grid;place-items:center;font:900 20px Nunito,sans-serif;color:#fff;background:#1d6b3a}   /* 9 Nov: while the 3D match loads */
html.jsec .js-un{flex-shrink:0!important;height:auto!important;min-height:1.4em;overflow:visible!important}   /* 9 Nov, Joshua: game names were squashed to 6px and cut in half */
/* 11 Nov: empty Match Analysis (no recap yet) = short invite + scoreboard picture, instead of ?/100 and empty bars */
.hf-ma2[hidden]{display:none}
.hf-ma0{display:flex;align-items:center;gap:10px}
.hf-ma0t{flex:1;min-width:0}.hf-ma0t .hf-ct{display:block;margin-top:8px}
.hf-ma0t p{margin:4px 0 0;font:600 14px/1.35 Nunito,system-ui,sans-serif;color:#77778A}
.hf-ma0t .hf-btn{display:inline-flex;margin-top:14px}
.hf-ma0i{flex:none;width:104px;height:auto;object-fit:contain}
/* 11 Nov: one bar on the Journey. Long topic names shrink instead of wrapping; a round button takes you back to your next stop */
html.jsec .jsb-t b{-webkit-line-clamp:1}
html.jsec .jsbar.lt .jsb-t b{font-size:16.5px;line-height:1.35}
.js-jump{position:fixed;right:max(16px,calc(50% - 215px + 16px));bottom:calc(env(safe-area-inset-bottom,0px) + 96px);z-index:30;width:52px;height:52px;padding:0;border-radius:50%;border:2px solid #E5E5E5;background:#fff;box-shadow:0 3px 0 #E5E5E5,0 10px 22px -12px rgba(0,0,0,.3);color:var(--jsu,#4FA675);display:grid;place-items:center;cursor:pointer}
.js-jump[hidden]{display:none}.js-jump svg{width:24px;height:24px;transition:transform .2s}.js-jump.up svg{transform:rotate(180deg)}
html:has(#sheet.on) .js-jump,html:has(.flow) .js-jump{display:none}
/* 11 Nov, Joshua "ok try": small labels under the tab icons (Journey and Journal looked alike without them) */
html.va .tabs{height:72px!important;align-items:center}
html.va .tabs button{flex-direction:column!important;gap:1px;height:66px}
html.va .tabs .ti{width:42px!important;height:36px!important;border-radius:12px}
html.va .tabs .ti img{width:28px!important;height:28px!important}
html.va .tabs .tl{display:block!important;font:800 11px/1 Nunito,system-ui,sans-serif;letter-spacing:.1px;color:#9A9AA6;white-space:nowrap}
html.va .tabs button.on .tl{color:#0096C7}
html.va .tabs .ptn-tab,html.va .tabs .ptn-tab>img:first-child,html.va .tabs .ptn-tab>.ptn-l{width:28px!important;height:28px!important}
html.va .tabs .ti::after{display:none!important}   /* the label says which tab you are on now, so the little dot goes */
/* 11 Nov: PAID PLAN — the plans screen (.pw), the trial chip on Home and Profile › My plan. Locked look: white page, cream hero with Carlos, orange main button */
.pw{z-index:60;overflow-y:auto;padding:calc(env(safe-area-inset-top,0px) + 16px) 18px calc(env(safe-area-inset-bottom,0px) + 22px);background:#fff;gap:0;opacity:0;transform:translateY(16px);transition:opacity .25s,transform .3s cubic-bezier(.2,.8,.2,1);animation:none}
.pw.on{opacity:1;transform:none}
.pw-x{align-self:flex-start;flex:none;width:40px;height:40px;padding:0;border:2px solid #E5E5E5;border-radius:50%;background:#fff;box-shadow:0 2px 0 #E5E5E5;display:grid;place-items:center;cursor:pointer;color:#3B3F52}.pw-x svg{width:18px;height:18px;stroke:currentColor;stroke-width:3;fill:none;stroke-linecap:round}
.pw-hero{position:relative;flex:none;margin-top:18px;padding:18px 136px 18px 18px;border-radius:20px;background:#F9EDC9;box-shadow:0 4px 0 #E2CD8E}
.pw-c{position:absolute;right:-4px;bottom:0;width:150px;height:auto;pointer-events:none}
.pw-hero small{display:block;font:800 13px/1.25 Nunito,system-ui,sans-serif;color:#A0782A}
.pw-hero h2{margin:6px 0 0;font:900 25px/1.1 Nunito,system-ui,sans-serif;letter-spacing:-.4px;color:#191919}
.pw-hero p{margin:8px 0 0;font:600 14px/1.38 Nunito,system-ui,sans-serif;color:#6E6250}
.pw-ben{flex:none;display:grid;gap:12px;margin:22px 4px 0}
.pw-ben div{display:flex;align-items:center;gap:12px}.pw-ben img{flex:none;width:38px;height:38px;object-fit:contain}
.pw-ben b{display:block;font:800 15.5px/1.2 Nunito,system-ui,sans-serif;color:#191919}.pw-ben small{display:block;margin-top:1px;font:600 13px/1.3 Nunito,system-ui,sans-serif;color:#8A8A96}
.pw-pl{flex:none;display:grid;gap:10px;margin-top:22px}
.pw-pl button{position:relative;display:flex;align-items:center;gap:12px;min-height:62px;padding:10px 14px;border:2px solid #E5E5E5;border-radius:16px;background:#fff;box-shadow:0 2px 0 #E5E5E5;text-align:left;cursor:pointer;font:inherit;color:#191919}
.pw-pl button.on{border-color:#FC9B00;background:#FFF8EC;box-shadow:0 2px 0 #F2C77A}
.pw-pl i{flex:none;width:22px;height:22px;border-radius:50%;border:2.5px solid #CFCFD6;box-sizing:border-box}.pw-pl .on i{border:7px solid #FC9B00}
.pw-pl span{flex:1;min-width:0}.pw-pl b{display:block;font:800 15.5px/1.2 Nunito,system-ui,sans-serif}.pw-pl small{display:block;font:600 12.5px/1.3 Nunito,system-ui,sans-serif;color:#8A8A96}
.pw-pl em{flex:none;font:800 14px Nunito,system-ui,sans-serif;font-style:normal;color:#3B3F52}
.pw-pl u{position:absolute;top:-10px;right:14px;padding:3px 9px;border-radius:8px;background:#53A470;color:#fff;font:800 11px/1.2 Nunito,system-ui,sans-serif;text-decoration:none;letter-spacing:.2px}
.pw .pw-go{flex:none;width:100%;margin-top:20px}
.pw-fine{flex:none;margin:12px 6px 0;text-align:center;font:600 12px/1.4 Nunito,system-ui,sans-serif;color:#9A9AA6}
.pw-chip{display:flex;align-items:center;gap:6px;width:100%;margin:12px 0 0;padding:12px 14px;border:2px solid #F2C77A;border-radius:14px;background:#FFF8EC;font:600 14px Nunito,system-ui,sans-serif;color:#6E6250;cursor:pointer;text-align:left}
.pw-chip b{font-weight:800;color:#191919}.pw-chip em{margin-left:auto;font-style:normal;font-weight:800;color:#DC8000}
.prf-plan{display:flex;align-items:center;justify-content:space-between;gap:12px}
.prf-plan small{display:block;font:800 12.5px Nunito,system-ui,sans-serif;color:#A0782A}.prf-plan b{display:block;margin-top:2px;font:800 16px/1.25 Nunito,system-ui,sans-serif;color:#191919}
.prf-plan .hf-btn{margin-top:0;flex:none}
.hf-btn.or{background:#FC9B00;box-shadow:0 3px 0 #DC8000}
.prf-pd{flex-wrap:wrap}
/* 11 Nov: REAL REWARDS walkthrough (.rwi) — 3 swipeable slides for grown-ups, each its own colour, then the add-a-reward sheet */
.rwi{z-index:60;padding:calc(env(safe-area-inset-top,0px) + 16px) 0 calc(env(safe-area-inset-bottom,0px) + 22px);background:#fff;gap:0;opacity:0;transform:translateY(16px);transition:opacity .25s,transform .3s cubic-bezier(.2,.8,.2,1);animation:none}
.rwi.on{opacity:1;transform:none}
.rwi-top{flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 18px}
.rwi-skip{border:0;background:none;padding:8px 4px;font:800 15px Nunito,system-ui,sans-serif;color:#9A9AA6;cursor:pointer}
.rwi-tr{flex:1;min-height:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.rwi-tr::-webkit-scrollbar{display:none}
.rwi-s{flex:0 0 100%;scroll-snap-align:center;box-sizing:border-box;padding:14px 22px 0;display:flex;flex-direction:column;overflow-y:auto}
.rwi-art{flex:none;height:min(44vh,330px);border-radius:24px;background:var(--bg);display:grid;place-items:end center;overflow:hidden;padding-top:14px;box-sizing:border-box}
.rwi-art img{height:100%;width:auto;max-width:92%;min-height:0;object-fit:contain;object-position:bottom;display:block}
.rwi-s.l .rwi-art{height:min(30vh,240px)}
.rwi-s small{display:block;margin-top:20px;font:800 13px/1.2 Nunito,system-ui,sans-serif;letter-spacing:.3px;text-transform:uppercase;color:var(--ink)}
.rwi-s h2{margin:6px 0 0;font:900 26px/1.12 Nunito,system-ui,sans-serif;letter-spacing:-.4px;color:#191919}
.rwi-s p{margin:8px 0 0;font:600 15.5px/1.42 Nunito,system-ui,sans-serif;color:#5E6070}
.rwi-ideas{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.rwi-ideas button{display:flex;align-items:center;gap:6px;padding:8px 12px;border:2px solid #E5E5E5;border-radius:14px;background:#fff;box-shadow:0 2px 0 #E5E5E5;font:700 13.5px Nunito,system-ui,sans-serif;color:#3B3F52;cursor:pointer}
.rwi-ideas em{font-style:normal}.rwi-ideas .shp-pr{display:inline-flex;align-items:center;gap:2px;font:800 12.5px Nunito,system-ui,sans-serif;color:#A87A06}.rwi-ideas .shp-pr img{width:14px;height:14px}
.rwi-dots{flex:none;display:flex;justify-content:center;gap:7px;margin:16px 0 14px}.rwi-dots i{width:8px;height:8px;border-radius:5px;background:#E0E0E6;transition:width .25s,background .25s}.rwi-dots i.on{width:22px;background:#FC9B00}
.rwi .rwi-go{flex:none;width:calc(100% - 36px);margin:0 18px}
