#game-root{max-width:520px;margin:0 auto;padding:1.5rem 1.25rem 4rem;font-family:var(--sans);min-height:70vh;}
#screen{}   /* removed opacity transition: it dipped to the cream bg every over; mb-settle handles board entrance */

.scr{display:flex;flex-direction:column;}
.scr-eyebrow{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.6rem;}
.scr-title{font-family:var(--serif);font-size:2.4rem;font-weight:700;color:var(--ink);margin:0 0 .75rem;line-height:1.05;}
.scr-lede{font-size:1.02rem;line-height:1.55;color:var(--ink-soft);margin:0 0 1.75rem;}

.btn-primary{font-family:var(--mono);font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;background:var(--green-deep);color:var(--paper);border:none;padding:1rem;border-radius:11px;cursor:pointer;margin-bottom:.75rem;transition:.15s;}
.btn-primary:active{transform:scale(.98);}
.btn-primary:hover{background:var(--green);}
.btn-ghost{font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;background:transparent;color:var(--ink-soft);border:1px solid var(--line-strong);padding:.85rem;border-radius:11px;cursor:pointer;transition:.15s;}
.btn-ghost:hover{border-color:var(--green);color:var(--green);}

.lvl-list{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem;}
.lvl-node{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--card);border:1px solid var(--line);border-radius:13px;cursor:pointer;transition:.15s;}
.lvl-node:not(.locked):hover{border-color:var(--green);transform:translateY(-1px);}
.lvl-node:active{transform:scale(.99);}
.lvl-node.locked{opacity:.5;cursor:default;}
.lvl-num{font-family:var(--serif);font-size:1.5rem;font-weight:700;color:var(--green);width:2rem;text-align:center;}
.lvl-info{flex:1;}
.lvl-name{font-family:var(--serif);font-size:1.15rem;color:var(--ink);}
.lvl-sub{font-family:var(--mono);font-size:.72rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;margin-top:.15rem;}
.lvl-stars{display:flex;gap:.15rem;}
.lvl-star{color:var(--line-strong);font-size:.9rem;}
.lvl-star.on{color:var(--green);}

.intro-stars-box{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:1.1rem 1.25rem;margin-bottom:1.75rem;}
.intro-star{font-family:var(--sans);font-size:.92rem;color:var(--ink-soft);padding:.35rem 0;}
.intro-star span{color:var(--text-faint);margin-right:.4rem;}

.res-stars{display:flex;gap:.5rem;margin:0 0 2rem;}
.res-star{font-size:2.5rem;color:var(--line-strong);}
.res-star.on{color:var(--green);}

.ov{position:fixed;inset:0;height:100dvh;background:rgba(11,46,18,.35);animation:ov-bg .3s ease both;display:flex;align-items:flex-end;justify-content:center;z-index:130;padding:0;overflow:hidden;overscroll-behavior:contain;}
.ov-panel{background:var(--card);border-top-left-radius:20px;border-top-right-radius:20px;border:1px solid var(--line-strong);border-bottom:none;padding:1.75rem 1.5rem calc(env(safe-area-inset-bottom) + .6rem);width:100%;max-width:520px;height:auto;max-height:92dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;box-sizing:border-box;animation:ov-rise .42s cubic-bezier(.16,.84,.3,1) both;}
@keyframes ov-up{from{transform:translateY(40px);opacity:0;}to{transform:none;opacity:1;}}
.pan-eyebrow{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.5rem;}
.pan-title{font-family:var(--serif);font-size:2rem;font-weight:700;color:var(--ink);margin:0;}
.pan-sub{font-family:var(--mono);font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--green);margin:.25rem 0 1rem;}
.pan-desc{font-size:1rem;line-height:1.55;color:var(--ink-soft);margin:0 0 1.25rem;}
.pan-reqs{background:var(--paper-2);border-radius:12px;padding:1rem 1.1rem;margin-bottom:1.5rem;}
.pan-reqs .scr-eyebrow{margin-bottom:.6rem;}
.pan-star{display:flex;align-items:flex-start;gap:.5rem;font-family:var(--sans);font-size:.9rem;color:var(--ink-soft);padding:.3rem 0;}
.pan-star-ic{color:var(--green);}

.scr-beat{min-height:60vh;justify-content:center;}
.beat-dots{display:flex;gap:.4rem;margin-bottom:2rem;}
.beat-dot{width:8px;height:8px;border-radius:50%;background:var(--line-strong);transition:.3s;}
.beat-dot.on{background:var(--green);width:22px;border-radius:4px;}
.beat-body{margin-bottom:2.5rem;}
.beat-h{font-family:var(--serif);font-size:2.6rem;font-weight:700;color:var(--ink);margin:0 0 1rem;line-height:1.05;}
.beat-s{font-size:1.15rem;line-height:1.6;color:var(--ink-soft);margin:0;}

.map-path{position:absolute;left:0;top:0;pointer-events:none;z-index:1;overflow:visible;}

/* --- single-scroll map + hide site footer on game --- */
footer{display:none !important;}

/* --- clean map layout --- */
footer{display:none !important;}
.scr-mapwrap{display:block;padding-bottom:0;}
.map-header{position:sticky;top:0;z-index:40;background:var(--paper);padding:0 0 1.8rem;border-bottom:1px solid var(--line);margin-bottom:.5rem;}
.map{position:relative;margin:0 auto;}
#game-root{padding-bottom:0;}

.map-chapter-tag{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin-top:.35rem;}

/* --- match scoreboard --- */
.sb-eyebrow{font-family:var(--mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--text-faint);margin-bottom:1rem;}
.sb-scoreline{display:flex;align-items:baseline;gap:.75rem;}
.sb-team{font-family:var(--serif);font-size:1.3rem;color:var(--ink-soft);}
.sb-score{font-family:var(--serif);font-size:3rem;font-weight:700;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums;}
.sb-wk{color:var(--green);}
.sb-need{font-family:var(--mono);font-size:.8rem;color:var(--ink-soft);margin:.6rem 0 1.5rem;}
.sb-need b{color:#b0472f;}
.sb-card{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:1rem 1.1rem;margin-bottom:1rem;}
.sb-lbl{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.75rem;}
.sb-bat{display:flex;justify-content:space-between;align-items:baseline;padding:.3rem 0;}
.sb-bat-n{font-family:var(--serif);font-size:1.05rem;color:var(--ink);}
.sb-star{color:var(--green);margin-left:.15rem;}
.sb-bat-f{font-family:var(--mono);font-size:.9rem;color:var(--ink);font-variant-numeric:tabular-nums;}
.sb-bat-b{color:var(--text-faint);}
.sb-rates{font-family:var(--mono);font-size:.7rem;color:var(--text-faint);margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--line);}
.sb-bowl{display:flex;align-items:center;gap:.7rem;}
.sb-bowl-n{font-family:var(--serif);font-size:1.05rem;color:var(--ink);}
.sb-bowl-f{font-family:var(--mono);font-size:.75rem;color:var(--text-faint);}
.sb-fit{flex:1;display:flex;align-items:center;gap:.5rem;justify-content:flex-end;}
.sb-fitbar{width:70px;height:7px;background:var(--paper-2);border-radius:4px;overflow:hidden;border:1px solid var(--line);}
.sb-fitfill{display:block;height:100%;border-radius:4px;transition:width .5s,background .3s;}
.sb-fitn{font-family:var(--mono);font-size:.78rem;width:24px;text-align:right;font-variant-numeric:tabular-nums;}
.sb-recent{display:flex;align-items:center;gap:.35rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--line);}
.sb-recent-l{font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;color:var(--text-faint);margin-right:.3rem;}
.sb-ball{width:1.5rem;height:1.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.72rem;background:var(--paper-2);color:var(--ink-soft);border:1px solid var(--line);}
.sb-ball.bd{background:var(--green);color:var(--paper);border-color:var(--green);}
.sb-ball.w{background:#b0472f;color:var(--paper);border-color:#b0472f;}
.sb-actions{display:flex;flex-direction:column;gap:.7rem;margin-top:1.5rem;}

.moment{min-height:70vh;justify-content:center;align-items:center;text-align:center;}
.moment-big{font-family:var(--serif);font-size:3.5rem;font-weight:700;color:#b0472f;line-height:1;margin-bottom:1rem;}
.moment-sub{font-family:var(--serif);font-size:1.3rem;color:var(--ink);margin-bottom:1.5rem;line-height:1.4;}
.moment-score{font-family:var(--mono);font-size:.9rem;color:var(--ink-soft);margin-bottom:.5rem;}
.moment-new{font-family:var(--mono);font-size:.8rem;color:var(--text-faint);margin-bottom:2rem;}
.moment .btn-primary{width:100%;max-width:300px;}

.chg-list{display:flex;flex-direction:column;gap:.6rem;}
.chg-row{display:flex;align-items:center;gap:.6rem;padding:.8rem 1rem;background:var(--card);border:1px solid var(--line);border-radius:11px;cursor:pointer;transition:.15s;}
.chg-row:active{transform:scale(.99);}
.chg-row.cur{border-color:var(--green);}
.chg-n{font-family:var(--serif);font-size:1.05rem;color:var(--ink);min-width:70px;}
.chg-f{font-family:var(--mono);font-size:.72rem;color:var(--text-faint);}
.chg-on{font-family:var(--mono);font-size:.6rem;color:var(--green);}

/* --- match scoreboard --- */
.sb-eyebrow{font-family:var(--mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--text-faint);margin-bottom:1rem;}
.sb-scoreline{display:flex;align-items:baseline;gap:.75rem;}
.sb-team{font-family:var(--serif);font-size:1.3rem;color:var(--ink-soft);}
.sb-score{font-family:var(--serif);font-size:3rem;font-weight:700;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums;}
.sb-wk{color:var(--green);}
.sb-need{font-family:var(--mono);font-size:.8rem;color:var(--ink-soft);margin:.6rem 0 1.5rem;}
.sb-need b{color:#b0472f;}
.sb-card{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:1rem 1.1rem;margin-bottom:1rem;}
.sb-lbl{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.75rem;}
.sb-bat{display:flex;justify-content:space-between;align-items:baseline;padding:.3rem 0;}
.sb-bat-n{font-family:var(--serif);font-size:1.05rem;color:var(--ink);}
.sb-star{color:var(--green);margin-left:.15rem;}
.sb-bat-f{font-family:var(--mono);font-size:.9rem;color:var(--ink);font-variant-numeric:tabular-nums;}
.sb-bat-b{color:var(--text-faint);}
.sb-rates{font-family:var(--mono);font-size:.7rem;color:var(--text-faint);margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--line);}
.sb-bowl{display:flex;align-items:center;gap:.7rem;}
.sb-bowl-n{font-family:var(--serif);font-size:1.05rem;color:var(--ink);}
.sb-bowl-f{font-family:var(--mono);font-size:.75rem;color:var(--text-faint);}
.sb-fit{flex:1;display:flex;align-items:center;gap:.5rem;justify-content:flex-end;}
.sb-fitbar{width:70px;height:7px;background:var(--paper-2);border-radius:4px;overflow:hidden;border:1px solid var(--line);}
.sb-fitfill{display:block;height:100%;border-radius:4px;transition:width .5s,background .3s;}
.sb-fitn{font-family:var(--mono);font-size:.78rem;width:24px;text-align:right;font-variant-numeric:tabular-nums;}
.sb-recent{display:flex;align-items:center;gap:.35rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--line);}
.sb-recent-l{font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;color:var(--text-faint);margin-right:.3rem;}
.sb-ball{width:1.5rem;height:1.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.72rem;background:var(--paper-2);color:var(--ink-soft);border:1px solid var(--line);}
.sb-ball.bd{background:var(--green);color:var(--paper);border-color:var(--green);}
.sb-ball.w{background:#b0472f;color:var(--paper);border-color:#b0472f;}
.sb-actions{display:flex;flex-direction:column;gap:.7rem;margin-top:1.5rem;}

.moment{min-height:70vh;justify-content:center;align-items:center;text-align:center;}
.moment-big{font-family:var(--serif);font-size:3.5rem;font-weight:700;color:#b0472f;line-height:1;margin-bottom:1rem;}
.moment-sub{font-family:var(--serif);font-size:1.3rem;color:var(--ink);margin-bottom:1.5rem;line-height:1.4;}
.moment-score{font-family:var(--mono);font-size:.9rem;color:var(--ink-soft);margin-bottom:.5rem;}
.moment-new{font-family:var(--mono);font-size:.8rem;color:var(--text-faint);margin-bottom:2rem;}
.moment .btn-primary{width:100%;max-width:300px;}

.chg-list{display:flex;flex-direction:column;gap:.6rem;}
.chg-row{display:flex;align-items:center;gap:.6rem;padding:.8rem 1rem;background:var(--card);border:1px solid var(--line);border-radius:11px;cursor:pointer;transition:.15s;}
.chg-row:active{transform:scale(.99);}
.chg-row.cur{border-color:var(--green);}
.chg-n{font-family:var(--serif);font-size:1.05rem;color:var(--ink);min-width:70px;}
.chg-f{font-family:var(--mono);font-size:.72rem;color:var(--text-faint);}
.chg-on{font-family:var(--mono);font-size:.6rem;color:var(--green);}

/* wicket moment juice */
@keyframes wkt-shake{0%,100%{transform:translate(0,0)}15%{transform:translate(-6px,3px)}30%{transform:translate(5px,-4px)}45%{transform:translate(-4px,-2px)}60%{transform:translate(3px,3px)}75%{transform:translate(-2px,1px)}}
@keyframes wkt-flash{0%{opacity:0}8%{opacity:.5}100%{opacity:0}}
@keyframes wkt-big-in{0%{transform:scale(1.9);opacity:0;letter-spacing:.5em}55%{transform:scale(.94);opacity:1;letter-spacing:.02em}70%{transform:scale(1.04)}100%{transform:scale(1);letter-spacing:.04em}}
@keyframes wkt-rise{0%{transform:translateY(14px);opacity:0}100%{transform:translateY(0);opacity:1}}
.moment-wkt{position:relative;overflow:hidden;animation:wkt-shake .42s cubic-bezier(.36,.07,.19,.97) both}
.moment-wkt::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 75% 65% at center,#b0472f 0%,#b0472f 25%,rgba(176,71,47,0) 70%);pointer-events:none;z-index:0;animation:wkt-flash .7s ease-out both}
.moment-wkt>*{position:relative;z-index:1}
.moment-wkt .moment-big{animation:wkt-big-in .6s cubic-bezier(.2,.9,.25,1) both;animation-delay:.05s}
.moment-wkt .moment-sub{animation:wkt-rise .5s ease-out both;animation-delay:.34s}
.moment-wkt .moment-score{animation:wkt-rise .5s ease-out both;animation-delay:.44s}
.moment-wkt .moment-new{animation:wkt-rise .5s ease-out both;animation-delay:.56s}
@media (prefers-reduced-motion:reduce){.moment-wkt,.moment-wkt::before,.moment-wkt .moment-big,.moment-wkt .moment-sub,.moment-wkt .moment-score,.moment-wkt .moment-new{animation:none!important}}

/* win predictor tug-of-war bar */
.wp{margin:0 0 1rem;}
.wp-lbls{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.35rem;}
.wp-lbls b{color:var(--ink);font-weight:600;}
.wp-bar{position:relative;height:16px;border-radius:8px;overflow:hidden;background:var(--paper-2);border:1px solid var(--line);}
.wp-eng{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--green-deep),var(--green-bright));width:50%;transition:width .85s cubic-bezier(.34,1.56,.64,1);}
.wp-eng::after{content:'';position:absolute;top:0;right:0;bottom:0;width:2px;background:rgba(244,240,230,.9);box-shadow:0 0 8px 1px rgba(26,157,74,.7);}
.wp-bar.gain .wp-eng{animation:wp-pulse .7s ease-out;}
@keyframes wp-pulse{0%{filter:brightness(1)}30%{filter:brightness(1.5)}100%{filter:brightness(1)}}
@media (prefers-reduced-motion:reduce){.wp-eng{transition:width .2s linear}.wp-bar.gain .wp-eng{animation:none}}
.wp-lbls[data-wp]::after{content:"wp="attr(data-wp);position:absolute;right:1.25rem;color:#b0472f;font-size:.6rem;}

/* ===== full-screen game shell (play page only) ===== */
.game-shell{position:fixed;inset:0;height:100dvh;width:100vw;overflow:hidden;overscroll-behavior:none;background:var(--bg,#F4F0E6);z-index:50;touch-action:pan-x pan-y;}
.game-shell #screen{height:100dvh;overflow:hidden;padding:0 0 calc(env(safe-area-inset-bottom) + 2rem);box-sizing:border-box;display:flex;flex-direction:column;}
.game-shell .scr-mapwrap{height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
.game-shell .scr.moment,.game-shell .scr.scr-result{height:100%;overflow:hidden;justify-content:center;}
.game-exit{position:fixed;top:calc(env(safe-area-inset-top) + 5rem);right:2.7rem;z-index:60;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--card,#FBF8F1);border:1px solid var(--line,rgba(22,33,26,.15));color:var(--ink-soft,#46544B);text-decoration:none;font-size:1rem;line-height:1;}

/* hide site chrome on the play page only (game-shell only exists here) */
body:has(.game-shell) header{display:none!important;}
body:has(.game-shell) footer{display:none!important;}
html:has(.game-shell),body:has(.game-shell){height:100%;overflow:hidden;position:fixed;inset:0;overscroll-behavior:none;-webkit-overflow-scrolling:auto;}

/* let taps reach map nodes (ribbon/svg shouldn't eat clicks) */
.game-shell .scr-mapwrap svg{pointer-events:none;}
.game-shell .mnode{pointer-events:auto;position:absolute;z-index:2;}

/* ensure bottom map node is tappable */
.game-shell .map{overflow:visible;padding-bottom:3rem;}
.game-shell .mnode{z-index:10;pointer-events:auto;}
.game-shell .map-path{z-index:1;}
.game-shell .mnode-dot{pointer-events:auto;}

/* ===== scouting cards ===== */
.scout-cards{display:flex;gap:.7rem;overflow-x:auto;padding:.5rem 0 1rem;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;}
.scard{flex:0 0 152px;height:210px;perspective:900px;scroll-snap-align:start;cursor:pointer;}
.scard-in{position:relative;width:100%;height:100%;transition:transform .55s cubic-bezier(.4,.15,.2,1);transform-style:preserve-3d;}
.scard.flip .scard-in{transform:rotateY(180deg);}
.scard-f,.scard-b{position:absolute;inset:0;backface-visibility:hidden;border-radius:14px;border:1px solid var(--line);background:var(--card);padding:.85rem;display:flex;flex-direction:column;box-sizing:border-box;}
.scard-b{transform:rotateY(180deg);background:var(--paper-2);}
.scard-threat{display:flex;gap:3px;margin-bottom:.5rem;}
.scard-pip{width:7px;height:7px;border-radius:50%;background:var(--line-strong);}
.scard-pip.on{background:var(--green);}
.scard.danger .scard-pip.on{background:#b0472f;}
.scard-name{font-family:var(--serif);font-size:1.12rem;line-height:1.08;color:var(--ink);margin-bottom:.15rem;}
.scard-role{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);}
.scard-hand{margin-top:auto;font-family:var(--mono);font-size:.62rem;color:var(--ink-soft);}
.scard-tap{font-family:var(--mono);font-size:.55rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-top:.4rem;}
.scard-b-lbl{font-family:var(--mono);font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.5rem;}
.scard-read{font-size:.82rem;line-height:1.35;color:var(--ink);margin-bottom:.55rem;}
.scard-read b{color:var(--green-deep);}
.scard-read.warn b{color:#b0472f;}
.scard-vs{display:flex;gap:.4rem;margin-top:auto;}
.scard-vs span{flex:1;text-align:center;font-family:var(--mono);font-size:.56rem;letter-spacing:.04em;text-transform:uppercase;padding:.3rem .1rem;border-radius:6px;background:var(--card);border:1px solid var(--line);color:var(--ink-soft);}
.scard-vs span b{display:block;font-size:.68rem;margin-top:.1rem;}
.scard-vs .weak{border-color:#b0472f;color:#b0472f;}
.scard-vs .strong{border-color:var(--green);color:var(--green-deep);}
@keyframes scard-deal{0%{opacity:0;transform:translateY(16px) scale(.96);}100%{opacity:1;transform:translateY(0) scale(1);}}
.scard{animation:scard-deal .4s cubic-bezier(.2,.9,.25,1) both;}
@media (prefers-reduced-motion:reduce){.scard,.scard-in{animation:none;transition:none;}}

/* scout grid (10,000-ft view: all XI visible) */
.scout-scr{height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.scout-sub{font-size:.85rem;color:var(--ink-soft);margin:0 0 1rem;}
.scout-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin-bottom:1rem;}
.scard{height:118px;perspective:800px;cursor:pointer;}
.scard-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;}
.scard-num{font-family:var(--mono);font-size:.62rem;color:var(--text-faint);}
.scard-name.sm{font-size:.92rem;margin-bottom:.4rem;}
.scard-tag{margin-top:auto;font-family:var(--mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);}
.scard.danger .scard-tag{color:#b0472f;}
.scard.danger .scard-f{border-color:rgba(176,71,47,.4);}

/* numeric scout tiles */
.scard{height:auto;min-height:132px;padding:.8rem;display:flex;flex-direction:column;perspective:none;background:var(--card);border:1px solid var(--line);border-radius:13px;}
.scard.danger{border-color:rgba(176,71,47,.4);}
.scard.tail{opacity:.72;}
.scard-tailtag{font-family:var(--mono);font-size:.55rem;letter-spacing:.1em;color:var(--text-faint);border:1px solid var(--line);border-radius:4px;padding:.1rem .3rem;}
.scard-metric{display:flex;align-items:center;gap:.4rem;margin-top:.4rem;}
.scard-mlbl{font-family:var(--mono);font-size:.56rem;letter-spacing:.03em;text-transform:uppercase;color:var(--text-faint);width:42px;flex-shrink:0;}
.scard-mtrack{flex:1;height:5px;background:var(--paper-2);border-radius:3px;overflow:hidden;}
.scard-mfill{display:block;height:100%;background:var(--green);border-radius:3px;}
.scard-metric.weak .scard-mfill{background:#b0472f;}
.scard-metric.strong .scard-mfill{background:var(--green-bright,var(--green));}
.scard-mval{font-family:var(--mono);font-size:.62rem;color:var(--ink-soft);width:30px;text-align:right;flex-shrink:0;}
.scard-numrow{margin-top:auto;font-family:var(--mono);font-size:.6rem;color:var(--text-faint);display:flex;justify-content:space-between;}

/* ===== animated scouting report flipbook ===== */
.scout-flip{height:100dvh;display:flex;flex-direction:column;padding:1.5rem 1.25rem calc(env(safe-area-inset-bottom) + 1.5rem);box-sizing:border-box;position:relative;}
.scb-skip{position:absolute;top:calc(env(safe-area-inset-top) + .6rem);right:1rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);text-decoration:none;z-index:5;background:none;border:none;padding:.3rem .4rem;margin:0;cursor:pointer;-webkit-appearance:none;appearance:none;}
.scb-skip:hover{color:var(--ink-soft);}
.scb-stage{flex:1;display:flex;align-items:center;justify-content:center;overflow-y:auto;min-height:0;}
.scout-beat{width:100%;max-width:440px;}
.scb-fade{opacity:0;transform:translateY(14px);animation:scb-in .55s cubic-bezier(.2,.8,.25,1) forwards;animation-delay:var(--d,0s);}
@keyframes scb-in{to{opacity:1;transform:translateY(0);}}
.scb-h{font-family:var(--serif);font-size:2rem;font-weight:700;color:var(--ink);margin:.1rem 0 .5rem;line-height:1.05;}
/* situation */
.scb-need{display:flex;flex-direction:column;margin:.5rem 0;}
.scb-need-lead{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);}
.scb-need-num{font-family:var(--serif);font-size:5rem;font-weight:700;line-height:1;color:var(--green-deep);}
.scb-needrow{display:flex;align-items:baseline;gap:.55rem;}
.scb-need-unit{font-family:var(--mono);font-size:1.05rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);}
.scb-meta{font-size:1rem;color:var(--ink-soft);margin-bottom:1.2rem;}
.scb-mission{font-size:1.15rem;color:var(--ink);font-weight:600;}
.sb-field-beat #scoutGo{margin-top:2rem;}
/* objectives + stars */
.scb-objs{margin-top:1rem;}
.scb-obj{display:flex;align-items:center;gap:.7rem;padding:.6rem 0;border-bottom:1px solid var(--line);}
.scb-obj-star{color:var(--line-strong);display:inline-flex;transform:scale(0);animation:star-pop .5s cubic-bezier(.34,1.56,.64,1) forwards;animation-delay:var(--sd,.3s);}
.scb-obj-star.lit,.scb-obj-star{color:#d9a441;}
@keyframes star-pop{0%{transform:scale(0) rotate(-30deg);}100%{transform:scale(1) rotate(0);}}
.scb-obj-txt{font-size:.95rem;color:var(--ink);line-height:1.3;}
/* danger men */
.scb-hint{font-size:.8rem;color:var(--ink-soft);margin-bottom:1rem;}
.scb-dm{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem;margin-bottom:.5rem;}
.scb-dm.scb-fade{}
.scb-dm-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.6rem;}
.scb-dm-name{font-family:var(--serif);font-size:1.08rem;color:var(--ink);}
.scb-dm-tag{font-family:var(--mono);font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;color:#b0472f;}
.scb-bar{display:flex;align-items:center;gap:.5rem;margin-top:.28rem;}
.scb-bar-l{font-family:var(--mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);width:38px;}
.scb-bar-t{flex:1;height:6px;background:var(--paper-2);border-radius:3px;overflow:hidden;}
.scb-bar-f{display:block;height:100%;background:var(--green);border-radius:3px;}
}
.scb-bar.weak .scb-bar-f{background:#b0472f;}
.scb-bar.strong .scb-bar-f{background:var(--green-bright,var(--green));}
.scb-bar-v{font-family:var(--mono);font-size:.66rem;color:var(--ink-soft);width:32px;text-align:right;}
/* foot nav */
.scb-foot{display:flex;align-items:center;justify-content:space-between;padding:1rem 0 1.5rem;flex-shrink:0;}
.scb-dots{display:flex;gap:.4rem;}
.scb-dot{width:7px;height:7px;border-radius:50%;background:var(--line-strong);transition:.3s;}
.scb-dot.on{background:var(--green);width:22px;border-radius:4px;}
.scb-next{font-family:var(--mono);font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;background:var(--green-deep);color:var(--paper);border:none;padding:.75rem 1.5rem;border-radius:10px;cursor:pointer;}
@media (prefers-reduced-motion:reduce){.scb-fade,.scb-obj-star,.scb-bar-f{animation-duration:.01s;}}

/* flipbook fixes: top-align, back btn, read line, reliable bars */
.scb-bar-f{width:0;transition:width .7s cubic-bezier(.3,.9,.3,1);animation:none!important;}
.scb-dm-read{font-size:.76rem;line-height:1.35;color:var(--ink-soft);margin-top:.45rem;padding-top:.4rem;border-top:1px solid var(--line);}
.scb-dm-read b{color:var(--green-deep);font-weight:600;}
.scb-back{font-family:var(--mono);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;background:transparent;color:var(--ink-soft);border:1px solid var(--line-strong);padding:.55rem 1rem;border-radius:9px;cursor:pointer;}
.scb-back-sp{width:74px;}
.scb-need-num{font-size:4.2rem;}

/* live this-over strip + ball pop */
.sb-thisover{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin-top:.5rem;min-height:1.4rem;}
.sb-over-l{font-family:var(--mono);font-size:.55rem;letter-spacing:.1em;color:var(--text-faint);margin-right:.2rem;}
.sb-ball.pop{animation:ball-pop .28s cubic-bezier(.34,1.56,.64,1);}
@keyframes ball-pop{0%{transform:scale(0);}100%{transform:scale(1);}}

/* ===== plan screen ===== */

.ps-eyebrow{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.9rem;flex-shrink:0;}
.ps-body{flex:1;display:flex;flex-direction:column;gap:1rem;min-height:0;overflow-y:auto;}

/* left: bowler avatar + speech bubble */
.ps-left{display:flex;align-items:flex-start;gap:.7rem;flex-shrink:0;}
.ps-bowler-avatar{flex-shrink:0;width:52px;height:52px;border-radius:50%;background:var(--green-deep);color:var(--paper);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:.85rem;font-weight:700;box-shadow:0 3px 10px rgba(0,0,0,.15);}
.ps-bubble{position:relative;background:var(--card);border:1.5px solid var(--line-strong);border-radius:15px;border-top-left-radius:3px;padding:.7rem .9rem;font-size:.92rem;line-height:1.35;color:var(--ink);max-width:78%;transform-origin:0% 0%;box-shadow:0 2px 8px rgba(0,0,0,.06);}
.ps-bubble::before{content:'';position:absolute;top:12px;left:-8px;border-style:solid;border-width:6px 8px 6px 0;border-color:transparent var(--line-strong) transparent transparent;}
.ps-bubble::after{content:'';position:absolute;top:12px;left:-6px;border-style:solid;border-width:6px 8px 6px 0;border-color:transparent var(--card) transparent transparent;}
.ps-bubble.pop{animation:ps-pop .42s cubic-bezier(.34,1.56,.64,1);}
@keyframes ps-pop{0%{transform:scale(0);opacity:0;}60%{opacity:1;}100%{transform:scale(1);opacity:1;}}

/* right: the plan controls */
.ps-right{flex:1;display:flex;flex-direction:column;gap:.5rem;}
.ps-batter{font-size:.9rem;color:var(--ink-soft);margin-bottom:.2rem;}
.ps-batter b{color:var(--ink);font-family:var(--serif);font-size:1.05rem;}
.ps-lbl{font-family:var(--mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin-top:.5rem;}

/* bowler picker */


.ps-bowler.on{border-color:var(--green-deep);background:var(--green-deep);color:var(--paper);}
.ps-b-name{font-family:var(--serif);font-size:.9rem;}
.ps-b-type{font-family:var(--mono);font-size:.52rem;letter-spacing:.05em;text-transform:uppercase;opacity:.7;}
.ps-locked{display:flex;align-items:center;gap:.4rem;font-family:var(--serif);font-size:1rem;color:var(--ink);padding:.5rem .7rem;background:var(--paper-2);border-radius:10px;}
.ps-lockhint{font-family:var(--mono);font-size:.56rem;letter-spacing:.04em;text-transform:none;color:var(--text-faint);}

/* posture */
.ps-postures{display:flex;gap:.45rem;}
.ps-posture{flex:1;padding:.6rem .3rem;border:1.5px solid var(--line);border-radius:11px;background:var(--card);font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:.15s;color:var(--ink-soft);}
.ps-posture.on{border-color:var(--green-deep);background:var(--green-deep);color:var(--paper);}

/* field visual */


/* fielder dots positioned by posture via box-shadows on a center pseudo (simple version) */




@media (prefers-reduced-motion:reduce){.ps-bubble.pop{animation-duration:.01s;}}

/* ===== plan screen v2 layout (no scroll, field-centred) ===== */



.ps-controls{flex-shrink:0;display:flex;flex-direction:column;gap:.5rem;}
.ps-row{display:flex;align-items:center;gap:.5rem;}
.ps-row .ps-lbl{width:52px;flex-shrink:0;font-family:var(--mono);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:0;}
.ps-bowlers,.ps-plans,.ps-postures{display:flex;gap:.35rem;flex:1;}
.ps-bowler,.ps-plan,.ps-posture{flex:1;padding:.5rem .2rem;border:1.5px solid var(--line);border-radius:9px;background:var(--card);cursor:pointer;transition:.12s;font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft);text-align:center;}

.ps-b-name{font-family:var(--serif);font-size:.82rem;text-transform:none;letter-spacing:0;color:inherit;}
.ps-b-type{font-size:.5rem;opacity:.65;}
.ps-bowler.on,.ps-plan.on,.ps-posture.on{border-color:var(--green-deep);background:var(--green-deep);color:var(--paper);}
.ps-locked{font-family:var(--serif);font-size:.9rem;color:var(--ink);}

/* field graphic */








/* ===== plan screen v3: fit + slider ===== */


.ps-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;background:var(--green-deep);color:var(--paper);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:.72rem;font-weight:700;}
.ps-bubble{position:relative;background:var(--card);border:1.5px solid var(--line-strong);border-radius:13px;border-top-left-radius:3px;padding:.55rem .8rem;font-size:.86rem;line-height:1.3;color:var(--ink);}
.ps-bubble.pop{animation:ps-pop .4s cubic-bezier(.34,1.56,.64,1);transform-origin:0 0;}
@keyframes ps-pop{0%{transform:scale(0);opacity:0;}100%{transform:scale(1);opacity:1;}}




.ps-bowler.on{border-color:var(--green-deep);background:var(--green-deep);color:var(--paper);}
.ps-lockrow{flex-shrink:0;text-align:center;font-family:var(--serif);font-size:.85rem;color:var(--ink);}
.ps-lockrow span{font-family:var(--mono);font-size:.58rem;color:var(--text-faint);text-transform:uppercase;}
/* slider */

.ps-track{position:relative;height:6px;background:var(--line);border-radius:3px;margin:.5rem 6px;touch-action:none;cursor:pointer;}
.ps-track-fill{position:absolute;left:0;top:0;height:100%;background:var(--green-deep);border-radius:3px;transition:width .28s cubic-bezier(.3,.9,.3,1);}
.ps-thumb{position:absolute;top:50%;width:18px;height:18px;margin-left:-9px;background:var(--paper);border:2.5px solid var(--green-deep);border-radius:50%;transform:translateY(-50%);transition:left .28s cubic-bezier(.3,.9,.3,1);box-shadow:0 1px 4px rgba(0,0,0,.2);}
.ps-slabels{display:flex;justify-content:space-between;margin-top:.3rem;}
.ps-slabel{background:none;border:none;font-family:var(--mono);font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);cursor:pointer;padding:.1rem .3rem;}
.ps-slabel.on{color:var(--green-deep);font-weight:700;}

/* fielders glide */


/* ===== stadium look + fit ===== */

          /* outer stand/roof (dark) */
          /* upper tier (lighter slate) */
   /* green field */


 

/* floodlights */



/* fit: shrink field, tighten, button on screen */


.ps-avatar{width:36px;height:36px;font-size:.66rem;}
.ps-bubble{padding:.5rem .75rem;font-size:.82rem;}




/* ===== stadium look + fit ===== */

          /* outer stand/roof (dark) */
          /* upper tier (lighter slate) */
   /* green field */


 

/* floodlights */



/* fit: shrink field, tighten, button on screen */


.ps-avatar{width:36px;height:36px;font-size:.66rem;}
.ps-bubble{padding:.5rem .75rem;font-size:.82rem;}




/* ===== proper tiered stadium ===== */

.fg-tier1{fill:#2e3a42;}   /* outer roof/wall */
   /* upper tier */
   /* lower tier */
.fg-ground{fill:#6fae57;stroke:#5a9247;stroke-width:.4;}
.fg-circle{fill:none;stroke:rgba(255,255,255,.55);stroke-width:.4;stroke-dasharray:2 1.5;}
.fg-pitch{fill:#d8c9a3;stroke:rgba(0,0,0,.12);stroke-width:.3;}
.fg-keeper{fill:#fff;stroke:#2c5f2d;stroke-width:.5;} .fg-bowler{fill:#2c2c2c;}
.fg-man{fill:#fff;stroke:#2c5f2d;stroke-width:.5;transition:cx .34s cubic-bezier(.3,.9,.3,1),cy .34s cubic-bezier(.3,.9,.3,1);}
.fg-flpole{stroke:#8a9499;stroke-width:1.2;stroke-linecap:round;}
.fg-fllamp{fill:#fdf6d0;stroke:#cfc48f;stroke-width:.3;}
.fg-glow{fill:#fff7cc;opacity:.18;}

/* nuke any stray green oval background */
.fg-fllamp{fill:#4a5560;stroke:#5f6b76;stroke-width:.3;}
.fg-flbulb{fill:#fff8d8;}
.fg-glow{fill:#fff7cc;opacity:.16;}

/* make field fill the space properly */




/* ===== ONE clean plan-screen layout ===== */
.plan-scr{height:100dvh;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;
  padding:.7rem .85rem calc(env(safe-area-inset-bottom) + .7rem);gap:.5rem;}
.ps-top{flex:0 0 auto;display:flex;align-items:flex-start;gap:.55rem;}

.ps-slider{flex:0 0 auto;}
.ps-go{flex:0 0 auto;}

/* compact bowler picker row (doesn't eat the field) */
.ps-bowlers{flex:0 0 auto;display:flex;gap:.35rem;height:auto;}
.ps-bowler{flex:1;height:44px;min-height:44px;max-height:44px;padding:0;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--line);border-radius:9px;background:var(--card);font-family:var(--serif);font-size:.8rem;cursor:pointer;color:var(--ink-soft);}
.ps-bowler.on{border-color:var(--green-deep);background:var(--green-deep);color:var(--paper);}

/* ===== ONE correct field layout ===== */
.ps-field{
  flex:0 0 auto;
  height:min(68vw,380px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  position:static;
  box-shadow:none;
}
.fg-svg{
  height:100%;
  width:auto;
  max-width:100%;
  aspect-ratio:1;
  display:block;
}



/* the pitch: tan strip, stumps both ends, creases */
.pz-pitch{position:relative;width:min(58vw,260px);height:min(80vh,600px);
  background:linear-gradient(180deg,#cდ,#c9b98d 8%,#d3c396 50%,#c9b98d 92%,#bfae82);
  background:linear-gradient(180deg,#c4b483,#d3c396 50%,#c4b483);
  border-radius:6px;box-shadow:0 14px 44px rgba(0,0,0,.4);display:flex;flex-direction:column;overflow:hidden;
  border:1px solid #a8976a;}
/* worn patches for texture */
.pz-pitch::before{content:'';position:absolute;top:14%;left:50%;transform:translateX(-50%);width:34%;height:16%;background:radial-gradient(ellipse,rgba(150,130,90,.5),transparent 70%);pointer-events:none;}
.pz-batterend,.pz-bowlerend{position:relative;height:52px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.pz-stumps{display:flex;gap:3px;}
.pz-stumps i{width:3px;height:18px;background:#7a6b4a;border-radius:1px;box-shadow:0 1px 1px rgba(0,0,0,.3);}
.pz-batter{position:absolute;top:2px;font-family:var(--mono);font-size:.56rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(0,0,0,.55);}
.pz-crease{position:absolute;background:rgba(255,255,255,.75);}
.pz-popping{bottom:6px;left:12%;right:12%;height:2px;}
.pz-return-l{bottom:6px;height:22px;width:2px;left:30%;}
.pz-return-r{bottom:6px;height:22px;width:2px;right:30%;}
/* the zones */
.pz-zones{flex:1;display:flex;flex-direction:column;position:relative;}
.pz-hint{position:absolute;top:6px;left:0;right:0;text-align:center;font-family:var(--mono);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(0,0,0,.45);z-index:3;pointer-events:none;}
.pz-lengthband{display:flex;flex:1;}
.pz-full{flex:2;border-bottom:2px dashed rgba(255,255,255,.5);}
.pz-shortband{flex:1;}
.pz-zone{flex:1;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;border-right:1px dashed rgba(255,255,255,.4);transition:background .12s;}
.pz-zone:last-child{border-right:none;}
.pz-zone span{font-family:var(--serif);font-size:.92rem;color:#3a3020;background:rgba(255,255,255,.35);padding:.25rem .5rem;border-radius:6px;}
.pz-zone:active span,.pz-zone.on span{background:rgba(44,95,45,.9);color:#fff;}

/* ===== pitch zoom: integrated pitch look ===== */
.pz-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;}
.pz-scrim{position:absolute;inset:0;background:rgba(10,20,12,0);transition:background .38s;}
.pz-overlay.pz-show .pz-scrim{background:rgba(10,20,12,.6);}
.pz-pitch{position:relative;width:min(58vw,260px);height:min(82vh,620px);
  background:linear-gradient(180deg,#c4b483,#d3c396 50%,#c4b483);
  border-radius:6px;box-shadow:0 14px 44px rgba(0,0,0,.4);display:flex;flex-direction:column;overflow:hidden;border:1px solid #a8976a;}
.pz-hint{position:absolute;top:8px;left:0;right:0;text-align:center;font-family:var(--mono);font-size:.55rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(0,0,0,.4);z-index:5;pointer-events:none;}
.pz-end{position:relative;height:46px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.pz-stumps{display:flex;gap:3px;}
.pz-stumps i{width:3px;height:16px;background:#7a6b4a;border-radius:1px;box-shadow:0 1px 1px rgba(0,0,0,.3);}
.pz-batter{position:absolute;top:3px;font-family:var(--mono);font-size:.54rem;letter-spacing:.05em;text-transform:uppercase;color:rgba(0,0,0,.5);}
/* creases span the pitch at both ends */
.pz-crease{flex-shrink:0;height:2px;margin:0 14%;background:rgba(255,255,255,.7);position:relative;}
.pz-crease::before,.pz-crease::after{content:'';position:absolute;top:-9px;width:2px;height:20px;background:rgba(255,255,255,.6);}
.pz-crease::before{left:24%;} .pz-crease::after{right:24%;}
.pz-crease-bottom::before,.pz-crease-bottom::after{top:-9px;}
/* zones as integrated regions filling the pitch middle */
.pz-zone-grid{flex:1;display:flex;flex-direction:column;min-height:0;}
.pz-row{display:flex;}
.pz-full-row{flex:5;}          /* full-length lines take upper part */
.pz-short-row{flex:4;border-top:2px dashed rgba(255,255,255,.45);}  /* short band taller */
.pz-zone{flex:1;display:flex;align-items:flex-start;justify-content:center;padding-top:.8rem;cursor:pointer;border-right:1px dashed rgba(255,255,255,.35);transition:background .12s;position:relative;}
.pz-zone:last-child{border-right:none;}
.pz-short-row .pz-zone{align-items:center;padding-top:0;}
.pz-zone span{font-family:var(--serif);font-size:.9rem;color:#3a3020;pointer-events:none;}
.pz-zone:active,.pz-zone.on{background:rgba(44,95,45,.35);}
.pz-zone.on span{color:#1a3a1a;font-weight:700;}

/* off/leg side labels on the field */
.fg-sidelbl{fill:rgba(255,255,255,.75);font-family:var(--mono);font-size:4px;letter-spacing:.5px;font-weight:700;}

/* tappable scorecard rows */
.sb-tap{cursor:pointer;position:relative;transition:background .12s;}
.sb-tap:active{background:rgba(44,95,45,.08);}
.sb-tap-hint{font-family:var(--mono);font-size:.5rem;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);margin-left:.4rem;}

/* ===== bowler pick screen ===== */
.bp-scr{height:100dvh;display:flex;flex-direction:column;justify-content:flex-start;padding:1.2rem 1rem calc(env(safe-area-inset-bottom) + .9rem);box-sizing:border-box;}
.bp-head{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);}
.bp-sub2{font-family:var(--serif);font-size:1.1rem;color:var(--ink);margin:.1rem 0 1rem;}
.bp-list{flex:0 1 auto;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;min-height:0;}
.bp-row{display:flex;align-items:center;gap:.7rem;padding:.7rem .8rem;border:1.5px solid var(--line);border-radius:12px;background:var(--card);cursor:pointer;text-align:left;transition:.14s;width:100%;}
.bp-row.on{border-color:var(--green-deep);background:rgba(44,95,45,.06);box-shadow:0 0 0 1.5px var(--green-deep) inset;}
.bp-main{flex:1;min-width:0;}
.bp-name{font-family:var(--serif);font-size:1rem;color:var(--ink);}
.bp-type{font-family:var(--mono);font-size:.56rem;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);margin-top:.1rem;}
.bp-figs{text-align:right;flex-shrink:0;}
.bp-wr{font-family:var(--serif);font-size:1rem;color:var(--ink);}
.bp-sub{font-family:var(--mono);font-size:.54rem;color:var(--text-faint);margin-top:.1rem;}
.bp-fit{width:44px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:.2rem;}
.bp-fitbar{width:100%;height:4px;background:var(--line);border-radius:2px;overflow:hidden;}
.bp-fitfill{height:100%;border-radius:2px;}
.bp-fitn{font-family:var(--mono);font-size:.56rem;}
.bp-go{flex-shrink:0;margin-top:.8rem;}

/* plan screen header - which batter */
.ps-header{flex-shrink:0;text-align:center;margin-bottom:.4rem;}
.ps-header-eb{font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);}
.ps-header-bat{font-family:var(--serif);font-size:1.35rem;color:var(--ink);line-height:1.1;margin-top:.15rem;}

/* ===== player card (Savant-style) ===== */









.pcard-cells b{display:block;font-family:var(--serif);font-size:1.1rem;color:var(--ink);line-height:1;}
.pcard-cells span{display:block;font-family:var(--mono);font-size:.5rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-top:.3rem;}

.pcard-strip-head em{color:var(--ink-faint);text-transform:none;letter-spacing:0;font-size:.58rem;}









    


/* ===== rich player card additions ===== */

.pcard-hero b{font-family:var(--serif);font-size:1.15rem;color:var(--ink);font-weight:600;}
.pcard-hero span{color:var(--line-strong);}


.pc-sec-h em{text-transform:none;letter-spacing:0;color:var(--ink-faint);font-size:.56rem;}



.pc-inns span{display:block;font-family:var(--mono);font-size:.52rem;text-transform:uppercase;color:var(--ink-soft);}
.pc-inns b{display:block;font-family:var(--serif);font-size:1.05rem;color:var(--ink);margin:.1rem 0;}
.pc-inns em{display:block;font-family:var(--mono);font-size:.5rem;color:var(--ink-faint);font-style:normal;}






/* ===== PLAYER CARD (no-scroll, structured) ===== */
.pcard-scr{height:100dvh;overflow:hidden;padding:1.1rem 1rem calc(env(safe-area-inset-bottom) + .9rem);box-sizing:border-box;display:flex;}
.pcard{position:relative;display:flex;flex-direction:column;width:100%;gap:.7rem;}
.pcard-close{position:absolute;top:-.1rem;right:0;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--card);font-size:1rem;color:var(--ink-soft);cursor:pointer;z-index:2;}
.pcard-top{flex-shrink:0;}
.pcard-name{font-family:var(--serif);font-size:1.7rem;line-height:1.02;color:var(--ink);padding-right:2rem;}
.pcard-meta{font-family:var(--mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);margin-top:.3rem;}
.pcard-live{flex-shrink:0;font-family:var(--mono);font-size:.7rem;color:var(--green-deep);background:rgba(44,95,45,.08);border-radius:8px;padding:.45rem .65rem;}
/* hero: big number + arc/line beside it */
.pcard-hero{flex-shrink:0;display:flex;gap:.9rem;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.8rem .9rem;}
.pcard-hero-big{text-align:center;flex-shrink:0;}
.pcard-hero-big b{display:block;font-family:var(--serif);font-size:2.2rem;line-height:.9;color:var(--green-deep);}
.pcard-hero-big span{display:block;font-family:var(--mono);font-size:.52rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-top:.35rem;}
.pcard-hero-side{flex:1;min-width:0;}
.pcard-hero-line{font-family:var(--mono);font-size:.64rem;color:var(--ink-soft);margin-top:.3rem;line-height:1.4;}
.pc-spark{width:100%;height:44px;display:block;}
/* percentile strip - takes remaining space */
.pcard-striphead{flex-shrink:0;font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:600;}
.pcard-striphead em{text-transform:none;letter-spacing:0;color:var(--ink-faint);font-size:.56rem;}
.pc-scale{flex-shrink:0;display:flex;justify-content:space-between;font-family:var(--mono);font-size:.5rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);padding:0 2.3rem 0 5.5rem;}
.pcard-strip{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;justify-content:space-evenly;}
.pc-band{margin:0;}
.pc-band-lbl{font-family:var(--mono);font-size:.5rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin:.15rem 0;}
.pc-row{display:grid;grid-template-columns:5rem 1fr 2.2rem;align-items:center;gap:.5rem;margin-bottom:.28rem;}
.pc-lbl{font-family:var(--sans,sans-serif);font-size:.7rem;color:var(--ink);}
.pc-track{position:relative;height:.55rem;background:var(--paper-2);border-radius:99px;}
.pc-fill{position:absolute;left:0;top:0;height:100%;border-radius:99px;}
.pc-dot{position:absolute;top:50%;transform:translate(-50%,-50%);font-family:var(--mono);font-size:.55rem;font-weight:600;color:#fff;min-width:.95rem;height:.95rem;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--card);}
.pc-raw{font-family:var(--mono);font-size:.66rem;color:var(--ink-soft);text-align:right;font-weight:600;}
.pc-elite{background:#1f7a43;} .pc-good{background:#5a9e5e;} .pc-avg{background:#cbb267;} .pc-below{background:#d98b4a;} .pc-poor{background:#b0472f;}
.pcard-noqual{font-family:var(--sans,sans-serif);font-size:.85rem;color:var(--ink-soft);padding:1rem 0;}

/* ===== MATCH SCREEN v2 (broadcast) ===== */
.mb{height:100%;min-height:0;display:flex;flex-direction:column;padding:0 0 .4rem;box-sizing:border-box;gap:.4rem;overflow:hidden;}
.mb-header{background:var(--team-accent,var(--green-deep));color:#fff;margin:calc(env(safe-area-inset-top) + .8rem) 1rem .4rem;padding:1.1rem 1.2rem;border-radius:18px;flex-shrink:0;box-shadow:0 4px 16px rgba(0,0,0,.18);}
.mb-eyebrow{font-family:var(--mono);font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;opacity:.7;}
.mb-scoreline{display:flex;align-items:baseline;justify-content:space-between;margin-top:.3rem;}
.mb-team{font-family:var(--mono);font-size:.9rem;letter-spacing:.1em;font-weight:700;}
.mb-score{font-family:var(--serif);font-size:2.6rem;line-height:1;font-variant-numeric:tabular-nums;}
.mb-wk{opacity:.65;font-size:1.6rem;}
.mb-eq{font-family:var(--mono);font-size:.62rem;letter-spacing:.03em;margin-top:.5rem;opacity:.9;font-variant-numeric:tabular-nums;}
.mb-eq b{font-size:.72rem;}
/* win prob */
.mb-wp{padding:0 1.1rem;flex-shrink:0;}
.mb-wp-lbls{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:.54rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);margin-bottom:.3rem;}
.mb-wp-pct{font-size:.7rem;color:var(--green-deep);font-weight:700;}
.mb-wp-bar{height:8px;background:var(--saffron,#c98a2d);border-radius:99px;overflow:hidden;}
.mb-wp-eng{height:100%;background:var(--green-deep);border-radius:99px 0 0 99px;transition:width .5s cubic-bezier(.3,.9,.3,1);}
/* cards */

/* full-width region gate */

/* ===== MAP NODES (matches markup: .mnode > .mnode-dot + .mnode-stars > .mn-star) ===== */
.mnode{-webkit-tap-highlight-color:transparent;position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;
  align-items:center;cursor:pointer;z-index:10;}
.mnode-dot{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;user-select:none;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:1.15rem;font-weight:700;background:#efe7d6;
  border:3px solid #cbbfa6;color:var(--ink-soft);box-shadow:0 3px 8px rgba(0,0,0,.14);transition:transform .15s;}
.mnode.open .mnode-dot{background:var(--paper);border-color:var(--green);color:var(--green);}
.mnode.done .mnode-dot{background:linear-gradient(160deg,var(--green) 0%,var(--green-deep) 100%);color:#fff;border-color:var(--green-deep);box-shadow:0 2px 6px rgba(11,46,18,.28),inset 0 1px 0 rgba(255,255,255,.18);}
.mnode.current .mnode-dot{background:linear-gradient(160deg,var(--green) 0%,var(--green-deep) 100%);color:#fff;border-color:var(--green-deep);
  box-shadow:0 0 0 7px rgba(20,83,45,.16),0 3px 8px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.18);animation:mnpulse 1.9s ease-in-out infinite;}
.mnode.locked{cursor:default;}
.mnode.locked .mnode-dot{background:#e6ded0;border-color:#d3c9b4;color:#b3a88f;font-size:.85rem;box-shadow:none;}
.mnode.wall .mnode-dot{border-color:#c9773a;color:#c9773a;}
.mnode.wall.done .mnode-dot{background:linear-gradient(160deg,#d98a3f 0%,#b35e26 100%);color:#fff;border-color:#a8531e;box-shadow:0 2px 6px rgba(140,70,20,.32),inset 0 1px 0 rgba(255,255,255,.22);}
.mnode.wall.current .mnode-dot{background:linear-gradient(160deg,#d98a3f 0%,#b35e26 100%);color:#fff;border-color:#a8531e;box-shadow:0 0 0 7px rgba(201,119,58,.2),0 3px 8px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.22);}
.mnode:active .mnode-dot{transform:scale(.92);}
@keyframes mnpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}
.mnode-stars{display:flex;gap:1.5px;margin-top:3px;}
.mn-star{font-size:.55rem;color:#cbbfa6;line-height:1;}
.mn-star.on{color:#e6a92e;}
@media (prefers-reduced-motion: reduce){ .mnode.current .mnode-dot{animation:none;} }

/* ===== MAP LAYOUT (essential) ===== */
.map-scroll{position:relative;width:340px;margin:0 auto;padding-bottom:0;}
.map-stage{position:relative;width:340px;}
.map-body{position:relative;width:340px;margin:0 auto;}
.map-banner.sticky{position:sticky;top:0;z-index:20;background:var(--paper);
  text-align:center;padding:1.1rem 0 1.2rem;box-shadow:0 8px 12px -8px var(--paper);}
.mb-eb{font-size:.66rem;letter-spacing:.18em;color:var(--ink-soft);text-transform:uppercase;}
.mb-title{font-family:var(--serif);font-size:1.6rem;color:var(--ink);margin:.12rem 0 0;line-height:1;}
.mb-title.muted{color:var(--ink-soft);opacity:.7;}
.mb-stars{font-size:.82rem;color:var(--green);margin-top:.2rem;}
.mb-gate{font-size:.8rem;color:var(--ink-soft);margin-top:.2rem;}

/* ===== STAGE GATE (threshold at the start/bottom of each stage) ===== */
.map-gate{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;justify-content:center;
  padding:1.2rem 0 1.3rem;margin:0 auto;
  background:linear-gradient(to top,var(--paper) 62%,transparent);}
/* posts extending toward the edges */
.map-gate .gate-post{flex:1;height:2px;background:linear-gradient(to var(--gd,right),transparent,rgba(22,33,26,.3));}
.gate-post-l{--gd:right;}
.gate-post-r{--gd:left;background:linear-gradient(to left,transparent,rgba(22,33,26,.3));}
/* the centered plate/lintel */
.gate-plate{flex:0 0 auto;text-align:center;padding:.7rem 1.6rem;margin:0 .4rem;
  background:var(--paper);border:1.5px solid rgba(22,33,26,.28);border-radius:4px;
  box-shadow:0 3px 10px -4px rgba(22,33,26,.25);}
.gate-plate .mb-eb{font-size:.58rem;letter-spacing:.22em;color:var(--ink-soft);opacity:.75;}
.gate-plate .mb-title{font-family:var(--serif);font-size:1.5rem;color:var(--ink);margin:.1rem 0 0;line-height:1;}
.gate-plate .mb-stars{font-size:.72rem;color:var(--green);margin-top:.25rem;}
.gate-plate .mb-gate{font-size:.72rem;color:var(--ink-soft);margin-top:.25rem;}

/* ===== EDGE STAGE (recedes into the distance) ===== */
.map-stage.edge .map-body{
  -webkit-mask-image:linear-gradient(to top, #000 60%, rgba(0,0,0,.7) 82%, rgba(0,0,0,.2) 100%);
  mask-image:linear-gradient(to top, #000 60%, rgba(0,0,0,.7) 82%, rgba(0,0,0,.2) 100%);}
.map-stage.edge .mnode{opacity:.7;}
.map-stage.edge .map-path{opacity:.5;}


/* ===== BATTING BOARD ===== */
.bb-bat{padding:.7rem 0;border-bottom:1px solid var(--line);}
.bb-bat:last-child{border-bottom:none;}
.bb-bat-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem;}
.bb-bat-name{background:none;border:none;font-family:var(--serif);font-size:1.05rem;color:var(--ink);cursor:pointer;padding:0;display:flex;align-items:center;gap:.4rem;}
.bb-strike{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block;}
.bb-bat-score{font-family:var(--serif);font-size:1.05rem;color:var(--ink);}
.bb-bat-score em{font-style:normal;color:var(--ink-soft);font-size:.85rem;}
.bb-gauges{display:flex;gap:1rem;margin-bottom:.6rem;}
.bb-g{flex:1;display:flex;align-items:center;gap:.5rem;}
.bb-g-lbl{font-size:.6rem;letter-spacing:.1em;color:var(--ink-soft);width:38px;}
.bb-g-bar{flex:1;height:7px;background:var(--line-strong);border-radius:4px;overflow:hidden;}
.bb-g-fill{height:100%;border-radius:4px;transition:width .4s ease;}
.bb-g-fill.bb-set{background:var(--green);}
.bb-g-fill.bb-press{background:#c9773a;}
.bb-approach{width:100%;background:var(--paper);border:1px solid var(--line-strong);border-radius:9px;padding:.55rem;font-family:var(--mono);font-size:.78rem;letter-spacing:.03em;text-transform:uppercase;color:var(--ink);cursor:pointer;transition:.15s;}
.bb-approach:hover{border-color:var(--green);color:var(--green);}
.bb-bowler{display:flex;align-items:center;gap:.7rem;margin-bottom:.5rem;}
.bb-bowl-type{font-size:.78rem;color:var(--ink-soft);}


/* ===== RESTORED match-screen CSS (from commit 5027d7f) ===== */
.mb-card{margin:0 1.1rem;padding:.6rem 0;flex-shrink:0;border-bottom:1px solid var(--line);}
.mb-lbl{font-family:var(--mono);font-size:.54rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:.5rem;}
.mb-bat{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:.7rem;padding:.65rem 0;}
.mb-bat + .mb-bat{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:.7rem;padding:.65rem 0;}
.mb-bat-name{background:none;border:none;font-family:var(--serif);font-size:1.15rem;color:var(--ink);text-align:left;cursor:pointer;padding:0;display:flex;align-items:center;gap:.4rem;}
.mb-strike{width:6px;height:6px;border-radius:50%;background:var(--green);display:inline-block;}
.mb-bat-sr{font-family:var(--mono);font-size:.56rem;color:var(--ink-faint);text-transform:uppercase;}
.mb-bat-score{font-family:var(--serif);font-size:1.25rem;color:var(--ink);font-variant-numeric:tabular-nums;}
.mb-bat-score em{font-family:var(--mono);font-size:.62rem;color:var(--ink-faint);font-style:normal;font-variant-numeric:tabular-nums;}
.mb-chip{font-family:var(--mono);font-size:.56rem;text-transform:uppercase;letter-spacing:.05em;padding:.3rem .55rem;border:1px solid var(--line);border-radius:99px;background:var(--paper-2);color:var(--ink-soft);cursor:pointer;}
.mb-chip:active{background:var(--green-deep);color:var(--paper);}
.mb-bowl{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:.6rem;}
.mb-bowl-name{background:none;border:none;font-family:var(--serif);font-size:1rem;color:var(--ink);text-align:left;cursor:pointer;padding:0;}
.mb-bowl-figs{display:flex;gap:0;background:var(--paper-2);border-radius:10px;overflow:hidden;}
.mb-fit{display:flex;align-items:center;}
.mb-fitbar{width:32px;height:4px;background:var(--line);border-radius:2px;overflow:hidden;}
.mb-fitfill{display:block;height:100%;border-radius:2px;}
.mb-thisover{display:flex;gap:.25rem;margin-top:.6rem;flex-wrap:nowrap;align-items:center;height:1.5rem;min-height:1.5rem;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;}
.mb-over-empty{font-family:var(--mono);font-size:.56rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;}
.mb-actions{margin:.6rem 1.1rem calc(env(safe-area-inset-bottom) + .4rem);flex-shrink:0;position:relative;z-index:2;}
.mb-bowl-btn{width:100%;}
.mb-recent-card{margin:0 1.1rem;padding:.5rem 0;flex:1 1 0;min-height:0;overflow:hidden;}
.mb-recent{display:flex;gap:.3rem;flex-wrap:wrap;align-content:flex-start;}
.mb-bowl-top{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.6rem;margin-bottom:.5rem;}
.mb-bowl-top .mb-bowl-name{font-size:1.15rem;}
.mb-fit{display:flex;align-items:center;gap:.4rem;}
.mb-fitbar{width:60px;height:6px;background:var(--line);border-radius:3px;overflow:hidden;}
.mb-fitfill{display:block;height:100%;border-radius:3px;}
.mb-fitn{font-family:var(--mono);font-size:.62rem;font-weight:600;}
.mb-bowl-figs{display:flex;gap:0;background:var(--paper-2);border-radius:10px;overflow:hidden;}
.mb-bowl-figs span{flex:1;text-align:center;padding:.5rem .2rem;font-family:var(--mono);font-size:.5rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);border-right:1px solid var(--card);}
.mb-bowl-figs b{display:block;font-family:var(--serif);font-size:1.3rem;color:var(--ink);line-height:1;margin-bottom:.25rem;font-variant-numeric:tabular-nums;}
.mb-recent-scroll{display:flex;gap:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:.3rem;}
.mb-over-grp{flex-shrink:0;padding:0 .6rem;border-right:1px solid var(--line);}
.mb-over-grp:first-child{padding-left:0;}
.mb-over-grp:last-child{border-right:none;}
.mb-over-num{font-family:var(--mono);font-size:.5rem;letter-spacing:.05em;color:var(--ink-faint);margin-bottom:.3rem;text-align:center;}
.mb-over-balls{display:flex;gap:.25rem;}
.mb-bowl-figs span:last-child{border-right:none;}
.mb-bowl-figs span:nth-child(2) b{color:var(--green-deep);}

/* batting board: compact so it fits the fixed screen (no scroll) */
.mb.bb .bb-bat{padding:.45rem 0;}
.mb.bb .bb-gauges{margin-bottom:.4rem;}
.mb.bb .bb-approach{padding:.4rem;font-size:.72rem;}
.mb.bb .bb-bat-top{margin-bottom:.35rem;}
.mb.bb .mb-card{padding:.45rem 0;}

/* compact broadcast-style bowler line (batting board) */
.bb-bowl-line{display:flex;align-items:center;gap:.6rem;flex-wrap:nowrap;min-width:0;}
.bb-bowl-line .mb-bowl-name{font-family:var(--serif);font-size:1.05rem;flex-shrink:1;min-width:0;white-space:nowrap;overflow:hidden;}
.bb-bowl-fig{font-family:var(--mono);font-size:.85rem;color:var(--ink);font-weight:600;flex-shrink:0;white-space:nowrap;font-variant-numeric:tabular-nums;}
.bb-bowl-fig em{font-style:normal;font-weight:400;color:var(--ink-soft);font-size:.72rem;}
.bb-bowl-line .mb-fit{margin-left:auto;}
.bb-bowl-meta{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-variant-numeric:tabular-nums;flex-shrink:0;white-space:nowrap;}

/* ===== BATTING PLAN SCREEN ===== */
.bat-plan .bp-gauges{width:100%;max-width:440px;display:flex;flex-direction:column;gap:1.1rem;margin:1.8rem auto 2.2rem;}
.bp-gauge{display:flex;flex-direction:column;gap:.4rem;}
.bp-gauge-top{display:flex;justify-content:space-between;align-items:baseline;}
.bp-gauge-top span:first-child{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;color:var(--ink-soft);text-transform:uppercase;}
.bp-gauge-val{font-family:var(--serif);font-size:1.1rem;color:var(--ink);}
.bp-gbar{height:9px;background:var(--line-strong);border-radius:5px;overflow:hidden;}
.bp-gfill{height:100%;border-radius:5px;transition:width .4s ease;}
.bp-gfill.bp-set{background:var(--green);}
.bp-gfill.bp-press{background:#c9773a;}
.bp-approach{width:100%;max-width:440px;margin:0 auto 2rem;}
.bp-approach-word{text-align:center;font-family:var(--serif);font-size:1.5rem;color:var(--ink);margin-bottom:1.1rem;}
.bp-track{position:relative;height:14px;background:var(--line-strong);border-radius:8px;cursor:pointer;}
.bp-fill{position:absolute;left:0;top:0;height:100%;background:var(--green);border-radius:8px;opacity:.35;}
.bp-thumb{position:absolute;top:50%;width:28px;height:28px;border-radius:50%;background:var(--green);border:3px solid var(--paper);box-shadow:0 2px 6px rgba(0,0,0,.2);transform:translate(-50%,-50%);}
.bp-approach-refs{display:flex;justify-content:space-between;margin-top:.7rem;}
.bp-approach-refs span{font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;color:var(--ink-soft);text-transform:uppercase;}

/* ===== RESULT SCREEN ANIMATIONS ===== */
.res-eb, .res-title{opacity:0;animation:resIn .5s cubic-bezier(0.34,1.56,0.64,1) forwards;}
.res-title{animation-delay:.12s;}
@keyframes resIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.res-stars{display:flex;gap:1rem;justify-content:center;margin:2rem 0;}
.res-star{font-size:3rem;color:var(--line-strong);opacity:0;transform:scale(2.4);display:inline-block;line-height:1;}
.res-star.stamp-on{color:#e6a92e;animation:starStamp .4s cubic-bezier(0.34,1.56,0.64,1) forwards;}
.res-star.stamp-off{color:var(--line-strong);opacity:.35;transform:scale(1);transition:opacity .3s, transform .3s;}
@keyframes starStamp{0%{opacity:0;transform:scale(2.4) rotate(-12deg)}60%{opacity:1;transform:scale(.85) rotate(3deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
.res-btns{opacity:0;transform:translateY(16px);transition:opacity .4s ease, transform .4s cubic-bezier(0.34,1.56,0.64,1);display:flex;flex-direction:column;}
.res-btns-in{opacity:1;transform:translateY(0);}
.res-won .res-title{text-shadow:0 2px 20px rgba(21,128,61,.2);}
@media (prefers-reduced-motion: reduce){ .res-star.stamp-on{animation:none;opacity:1;transform:scale(1);} .res-eb,.res-title,.res-btns{animation:none;opacity:1;transform:none;} }

/* ===== RESULT REPORT CARD ===== */
.res-card{width:100%;max-width:420px;margin:2rem auto;display:flex;flex-direction:column;gap:.9rem;}
.res-row{display:flex;align-items:center;gap:.9rem;padding:1rem 1.1rem;background:var(--paper);
  border:1px solid var(--line);border-radius:13px;opacity:0;transform:translateY(14px);}
.res-row-star{font-size:1.5rem;color:var(--line-strong);flex-shrink:0;transition:color .3s;}
.res-row-label{flex:1;font-family:var(--serif);font-size:1.02rem;color:var(--ink);line-height:1.25;text-align:left;}
.res-row-mark{font-size:1.2rem;flex-shrink:0;opacity:0;transition:opacity .3s;}
.res-row.row-got{animation:rowIn .5s cubic-bezier(0.34,1.56,0.64,1) forwards;border-color:rgba(230,169,46,.5);}
.res-row.row-got .res-row-star{color:#e6a92e;animation:starPop .5s cubic-bezier(0.34,1.56,0.64,1);}
.res-row.row-got .res-row-mark{opacity:1;color:var(--green);animation:markIn .4s ease .15s both;}
.res-row.row-miss{animation:rowIn .5s ease forwards;opacity:1;}
.res-row.row-miss .res-row-star{color:var(--line-strong);}
.res-row.row-miss .res-row-label{color:var(--ink-soft);}
.res-row.row-miss .res-row-mark{opacity:.5;color:var(--ink-soft);}
@keyframes rowIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes starPop{0%{transform:scale(2.2) rotate(-10deg)}60%{transform:scale(.85)}100%{transform:scale(1)}}
@keyframes markIn{from{opacity:0;transform:scale(1.8)}to{opacity:1;transform:scale(1)}}
.res-btns{opacity:0;transform:translateY(16px);transition:opacity .4s ease, transform .4s cubic-bezier(0.34,1.56,0.64,1);display:flex;flex-direction:column;}
.res-btns-in{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion: reduce){ .res-row{opacity:1;transform:none;animation:none;} .res-row .res-row-mark{opacity:1;} }

.mb-bowl-row2 { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:8px; }
.mb-bowl-row2 .mb-fit { display:flex; align-items:center; gap:6px; }

.pan-star-got .pan-star-ic { color: var(--green); }
.pan-star-got { color: var(--ink); }



/* ===== SCORECARD: bar + fullscreen morph ===== */
.scw-bar { width:100%; display:flex; flex-direction:column; align-items:flex-start; gap:.2rem; padding:1rem 1.15rem; margin:1rem 0; background:var(--green-deep); border:none; border-radius:13px; cursor:pointer; text-align:left; color:var(--paper); transition:transform .15s, box-shadow .15s; }
.scw-bar:hover { transform:translateY(-1px); box-shadow:0 6px 20px rgba(0,0,0,.15); }
.scw-bar-lbl { font-family:var(--mono); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; opacity:.7; }
.scw-bar-line { font-family:var(--serif); font-size:1.5rem; font-weight:700; font-variant-numeric:tabular-nums; }
.scw-bar-line .scw-ov { font-size:.9rem; opacity:.75; }
.scw-bar-cta { font-family:var(--mono); font-size:.7rem; letter-spacing:.05em; text-transform:uppercase; opacity:.8; margin-top:.15rem; }

/* fullscreen overlay */
.scf-overlay { position:fixed; inset:0; z-index:200; background:rgba(16,24,18,0); backdrop-filter:blur(0px); -webkit-backdrop-filter:blur(0px); display:flex; align-items:flex-end; justify-content:center; transition:background .55s ease, backdrop-filter .55s ease, -webkit-backdrop-filter .55s ease; }
.scf-overlay.in { background:rgba(16,24,18,.58); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.scf-overlay.out { background:rgba(16,24,18,0); backdrop-filter:blur(0px); -webkit-backdrop-filter:blur(0px); }
.scf { width:100%; max-width:560px; max-height:calc(100dvh - 5.5rem - env(safe-area-inset-top)); display:flex; flex-direction:column; background:var(--paper); border-top-left-radius:22px; border-top-right-radius:22px; border:1px solid var(--line-strong); border-bottom:none; overflow:hidden; transform:translateY(101%) scale(.98); transform-origin:50% 100%; box-shadow:0 -24px 60px -24px rgba(11,46,18,.5); transition:transform .66s cubic-bezier(.19,.9,.24,1); }
.scf-overlay.in .scf { transform:translateY(0) scale(1); }
.scf-overlay.out .scf { transform:translateY(101%) scale(.985); transition:transform .42s cubic-bezier(.4,0,.6,1); }
.scf-top { padding:1.5rem 1.5rem 1rem; border-bottom:1px solid var(--line); position:relative; }
.scf-close { position:absolute; top:1.2rem; right:1.25rem; width:34px; height:34px; border-radius:50%; border:1px solid var(--line-strong); background:var(--card); color:var(--ink); font-size:1rem; cursor:pointer; z-index:3; box-shadow:0 1px 4px rgba(0,0,0,.08); }
.scf-eyebrow { font-family:var(--mono); font-size:.68rem; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:.4rem; }
.scf-summary { font-family:var(--serif); font-size:2.4rem; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; line-height:1; }
.scf-summary .scf-ov { font-size:1rem; color:var(--ink-soft); font-weight:400; }
.scf-tabs { display:flex; gap:.5rem; margin-top:1.1rem; }
.scf-tab { flex:1; font-family:var(--mono); font-size:.75rem; letter-spacing:.05em; text-transform:uppercase; padding:.6rem; border:1px solid var(--line-strong); border-radius:9px; background:transparent; color:var(--ink-soft); cursor:pointer; transition:.18s; }
.scf-tab.on { background:var(--green-deep); color:var(--paper); border-color:var(--green-deep); }
.scf-scroll { overflow-y:auto; padding:1rem 1.5rem 2rem; }
.scf-sec { font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--green); margin:1.1rem 0 .5rem; }
.scf-sec:first-child { margin-top:.3rem; }
.scf-row { display:grid; grid-template-columns:1fr auto; align-items:baseline; padding:.5rem 0; border-bottom:1px solid var(--line); }
.scf-name { font-family:var(--sans); font-size:1rem; color:var(--ink); }
.scf-fig { grid-column:2; grid-row:1; font-variant-numeric:tabular-nums; text-align:right; transition:opacity .3s ease; }
.scw-v { font-family:var(--serif); font-size:1.1rem; font-weight:700; color:var(--ink); }
.scw-b { font-size:.85rem; color:var(--ink-soft); margin-left:.3rem; }
.scw-o { font-size:.72rem; color:var(--ink-soft); margin-left:.4rem; }
.scw-dn { color:var(--line-strong); }

/* Desktop: scorecard is a CENTERED panel, never a full-height bottom sheet, always a gap around it */
@media (min-width: 700px) {
  .scf-overlay { align-items: center; padding: 2.5rem 1rem; }
  .scf {
    max-width: 560px;
    max-height: min(680px, 82vh);        /* never full-screen; always a gap top and bottom */
    border-radius: 22px;                  /* rounded all round, not just top */
    border-bottom: 1px solid var(--line-strong);
    transform: translateY(24px) scale(.98);   /* rise gently, not from off-screen bottom */
  }
  .scf-overlay.in .scf { transform: translateY(0) scale(1); }
  .scf-overlay.out .scf { transform: translateY(24px) scale(.985); }
}

.scf[data-mode="real"] .scf-fig.scw-prod, .scf[data-mode="prod"] .scf-fig.scw-real { opacity:0; }
.scf[data-mode="real"] .scf-summary .scw-prod, .scf[data-mode="prod"] .scf-summary .scw-real { display:none; }
::view-transition-old(scorecard), ::view-transition-new(scorecard) { animation-duration:.4s; }


/* ===== SCORECARD: proper card layout ===== */
.scf-brow, .scf-hrow.scf-bhead, .scf-total { display:grid; grid-template-columns:1fr 2.6rem 2.4rem 2.2rem 2.2rem; align-items:start; column-gap:.35rem; padding:.55rem 0; border-bottom:1px solid var(--line); }
.scf-wrow, .scf-hrow.scf-whead { display:grid; grid-template-columns:1fr 2.8rem 2.8rem 2.6rem; align-items:baseline; column-gap:.35rem; padding:.5rem 0; border-bottom:1px solid var(--line); }
.scf-hrow { border-bottom:1px solid var(--line-strong); padding:.35rem 0; }
.scf-total { border-bottom:none; border-top:2px solid var(--line-strong); margin-top:.15rem; padding-top:.65rem; grid-template-columns:1fr 2.6rem; }
.scf-bat { display:flex; flex-direction:column; gap:.12rem; min-width:0; }
.scf-nm { font-family:var(--sans); font-size:1rem; color:var(--ink); font-weight:500; }
.scf-out { font-family:var(--sans); font-size:.76rem; color:var(--ink-soft); }
.scf-out.scf-no { color:var(--green); font-style:italic; }
.scf-out.scf-dnb { color:var(--line-strong); font-style:italic; }
.scf-dnbline{padding:.55rem .1rem .3rem;font-size:.82rem;color:var(--ink-soft);line-height:1.45;}
.scf-dnb-lbl{color:var(--text-faint);font-family:var(--mono);font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;margin-right:.35rem;}
.scf-c { text-align:right; font-variant-numeric:tabular-nums; font-family:var(--serif); font-size:1.02rem; color:var(--ink); align-self:start; padding-top:.05rem; }
.scf-c.scf-sub { color:var(--ink-soft); font-size:.92rem; font-family:var(--sans); }
.scf-v { font-weight:700; }
.scf-h { font-family:var(--mono); font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); font-weight:400; }
.scf-bat.scf-h, .scf-nm.scf-h { text-align:left; }
.scf-tl { font-family:var(--mono); font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); align-self:center; }
.scf-tv { font-weight:700; font-family:var(--serif); font-size:1.15rem; text-align:right; font-variant-numeric:tabular-nums; }
.scf-whead { margin-top:1.3rem; }
.scf-dn { color:var(--line-strong); }
/* real/prod crossfade in every slot */
.scf[data-mode="real"] .scw-prod, .scf[data-mode="prod"] .scw-real { display:none; }

/* lock sideways scroll on scorecard */
.scf, .scf-scroll { overflow-x: hidden; max-width: 100%; }
.scf-scroll { overflow-y: auto; }
.scf-brow, .scf-wrow, .scf-hrow, .scf-total { min-width: 0; }
.scf-nm, .scf-out { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.scf-overlay { overflow: hidden; }

/* --- auth sign-in overlay --- */
.auth-ov{display:flex;flex-direction:column;}
.ov-panel:has(.auth-ov){overflow:hidden;height:auto;max-height:none;}
.auth-eyebrow{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.5rem;}
.auth-h{font-family:var(--serif);font-size:2rem;font-weight:700;color:var(--ink);margin:0 0 .4rem;line-height:1.05;}
.auth-hint{font-size:.98rem;line-height:1.5;color:var(--ink-soft);margin:0 0 1.4rem;}
.auth-input{font-family:var(--sans);font-size:1.05rem;color:var(--ink);background:var(--paper-2);border:1px solid var(--line-strong);border-radius:11px;padding:.9rem 1rem;margin-bottom:.9rem;outline:none;transition:.15s;width:100%;box-sizing:border-box;}
.auth-input:focus{border-color:var(--green);}
.auth-input::placeholder{color:var(--text-faint);}
.auth-code{font-family:var(--mono);font-size:1.6rem;letter-spacing:.4em;text-align:center;padding:.9rem .5rem;}
/* Compact variant: new-account code step (code + username) must fit above keyboard without scroll */
.auth-compact .auth-h{font-size:1.5rem;margin-bottom:.3rem;}
.auth-compact .auth-hint{font-size:.9rem;line-height:1.4;margin-bottom:.8rem;}
.auth-compact .auth-eyebrow{margin-bottom:.35rem;}
.auth-compact .auth-input{padding:.7rem 1rem;margin-bottom:.6rem;}
.auth-compact .auth-code{font-size:1.35rem;padding:.7rem .5rem;}
.auth-compact .auth-close{padding:.45rem;}
.auth-btn{width:100%;}
.auth-close{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;background:transparent;color:var(--text-faint);border:none;padding:.6rem;cursor:pointer;transition:.15s;}
.auth-close:hover{color:var(--ink-soft);}
.auth-err{font-family:var(--mono);font-size:.74rem;color:#b0472f;margin-top:.5rem;min-height:1rem;text-align:center;}


/* --- map top bar (map screen only; sticky, safe-area aware) --- */
.map-topbar{position:relative;z-index:600;display:flex;align-items:center;justify-content:space-between;
  padding:calc(env(safe-area-inset-top) + .15rem) 1.1rem .55rem;
  background:var(--paper,#F4F0E6);}
.topbar-back{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--serif);font-size:1.02rem;
  color:var(--ink);text-decoration:none;transition:.15s;}
.topbar-back:hover{color:var(--green);}
.topbar-chev{font-size:1.3rem;line-height:1;color:var(--green);position:relative;top:-1px;}
.topbar-acct{font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;
  background:transparent;border:1px solid var(--line-strong);color:var(--ink-soft);
  padding:.42rem .75rem;border-radius:8px;cursor:pointer;transition:.15s;}
.topbar-acct:hover{border-color:var(--green);color:var(--green);}
.topbar-signin{border-color:var(--green);color:var(--green);}
.topbar-signin:hover{background:var(--green-deep);color:var(--paper);border-color:var(--green-deep);}
/* --- paywall locked stage plate --- */
.gate-paywall .gate-plate{border-color:var(--green);}
.mb-locked{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--green);background:var(--paper-2);border:1px solid var(--green);border-radius:8px;padding:.35rem .7rem;display:inline-block;margin-top:.2rem;transition:.15s;}
.gate-paywall:hover .mb-locked{background:var(--green-deep);color:var(--paper);}

/* --- paywall card overlay --- */
.pw-ov{display:flex;flex-direction:column;text-align:center;}
.pw-eyebrow{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.5rem;}
.pw-h{font-family:var(--serif);font-size:2rem;font-weight:700;color:var(--ink);margin:0 0 .5rem;line-height:1.05;}
.pw-lede{font-size:1rem;line-height:1.5;color:var(--ink-soft);margin:0 0 1.4rem;}
.pw-facts{display:flex;justify-content:center;gap:1.6rem;margin:0 0 1.4rem;}
.pw-fact{display:flex;flex-direction:column;align-items:center;}
.pw-fact-n{font-family:var(--serif);font-size:1.8rem;font-weight:700;color:var(--green);line-height:1;}
.pw-fact-l{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-top:.3rem;}
.pw-note{font-size:.9rem;line-height:1.45;color:var(--ink-soft);margin:0 0 1.4rem;}
.pw-btn{width:100%;}


/* --- floating paywall padlock --- */
.pw-padlock{position:fixed;top:calc(env(safe-area-inset-top) + 4.6rem);right:2.9rem;z-index:40;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--green);color:var(--paper);border:none;cursor:pointer;box-shadow:0 4px 16px rgba(11,46,18,.22);animation:pw-pulse 2.4s ease-in-out infinite;}
.pw-padlock:hover{background:var(--green);}
@keyframes pw-pulse{0%,100%{box-shadow:0 4px 16px rgba(11,46,18,.28),0 0 0 0 rgba(46,110,60,.45);}50%{box-shadow:0 4px 16px rgba(11,46,18,.28),0 0 0 10px rgba(46,110,60,0);}}
.pw-padlock-in{animation:pw-pop .45s cubic-bezier(.2,.9,.3,1.3), pw-pulse 2.4s ease-in-out 0.45s infinite;}
@keyframes pw-pop{from{transform:scale(0);opacity:0;}to{transform:scale(1);opacity:1;}}

/* --- smoother paywall-specific entrance (backdrop fades, then panel rises gently) --- */
@keyframes pw-backdrop{from{background:rgba(11,46,18,0);}to{background:rgba(11,46,18,.35);}}
@keyframes pw-rise{from{transform:translateY(64px);opacity:0;}to{transform:translateY(0);opacity:1;}}

/* --- smooth overlay close (slide down + fade) --- */
.ov-closing{animation:ov-fadeout .3s ease forwards;}
.ov-closing .ov-panel{animation:ov-slidedown .3s cubic-bezier(.4,0,.7,.2) forwards !important;}
@keyframes ov-fadeout{to{background:rgba(11,46,18,0);}}
@keyframes ov-slidedown{to{transform:translateY(64px);opacity:0;}}

/* --- unified overlay in/out --- */
@keyframes ov-bg{from{background:rgba(11,46,18,0);}to{background:rgba(11,46,18,.35);}}
@keyframes ov-rise{from{transform:translateY(56px);opacity:0;}to{transform:translateY(0);opacity:1;}}

/* --- The Crunch widget (Apple-style, pinned under header) --- */
.crunch-widget{display:block;width:calc(100% - 2.2rem);margin:.7rem auto .6rem;box-sizing:border-box;height:16vh;min-height:110px;background:var(--card);border:1.5px solid var(--green);border-radius:18px;padding:.85rem 1.1rem;text-align:left;cursor:pointer;transition:.15s;box-shadow:0 4px 18px -10px rgba(11,46,18,.25);}
.crunch-widget:active{transform:scale(.985);}
.cw-top{display:flex;justify-content:space-between;align-items:center;}
.cw-eyebrow{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green);font-weight:600;}
.cw-tries{font-family:var(--mono);font-size:.62rem;letter-spacing:.04em;color:var(--text-faint);}
.cw-title{font-family:var(--serif);font-size:1.5rem;font-weight:700;color:var(--ink);margin:.3rem 0 .15rem;line-height:1.05;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word;}
.cw-hook{font-family:var(--sans);font-size:.82rem;line-height:1.35;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cw-stars{margin-top:.5rem;}
.cw-star{font-size:1rem;color:var(--line-strong);margin-right:.15rem;}
.cw-star.on{color:var(--green);}
.cw-loading{display:block;font-family:var(--sans);font-size:.85rem;color:var(--text-faint);margin-top:.5rem;}



/* --- Crunch fullscreen page --- */
.crunch-widget{view-transition-name:crunch-card;}
.ccp-overlay{position:fixed;inset:0;z-index:120;background:var(--paper);display:flex;justify-content:center;}
.ccp-sheet{view-transition-name:crunch-card;width:100%;max-width:520px;height:100dvh;display:flex;flex-direction:column;background:var(--paper);}
.ccp-topbar{display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + .15rem) 1.1rem .55rem;border-bottom:1px solid var(--line);}
.ccp-back{font-family:var(--serif);font-size:1rem;color:var(--ink);background:none;border:none;cursor:pointer;}
.ccp-eyebrow{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green);}



.ccp-title{font-family:var(--serif);font-size:1.7rem;font-weight:700;color:var(--ink);line-height:1.05;}
.ccp-hook{font-family:var(--sans);font-size:.92rem;color:var(--ink-soft);margin:.3rem 0 1rem;}
.ccp-stars{margin:.4rem 0 1rem;}
.ccp-star{display:flex;align-items:flex-start;gap:.5rem;padding:.3rem 0;font-family:var(--sans);font-size:.9rem;color:var(--ink-soft);}
.ccp-star-ic{color:var(--line-strong);}
.ccp-star.on .ccp-star-ic{color:var(--green);}

.ccp-tries{font-family:var(--mono);font-size:.7rem;color:var(--text-faint);}
.ccp-play{font-family:var(--mono);font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--green);font-weight:600;}

/* --- Crunch page: one screen, no scroll --- */
.ccp-body{flex:1;display:flex;flex-direction:column;padding:1rem 1.1rem calc(env(safe-area-inset-bottom) + 1.1rem);overflow:hidden;}
.ccp-scenario{display:block;width:100%;text-align:left;background:transparent;border:none;padding:0;cursor:pointer;}
.ccp-scenario:active{transform:scale(.99);}
.ccp-play-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:.8rem;padding-top:.7rem;}
.ccp-play{font-family:var(--mono);font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--green);font-weight:600;}
.ccp-tries{font-family:var(--mono);font-size:.7rem;color:var(--text-faint);}
.ccp-stars{margin:1rem .2rem;}
.ccp-spacer{flex:1;}
.ccp-archive{margin-bottom:0;}


/* --- Crunch match summary (clean, green, mono figures, aligned) --- */
.crunch-summary{background:var(--paper-2);border-radius:14px;padding:.9rem 1.1rem;margin:.9rem 0 0;border-left:3px solid var(--green);}
.cs-line{padding:.6rem 0;border-top:1px solid var(--line);}
.cs-line:first-child{border-top:none;padding-top:0;}
.cs-l-top{display:flex;justify-content:flex-start;align-items:baseline;gap:.6rem;margin-bottom:.25rem;}
.cs-team{font-family:var(--serif);font-size:1.02rem;font-weight:700;color:var(--ink);}
.cs-score{font-family:var(--serif);font-size:1.02rem;font-weight:700;color:var(--green);}
.cs-ov{font-family:var(--mono);font-size:.62rem;font-weight:400;color:var(--text-faint);margin-left:.15rem;}
.cs-liveflag{font-family:var(--mono);font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;color:var(--saffron);border:1px solid var(--saffron);border-radius:4px;padding:.08rem .3rem;margin-left:.4rem;vertical-align:middle;}
.cs-l-perf{display:flex;gap:1rem;}
.cs-col{flex:1;display:flex;justify-content:flex-start;align-items:baseline;min-width:0;gap:.4rem;}
.cs-nm{font-family:var(--sans);font-size:.74rem;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cs-fig{font-family:var(--mono);font-size:.72rem;color:var(--ink);font-weight:500;flex:0 0 auto;margin-left:.4rem;}

/* --- Crunch result: share primary, two ghosts side by side --- */
.res-btn-row{display:flex;gap:.6rem;}
.res-btn-row .btn-ghost{flex:1;padding:.85rem .6rem;font-size:.72rem;}

/* ===== ACCOUNT PAGE ===== */
@property --acct-num { syntax: '<integer>'; initial-value: 0; inherits: false; }

.acct-overlay{position:fixed;inset:0;z-index:120;background:var(--paper);display:flex;justify-content:center;}
.acct-sheet{width:100%;max-width:520px;height:100dvh;display:flex;flex-direction:column;background:var(--paper);overflow-y:auto;-webkit-overflow-scrolling:touch;}
.acct-topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + .7rem) 1.1rem .7rem;background:var(--paper);border-bottom:1px solid var(--line);}
.acct-back{background:none;border:none;font-family:var(--mono);font-size:.8rem;color:var(--ink-soft);cursor:pointer;padding:.3rem .1rem;letter-spacing:.02em;}
.acct-topttl{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);}
.acct-body{padding:1.5rem 1.35rem 4rem;}
.acct-loading{text-align:center;color:var(--ink-faint);font-family:var(--sans);padding:3rem 0;}

/* entrance: children fade+slide up, staggered */
.acct-body > *{opacity:0;animation:acct-in .55s cubic-bezier(.16,.84,.3,1) forwards;}
.acct-body > *:nth-child(1){animation-delay:.04s;}
.acct-body > *:nth-child(2){animation-delay:.12s;}
.acct-body > *:nth-child(3){animation-delay:.20s;}
.acct-body > *:nth-child(4){animation-delay:.28s;}
.acct-body > *:nth-child(5){animation-delay:.36s;}
.acct-body > *:nth-child(6){animation-delay:.44s;}
@keyframes acct-in{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}

/* hero */
.acct-hero{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:1.6rem;}
.acct-avatar{width:72px;height:72px;border-radius:50%;background:var(--green-deep);color:var(--paper);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:2rem;font-weight:700;margin-bottom:.7rem;box-shadow:0 6px 20px rgba(0,61,6,.22);animation:acct-pop .6s cubic-bezier(.34,1.56,.64,1) both .1s;}
@keyframes acct-pop{from{transform:scale(0);}to{transform:scale(1);}}
.acct-name{font-family:var(--serif);font-size:1.7rem;font-weight:700;color:var(--ink);line-height:1.1;}
.acct-badge{margin-top:.5rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--green);background:rgba(0,61,6,.09);padding:.28rem .6rem;border-radius:999px;}
.acct-since{margin-top:.5rem;font-family:var(--sans);font-size:.8rem;color:var(--ink-faint);}

/* streak flame */
.acct-streak{display:flex;justify-content:center;gap:2.2rem;margin-bottom:1.8rem;}
.acct-streak-item{display:flex;flex-direction:column;align-items:center;gap:.4rem;}
.acct-flame-wrap{position:relative;width:46px;height:58px;display:flex;align-items:flex-end;justify-content:center;}
.acct-flame{position:absolute;bottom:0;width:34px;height:44px;border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;background:linear-gradient(-45deg, var(--fl-deep,#bd3800), var(--fl-mid,#ff7a1f), var(--fl-tip,#ffd24a));transform-origin:bottom center;filter:blur(1px);animation:acct-flicker .7s ease-in-out infinite alternate;}
.acct-flame.f2{width:22px;height:30px;background:linear-gradient(-45deg, var(--fl-mid,#ff7a1f), var(--fl-tip,#ffe98a));filter:blur(.5px);animation-duration:.5s;}
.acct-flame-num{position:absolute;bottom:6px;left:0;right:0;text-align:center;font-family:var(--mono);font-weight:700;font-size:1rem;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.4);z-index:2;}
@keyframes acct-flicker{0%{transform:rotate(-2deg) scaleY(1);}30%{transform:rotate(2deg) scaleY(1.06);}60%{transform:rotate(-1deg) scaleY(.96);}100%{transform:rotate(1deg) scaleY(1.03);}}
.acct-streak-l{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);}
.acct-streak-item.dim .acct-flame{opacity:.28;filter:blur(1px) grayscale(.5);}

/* stat grid with count-up */
.acct-stats{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:1.8rem;}
.acct-stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem .9rem;text-align:center;}
.acct-stat-n{font-family:var(--serif);font-size:1.9rem;font-weight:700;color:var(--green-deep);line-height:1;}
.acct-stat-n.cup{counter-reset:acct-num var(--acct-num);transition:--acct-num 1.1s cubic-bezier(.16,.84,.3,1);}
.acct-stat-n.cup::after{content:counter(acct-num);}
.acct-stat-l{margin-top:.4rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);}

/* crunch distribution bars (Wordle style) */
.acct-dist{margin-bottom:1.8rem;}
.acct-dist-ttl{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.8rem;}
.acct-bar-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem;}
.acct-bar-lab{width:58px;flex-shrink:0;font-family:var(--mono);font-size:.7rem;color:var(--ink-soft);}
.acct-bar-track{flex:1;height:22px;background:var(--card);border:1px solid var(--line);border-radius:6px;overflow:hidden;}
.acct-bar-fill{height:100%;width:0;border-radius:5px;transition:width 1s cubic-bezier(.16,.84,.3,1);display:flex;align-items:center;justify-content:flex-end;padding-right:.4rem;box-sizing:border-box;font-family:var(--mono);font-size:.66rem;font-weight:600;color:#fff;}
.acct-bar-fill.s3{background:#1f7a2e;}
.acct-bar-fill.s2{background:#4a9d3a;}
.acct-bar-fill.s1{background:#c8a63a;}
.acct-bar-fill.fail{background:#b0472f;}

.acct-email{text-align:center;font-family:var(--mono);font-size:.72rem;color:var(--ink-faint);margin-bottom:1.4rem;word-break:break-all;}
.acct-btn{width:100%;margin-bottom:1.2rem;}
.acct-danger{border-top:1px solid var(--line);padding-top:1.2rem;text-align:center;}
.acct-delete{background:none;border:1px solid rgba(176,71,47,.4);color:#b0472f;font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;padding:.7rem 1.1rem;border-radius:10px;cursor:pointer;transition:.15s;}
.acct-delete:hover{background:rgba(176,71,47,.06);}
.acct-delete-armed{background:#b0472f;color:#fff;border-color:#b0472f;}

@media (prefers-reduced-motion: reduce){
  .acct-body > *{animation:none;opacity:1;transform:none;}
  .acct-avatar{animation:none;}
  .acct-flame{animation:none;}
  .acct-bar-fill{transition:none;}
  .acct-stat-n.cup{transition:none;}
}

/* ===== ACCOUNT PAGE v2: one-screen, set-username, ember flame ===== */
.acct-body{padding:1.1rem 1.2rem 1.6rem;display:flex;flex-direction:column;}
.acct-hero{margin-bottom:1.1rem;}
.acct-avatar{width:60px;height:60px;font-size:1.7rem;margin-bottom:.55rem;}
.acct-name{font-size:1.5rem;}
.acct-badge{margin-top:.4rem;}

/* set-username inline */
.acct-setname{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;align-items:center;margin-top:.2rem;}
.acct-uinput{font-family:var(--sans);font-size:.95rem;padding:.55rem .7rem;border:1px solid var(--line-strong);border-radius:9px;background:var(--card);color:var(--ink);width:180px;box-sizing:border-box;}
.acct-usave{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;background:var(--green-deep);color:var(--paper);border:none;padding:.55rem .9rem;border-radius:9px;cursor:pointer;}
.acct-usave:disabled{opacity:.6;}
.acct-uerr{width:100%;text-align:center;color:#b0472f;font-size:.75rem;min-height:1em;}

/* streaks tighter */
.acct-streak{gap:2.6rem;margin-bottom:1.2rem;}
.acct-flame-wrap{width:44px;height:54px;}
.acct-flame-wrap.small .acct-flame{width:22px;height:30px;bottom:0;}
.acct-flame-wrap.small .acct-flame.f2{width:13px;height:18px;}
.acct-flame-wrap.small .acct-flame-num{bottom:2px;font-size:.85rem;}

/* stats tighter */
.acct-stats{gap:.6rem;margin-bottom:1.1rem;}
.acct-stat{padding:.75rem .7rem;}
.acct-stat-n{font-size:1.6rem;}

/* distribution */
.acct-dist{margin-bottom:1rem;}
.acct-dist-empty{text-align:center;font-family:var(--sans);font-size:.82rem;color:var(--ink-faint);padding:.8rem 0 1.1rem;}

/* footer: email + signout + delete, compact */
.acct-footer{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:.7rem;padding-top:1rem;border-top:1px solid var(--line);}
.acct-email{font-family:var(--mono);font-size:.68rem;color:var(--ink-faint);text-align:center;word-break:break-all;}
.acct-signout{font-family:var(--mono);font-size:.74rem;letter-spacing:.04em;text-transform:uppercase;background:transparent;border:1px solid var(--line-strong);color:var(--ink-soft);padding:.6rem 1.4rem;border-radius:10px;cursor:pointer;}
.acct-signout:hover{border-color:var(--green);color:var(--green);}
.acct-delete{background:none;border:none;color:var(--ink-faint);font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;text-transform:uppercase;padding:.35rem;cursor:pointer;text-decoration:underline;}
.acct-delete.acct-delete-armed{color:#fff;background:#b0472f;border-radius:8px;padding:.5rem 1rem;text-decoration:none;}

/* no sideways scroll on the account page */
.acct-overlay,.acct-sheet{overflow-x:hidden;max-width:100vw;}
.acct-sheet{width:100%;box-sizing:border-box;}
.acct-body{width:100%;box-sizing:border-box;overflow-x:hidden;}
.acct-body *{max-width:100%;box-sizing:border-box;}
.acct-uinput{max-width:60vw;}

/* ===== CRUNCH ARCHIVE ===== */
.arch-overlay{position:fixed;inset:0;z-index:121;background:var(--paper);display:flex;justify-content:center;overflow-x:hidden;}
.arch-sheet{width:100%;max-width:520px;height:100dvh;display:flex;flex-direction:column;background:var(--paper);overflow-x:hidden;box-sizing:border-box;}
.arch-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.6rem 1rem 3rem;box-sizing:border-box;}
.arch-empty{text-align:center;color:var(--ink-faint);font-family:var(--sans);font-size:.9rem;padding:3rem 1rem;}

.arch-row{display:flex;align-items:center;gap:1rem;width:100%;box-sizing:border-box;text-align:left;
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:.95rem 1.05rem;margin-bottom:.6rem;cursor:pointer;transition:transform .12s ease,border-color .15s ease,box-shadow .15s ease;
  -webkit-tap-highlight-color:transparent;}
.arch-row:hover{border-color:var(--green);box-shadow:0 3px 14px rgba(0,61,6,.08);}
.arch-row:active{transform:scale(.985);}
.arch-row-main{flex:1;min-width:0;}
.arch-row-title{font-family:var(--serif);font-size:1.15rem;font-weight:700;color:var(--ink);line-height:1.15;}
.arch-row-hook{font-family:var(--sans);font-size:.82rem;color:var(--ink-soft);margin-top:.2rem;line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.arch-stars{flex-shrink:0;display:flex;gap:.15rem;font-size:1rem;}
.arch-star{color:#cdc7bb;}
.arch-star.on{color:var(--green-deep);}
.arch-new{flex-shrink:0;font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--green);background:rgba(0,61,6,.09);padding:.28rem .55rem;border-radius:999px;}

/* ===== LOADING SCREEN — real logo curves drawing in, Inter wordmark ===== */
.fm-loader{position:fixed;inset:0;z-index:9999;background:#F4F0E6;display:flex;align-items:center;justify-content:center;transition:opacity .5s ease;}
.fm-loader.fm-loader-out{opacity:0;pointer-events:none;}
.fm-loader-inner{display:flex;flex-direction:column;align-items:center;gap:1.5rem;}
.fm-loader-svg{width:110px;height:110px;}
.fm-ring{stroke-dasharray:578;stroke-dashoffset:578;animation:fm-ring-draw 2s ease-in-out forwards;opacity:.9;}
.fm-curve{stroke-dasharray:300;stroke-dashoffset:300;animation:fm-draw 2s ease-in-out forwards;}
.fm-curve-2{animation-delay:.3s;}
@keyframes fm-ring-draw{from{stroke-dashoffset:578;}to{stroke-dashoffset:0;}}
@keyframes fm-draw{from{stroke-dashoffset:300;}to{stroke-dashoffset:0;}}
.fm-loader-word{font-family:'Hanken Grotesk Variable','Hanken Grotesk',system-ui,-apple-system,sans-serif;font-size:1.35rem;letter-spacing:.12em;text-transform:uppercase;color:#0f3d1a;}
.fm-loader-word span{font-weight:300;}
.fm-loader-word strong{font-weight:800;}
@media (prefers-reduced-motion: reduce){
  .fm-ring,.fm-curve{animation:none;stroke-dashoffset:0;}
}

/* three-segment win/draw/chase probability bar */
.mb-wp-bar3{display:flex;overflow:hidden;}
.mb-wp-seg{height:100%;transition:width .5s cubic-bezier(.16,.84,.3,1);}
.mb-wp-out{background:#1f7a2e;}           /* your bowl-out (win) — green */
.mb-wp-drawseg{background:#c9b98a;}        /* draw — muted sand */
.mb-wp-chase{background:#b0472f;}          /* their chase — muted red */
.mb-wp-draw{opacity:.85;}
.mb-wp-lbls b{font-weight:700;}
.mb-wp-bar3 + *, .mb-wp .mb-wp-lbls span{white-space:nowrap;}
.mb-wp-lbls .mb-wp-draw{flex:0 0 auto;padding:0 .4rem;}

/* ===== FINE MARGINS BROADCAST SCORELINE ===== */

.bcast{display:flex;align-items:stretch;}
/* left ident block */
.bcast-ident{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:.6rem .7rem;background:rgba(255,255,255,.06);border-right:1px solid rgba(255,255,255,.1);min-width:64px;}
.bcast-logo{width:26px;height:26px;color:var(--paper);}
.bcast-brand{font-family:var(--mono);font-size:.5rem;line-height:1.15;letter-spacing:.14em;font-weight:700;text-align:center;opacity:.92;}

/* main block */
.bcast-main{flex:1;display:flex;flex-direction:column;justify-content:center;padding:.55rem .9rem;gap:.35rem;min-width:0;}
.bcast-scorerow{display:flex;align-items:baseline;gap:.6rem;flex-wrap:nowrap;}
.bcast-team{font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.1em;opacity:.85;}
.bcast-score{font-family:var(--serif);font-size:1.9rem;line-height:1;font-weight:700;}
.bcast-overs{font-family:var(--mono);font-size:.6rem;opacity:.7;letter-spacing:.05em;}
.bcast-ctx{margin-left:auto;font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.03em;background:rgba(255,255,255,.1);padding:.25rem .55rem;border-radius:6px;white-space:nowrap;}
.bcast-ctx em{font-style:normal;font-size:.5rem;opacity:.7;letter-spacing:.1em;display:block;line-height:1;margin-bottom:.1rem;}

.bcast-batrow{display:flex;align-items:center;gap:.9rem;font-family:var(--mono);font-size:.64rem;opacity:.92;flex-wrap:wrap;}
.bcast-bat{display:inline-flex;align-items:center;gap:.25rem;}
.bcast-bat b{font-size:.74rem;font-weight:700;}
.bcast-strike{width:5px;height:5px;border-radius:50%;background:#e8c04a;display:inline-block;margin-right:.2rem;box-shadow:0 0 6px rgba(232,192,74,.7);}
.bcast-bowl{margin-left:auto;opacity:.78;padding-left:.7rem;border-left:1px solid rgba(255,255,255,.15);}

.mb-eq{font-family:var(--mono);font-size:.58rem;letter-spacing:.04em;padding:.4rem .9rem .55rem;opacity:.68;background:rgba(0,0,0,.18);}
.mb-eq b{font-size:.66rem;}

/* boundary animation overlay (Stage A placeholder) */
.fm-anim{position:fixed;inset:0;z-index:200;background:rgba(4,36,10,.92);display:flex;align-items:center;justify-content:center;animation:fm-anim-in .25s ease both;}
@keyframes fm-anim-in{from{opacity:0;}to{opacity:1;}}
.fm-anim-inner{text-align:center;color:var(--paper);}
.fm-anim-big{font-family:var(--serif);font-size:5rem;font-weight:700;letter-spacing:.04em;}
.fm-anim-hint{font-family:var(--mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;opacity:.6;margin-top:1rem;}

/* ===== BOUNDARY ANIMATION (reuses fg-* field design; adds ball/trail/label) ===== */
.fm-anim{background:#0a1a0d;}
.fm-anim .anb-svg{position:absolute;inset:0;width:100%;height:100%;display:block;}
.anb-ball{fill:#c62828;stroke:#7f1414;stroke-width:.2;filter:drop-shadow(0 0 1.4px rgba(198,40,40,.9));}
.anb-trail{stroke:#e04040;stroke-width:.45;opacity:.75;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 0.8px rgba(224,64,64,.5));}
.blt-tick{animation:blt-tick-pop .5s ease-out both;}
@keyframes blt-tick-pop{0%{transform:scale(1);}40%{transform:scale(1.09);opacity:.85;}100%{transform:scale(1);}}
.anb-label{position:absolute;left:0;right:0;bottom:12%;text-align:center;color:var(--paper);opacity:0;transition:opacity .3s ease;pointer-events:none;}
.anb-label.show{opacity:1;}
.anb-big{display:block;font-family:var(--serif);font-size:4rem;font-weight:700;letter-spacing:.04em;text-shadow:0 2px 12px rgba(0,0,0,.5);}
.anb-hint{display:block;font-family:var(--mono);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;opacity:.6;margin-top:.6rem;}
.anb-striker{fill:#0b2e12;stroke:#fff;stroke-width:.5;}
.anb-nonstriker{fill:#0b2e12;stroke:#fff;stroke-width:.4;opacity:.75;}
/* smaller players in the animation */
.fm-anim .fg-man{r:1.05;}
.fm-anim .fg-bowler{r:1.05;}
.fm-anim .fg-keeper{r:1.0;}
.anb-stump{stroke:#ffffff;stroke-width:.2;stroke-linecap:round;filter:drop-shadow(0 0 0.14px #16211a) drop-shadow(0 0 0.14px #16211a);}
.anb-crease{stroke:rgba(255,255,255,.7);stroke-width:.18;stroke-linecap:round;}
.anb-bail{stroke:#ffffff;stroke-width:.2;stroke-linecap:round;filter:drop-shadow(0 0 0.14px #16211a) drop-shadow(0 0 0.14px #16211a);}
/* players: white outer ring, team-colour fill (inline style sets fill) */
.anb-fielder{stroke:#fff;stroke-width:.4;}
.anb-batsman{stroke:#fff;stroke-width:.4;}
.anb-keeperdot{stroke:#ffe08a;stroke-width:.45;}   /* keeper: gold ring, distinct */
.anb-ball{r:.34;}

/* players: white ring, team-colour fill comes from the fill attribute */
.anb-fielder{stroke:#fff !important;stroke-width:.4;}
.anb-batsman{stroke:#fff !important;stroke-width:.4;}
.anb-keeperdot{stroke:#ffe08a !important;stroke-width:.45;}

/* anim players: white ring, team fill from the fill attribute */
.fm-anim .fg-man{stroke:#fff !important;stroke-width:.4;}
.fm-anim .fg-bowler{stroke:#fff !important;stroke-width:.4;}
.fm-anim .fg-keeper{stroke:#ffe08a !important;stroke-width:.45;}

/* anim players: white ring for everyone, fill from inline style */
.fm-anim .fg-man, .fm-anim .fg-bowler, .fm-anim .fg-keeper, .fm-anim .anb-batsman{stroke:#fff !important;stroke-width:.4;}
/* FOUR/SIX moment card (appears after the ball settles) */
.anb-moment{position:absolute;left:0;right:0;bottom:0;padding:2rem 1.5rem calc(env(safe-area-inset-bottom) + 2rem);text-align:center;color:var(--paper);
  background:linear-gradient(to top, rgba(4,36,10,.92) 0%, rgba(4,36,10,.7) 55%, transparent 100%);
  opacity:0;transform:translateY(20px);transition:opacity .35s ease, transform .45s cubic-bezier(.16,.84,.3,1);pointer-events:none;}
.anb-moment.show{opacity:1;transform:translateY(0);}
.anb-moment-big{font-family:var(--serif);font-size:4.5rem;font-weight:700;letter-spacing:.03em;line-height:1;text-shadow:0 4px 20px rgba(0,0,0,.5);}
.anb-moment-sub{font-family:var(--sans);font-size:1rem;opacity:.85;margin-top:.4rem;}
.anb-moment-hint{font-family:var(--mono);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;opacity:.5;margin-top:1.4rem;}

/* ===== BOUNDARY MOMENT (mirrors wicket animation, boundary colours) ===== */
.moment-ctx{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.8rem;}
.moment-four{position:relative;overflow:hidden;animation:four-pop .42s cubic-bezier(.36,.07,.19,.97) both;}
.moment-four::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 75% 65% at center,#1f7a2e 0%,#1f7a2e 22%,rgba(31,122,46,0) 70%);pointer-events:none;z-index:0;animation:four-flash .7s ease-out both;}
.moment-six::before{background:radial-gradient(ellipse 80% 70% at center,#c8992e 0%,#c8992e 24%,rgba(200,153,46,0) 72%);}
.moment-four>*{position:relative;z-index:1;}
.moment-four .moment-big{color:#1f7a2e;animation:four-big-in .6s cubic-bezier(.2,.9,.25,1) both;animation-delay:.05s;}
.moment-six .moment-big{color:#b8860b;}
.moment-four .moment-ctx{animation:wkt-rise .5s ease-out both;animation-delay:.02s;}
.moment-four .moment-sub{animation:wkt-rise .5s ease-out both;animation-delay:.34s;}
.moment-four .moment-score{animation:wkt-rise .5s ease-out both;animation-delay:.44s;}
@keyframes four-pop{0%{transform:scale(.97)}60%{transform:scale(1.01)}100%{transform:scale(1)}}
@keyframes four-flash{0%{opacity:.9}100%{opacity:0}}
@keyframes four-big-in{0%{transform:scale(.3);opacity:0}55%{transform:scale(1.12);opacity:1}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.moment-four,.moment-four::before,.moment-four .moment-big,.moment-four .moment-sub,.moment-four .moment-score,.moment-four .moment-ctx{animation:none!important}}

/* ===== MILESTONE (50 / 100 / 150) - golden, animated ===== */
.moment-fifty{position:relative;overflow:hidden;animation:four-pop .42s cubic-bezier(.36,.07,.19,.97) both;}
.moment-fifty::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 70% at center,#d4a72c 0%,#d4a72c 24%,rgba(212,167,44,0) 72%);pointer-events:none;z-index:0;animation:four-flash .8s ease-out both;}
.moment-hundred::before{background:radial-gradient(ellipse 88% 78% at center,#e0b83a 0%,#c8952a 26%,rgba(200,149,42,0) 74%);}
.moment-fifty>*{position:relative;z-index:1;}
.moment-fifty .moment-name{font-family:var(--serif);font-size:1.5rem;font-weight:700;color:var(--ink);margin-bottom:.35rem;animation:wkt-rise .5s ease-out both;animation-delay:.04s;}
.moment-fifty .moment-big{font-size:5.5rem;background:linear-gradient(160deg,#e6c356 0%,#c8952a 55%,#a9781f 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 10px rgba(168,120,31,.4));animation:four-big-in .6s cubic-bezier(.2,.9,.25,1) both;animation-delay:.08s;}
.moment-hundred .moment-big{font-size:6rem;}
.moment-fifty .moment-ctx{color:#a9781f;letter-spacing:.14em;animation:wkt-rise .5s ease-out both;animation-delay:.02s;}
.moment-fifty .moment-score{animation:wkt-rise .5s ease-out both;animation-delay:.42s;}
@media (prefers-reduced-motion:reduce){.moment-fifty,.moment-fifty::before,.moment-fifty .moment-big,.moment-fifty .moment-name,.moment-fifty .moment-score,.moment-fifty .moment-ctx{animation:none!important}}
/* boundary rope, set inside the green edge */
.fm-anim .anb-rope{fill:none;stroke:#f4f0e6;stroke-width:.5;opacity:.85;}
.anb-shadow{fill:rgba(0,0,0,.35);}



/* ===== BROADCAST LOWER-THIRD ===== */
.blt{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom) + 2.4rem);z-index:5;display:flex;border-radius:9px;overflow:hidden;box-shadow:0 6px 18px -4px rgba(0,0,0,.45),0 1px 0 rgba(255,255,255,.25) inset;border:1px solid rgba(0,0,0,.25);}
.blt-teamblock{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:.7rem;letter-spacing:.04em;padding:0 .5rem;}
.blt-batters{display:flex;flex-direction:column;justify-content:center;background:#f6f3ee;color:#16211a;padding:.24rem .5rem;gap:.1rem;}
.blt-bat{font-size:.6rem;font-weight:600;white-space:nowrap;display:flex;align-items:center;gap:.4rem;min-width:92px;}
.blt-bat-name{flex:1;display:flex;align-items:center;gap:.22rem;}
.blt-bat-sc{font-variant-numeric:tabular-nums;}
.blt-bat b{font-weight:800;font-size:.6rem;}
.blt-dot{width:4px;height:4px;border-radius:50%;background:#c62828;display:inline-block;box-shadow:0 0 3px rgba(198,40,40,.85);}
.blt-score{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#2b2f33;color:#fff;padding:.24rem 1.7rem;font-weight:800;font-size:1.05rem;line-height:1;white-space:nowrap;}
.blt-score em{font-style:normal;font-size:.5rem;font-weight:600;opacity:.75;margin-top:.15rem;}
.blt-bowl{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:#f6f3ee;color:#16211a;padding:.24rem .7rem;font-size:.6rem;font-weight:600;white-space:nowrap;gap:.1rem;}
.blt-bowl-top{display:flex;align-items:center;justify-content:center;gap:.22rem;}
.blt-bowl-ov{font-size:.5rem;opacity:.7;}
.blt-bowl b{font-weight:800;}

/* ===== PLAN SCREEN TEAM THEMING ===== */
.plan-scr{--team-accent:var(--green-deep);}
.plan-scr .ps-avatar{background:var(--team-accent);}
.plan-scr .bp-set{background:var(--team-accent);}
.plan-scr .bp-fill{background:var(--team-accent);}
.plan-scr .bp-thumb{border-color:var(--team-accent);}
.plan-scr .btn-primary{background:var(--team-accent);}
.plan-scr .btn-primary{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.55),0 0 1px rgba(0,0,0,.4);}
/* bowling-plan specific accents */
.plan-scr .ps-track-fill{background:var(--team-accent);}
.plan-scr .ps-thumb{border-color:var(--team-accent);}
.plan-scr .ps-bowler.on{border-color:var(--team-accent);color:var(--team-accent);}
.plan-scr .ps-slabel.on{color:var(--team-accent);}
/* slider knobs -> team accent (fill + border) */
.plan-scr .ps-thumb,.plan-scr .bp-thumb{background:var(--team-accent);border-color:var(--team-accent);}
.plan-scr .btn-primary:hover{filter:brightness(1.12);}

/* ===== PLAN SCREEN batter transition + step badge ===== */
.plan-scr{position:relative;}
.ps-step{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--team-accent,var(--green));text-align:center;margin-bottom:.4rem;font-weight:700;}
.plan-slidein{animation:plan-in .32s cubic-bezier(.2,.8,.25,1) both;}
.plan-slideout{animation:plan-out .26s cubic-bezier(.4,0,.7,.2) both;}
@keyframes plan-in{from{opacity:0;transform:translateX(34px);}to{opacity:1;transform:translateX(0);}}
@keyframes plan-out{from{opacity:1;transform:translateX(0);}to{opacity:0;transform:translateX(-34px);}}
@media (prefers-reduced-motion:reduce){.plan-slidein,.plan-slideout{animation-duration:.01s;}}

/* ===== WIN-PROB BAR colours (calm, objective-aware) ===== */
.mb-wp-chase{background:var(--green);}
.mb-wp-drawseg{background:var(--ink-faint,#7D8A80);}
.mb-wp-out{background:var(--line-strong);}
.mb-wp-draw b{color:var(--ink-soft);}
/* emphasise the objective outcome */
.mb-wp.obj-draw .mb-wp-drawseg{background:var(--green);}
.mb-wp.obj-draw .mb-wp-chase{background:var(--ink-faint,#7D8A80);}
.mb-wp.obj-draw .mb-wp-draw b{color:var(--green);font-weight:800;}

/* ===== MATCH BOARD team theming ===== */
.mb{--team-accent:var(--green);}
.mb .mb-bowl-btn,.mb .btn-primary{background:var(--team-accent);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.55),0 0 1px rgba(0,0,0,.4);}
.mb .mb-wk{color:var(--team-accent);}
.mb .bb-strike,.mb .mb-strike{background:var(--team-accent);}
.mb .bb-set{background:var(--team-accent);}
.mb-wp-chase{background:var(--team-accent);}

/* header wicket count: keep readable on the themed dark header */
.mb-header .mb-wk{color:rgba(255,255,255,.72);}
/* header text over a light team colour (e.g. Australia gold) stays legible */
.mb-header{text-shadow:0 1px 2px rgba(0,0,0,.28);}
/* TEMP DEBUG mb layout */


/* ===== BATTING BOARD compact fit (no scroll) ===== */
.mb.bb .mb-header{padding:.7rem 1rem;margin:calc(env(safe-area-inset-top) + .4rem) 1rem .3rem;}
.mb.bb .mb-score{font-size:2.1rem;}
.mb.bb .mb-eq{margin-top:.35rem;}
.mb.bb .bb-bat{padding:.3rem 0;}
.mb.bb .bb-bat-top{margin-bottom:.25rem;}
.mb.bb .bb-gauges{margin-bottom:.3rem;gap:.7rem;}
.mb.bb .bb-approach{padding:.32rem;font-size:.68rem;}
.mb.bb .mb-card{padding:.35rem 0;}
.mb.bb .mb-wp{margin:.2rem 1.1rem;}
.mb.bb .mb-recent-card{padding:.35rem 0;flex:1 1 auto;min-height:0;}
.mb.bb .mb-recent-scroll{padding-bottom:0;}
.mb.bb .mb-actions{margin:.4rem 1.1rem calc(env(safe-area-inset-bottom) + .3rem);}
.mb.bb .mb-lbl{margin-bottom:.2rem;}
/* broadcast bar 3D polish */
.blt-teamblock{box-shadow:inset 0 1px 0 rgba(255,255,255,.22), inset 0 -2px 4px rgba(0,0,0,.22);}
.blt-batters, .blt-bowl{background:linear-gradient(#faf7f1,#eee9df);box-shadow:inset 0 1px 0 rgba(255,255,255,.6), inset 0 -2px 4px rgba(0,0,0,.06);}
.blt-score{background:linear-gradient(#33383d,#23272b);box-shadow:inset 0 1px 0 rgba(255,255,255,.12), inset 0 -3px 6px rgba(0,0,0,.35);}
.blt-score #bltScoreNum{text-shadow:0 1px 2px rgba(0,0,0,.4);}

/* ===== broadcast bar — premium typography ===== */
.blt{font-variant-numeric:tabular-nums;}
.blt-teamblock{font-family:var(--mono);font-weight:800;letter-spacing:.06em;text-transform:uppercase;}
.blt-bat-name{font-family:var(--mono);font-weight:600;letter-spacing:.01em;}
.blt-bat-sc, .blt-bowl-ov, .blt-bowl-top{font-family:var(--mono);font-variant-numeric:tabular-nums;}
.blt-bowl-top{font-weight:600;}
/* the big score in the editorial serif — distinctive, premium, on-brand */
.blt-score #bltScoreNum{font-family:var(--serif);font-weight:700;font-size:1.28rem;letter-spacing:.01em;font-variant-numeric:tabular-nums;}
.blt-score em{font-family:var(--mono);font-variant-numeric:tabular-nums;}
/* refined 3D: crisper bevels, subtle lift (broadcast, not heavy) */
.blt{box-shadow:0 8px 22px -6px rgba(0,0,0,.5), 0 1px 0 rgba(255,255,255,.3) inset, 0 0 0 1px rgba(0,0,0,.28);}
.blt-score{background:linear-gradient(#363b40,#20242a);}
.blt-teamblock{box-shadow:inset 0 1.5px 0 rgba(255,255,255,.28), inset 0 -2.5px 5px rgba(0,0,0,.28);}

/* ===== DESKTOP FRAMING: portrait panel + circular logo watermark on cream ===== */
@media (min-width: 900px){
  /* cream backdrop with the dark circular logo watermarked behind, centred */
  body:has(.game-shell){
    background:#F4F0E6;
  }
  /* desktop backdrop element (behind the panel): cream + circular green logo watermark */
  .fm-desk-backdrop{
    position:fixed; inset:0; z-index:0; background:#F4F0E6;
    display:flex; align-items:center; justify-content:center;
  }
  .fm-desk-backdrop::after{
    content:""; width:130vh; height:130vh; max-width:none;
    background:url("/branding/logo-full-dark.png") center center / contain no-repeat;
    opacity:.22;
  }
  /* constrain the game to a centred PORTRAIT panel (phone-shaped) */
  .game-shell{
    position:fixed;
    inset:auto auto auto auto;          /* clear the base inset:0 first */
    top:50%; left:50%; right:auto; bottom:auto;
    transform:translate(-50%,-50%);
    width:min(400px, 90vw); height:min(820px, 88vh);
    border-radius:26px; overflow:hidden;
    box-shadow:0 30px 80px -20px rgba(11,46,18,.45), 0 0 0 1px rgba(11,46,18,.10);
    z-index:50;
    display:flex; flex-direction:column;             /* so the scroll area fills exactly */
  }
  .game-shell .scr-mapwrap{ flex:1 1 auto; min-height:0; height:auto; }   /* fill the panel, no overflow past it */
  /* the panel's inner scroll area keeps its own rounding */
  .game-shell .scr-mapwrap{ border-radius:26px; }
}
/* backdrop only on desktop; hidden on mobile (game is full-screen there) */
.fm-desk-backdrop{ display:none; }
@media (min-width:900px){ .fm-desk-backdrop{ display:flex; } }
/* hide the visible scrollbar on the map panel (still scrolls) */
.game-shell .scr-mapwrap{ scrollbar-width:none; -ms-overflow-style:none; }
.game-shell .scr-mapwrap::-webkit-scrollbar{ width:0; height:0; display:none; }
/* desktop: loader lives inside the phone panel, not the whole screen */
@media (min-width:900px){
  .fm-loader{
    position:fixed; inset:auto; top:50%; left:50%; right:auto; bottom:auto;
    transform:translate(-50%,-50%);
    width:min(400px, 90vw); height:min(820px, 88vh);
    border-radius:26px; overflow:hidden; z-index:60;
  }
}
.blt-bat-out{opacity:.42;transition:opacity .4s ease;}
.blt-bat-out .blt-dot{opacity:0;}
/* DESKTOP: confine overlays to the centred game panel (not the whole window) */
@media (min-width:900px){
  .ov{
    position:fixed !important;
    inset:auto !important;
    top:50% !important; left:50% !important; right:auto !important; bottom:auto !important;
    transform:translate(-50%,-50%) !important;
    width:min(400px, 90vw) !important; height:min(820px, 88vh) !important;
    border-radius:26px; overflow:hidden;
    align-items:flex-end;
  }
  .ov-panel{ max-height:100%; border-radius:0; }
}
/* DESKTOP: game SCREENS (full-screen game views) fill the panel; OVERLAYS sit naturally */
@media (min-width:900px){
  .game-shell #screen{ height:100%; }
  .scout-scr, .scout-flip, .plan-scr, .bp-scr, .pcard-scr{ height:100% !important; }
  /* overlay panels: natural size, bottom-anchored in the frame, scroll if tall (NOT stretched) */
  .ov{ align-items:flex-end !important; }
  .ov-panel{ height:auto !important; max-height:100% !important; }
}
/* result screen: widget + buttons animate in, and are NOT clickable until revealed */
.res-scw{opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .5s ease, transform .5s cubic-bezier(.2,.8,.25,1);}
.res-scw.res-scw-in{opacity:1;transform:translateY(0);pointer-events:auto;}
.res-btns{pointer-events:none;}
.res-btns.res-btns-in{pointer-events:auto;}
.moment-fifty .btn-primary{background:linear-gradient(160deg,#d4a72c 0%,#a9781f 100%);color:#fff;border:none;box-shadow:0 3px 10px rgba(168,120,31,.35);text-shadow:0 1px 2px rgba(0,0,0,.3);}
/* HARD level panel flagging */
.ov-panel.pan-hard{border:2px solid #c0392b;border-bottom:none;box-shadow:0 -24px 60px -24px rgba(192,57,43,.4);}
.pan-hardflag{display:inline-block;background:#c0392b;color:#fff;font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .7rem;border-radius:6px;margin-bottom:.6rem;box-shadow:0 2px 6px rgba(192,57,43,.35);}
.pan-eyebrow-hard{color:#c0392b;}
.pan-btns{display:flex;gap:.7rem;margin-top:.5rem;}
.pan-btns .btn-primary{flex:1;margin-bottom:0;}
.pan-btns .btn-ghost{flex:1;margin-bottom:0;}
.pan-btns .pan-skip{flex:1;}
/* SKIP confirm popup */
.skip-ov{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.2rem;padding:.4rem 0;}
.skip-eyebrow{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.3rem;}
.skip-h{font-family:var(--serif);font-size:1.6rem;font-weight:700;color:var(--ink);margin:0 0 .4rem;}
.skip-lede{font-family:var(--mono);font-size:.72rem;color:var(--ink-soft);line-height:1.4;margin:0 0 .8rem;max-width:22rem;}
.skip-left{font-family:var(--mono);font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--green-deep);margin-bottom:1rem;}
.skip-go{width:100%;}
.skip-cancel{width:100%;margin-top:.6rem;}
/* skip button on the loss result screen — tertiary, subtle */
.res-btns .btn-primary{margin-bottom:.6rem;}
.res-btns .btn-ghost{margin-bottom:.5rem;}
.res-btns .res-skip{margin-bottom:0;margin-top:.2rem;font-size:.72rem;color:var(--ink-faint);border-color:var(--line);}
.res-btns .res-skip:hover{border-color:var(--green);color:var(--green);}
/* injured / unavailable bowler in the choice list */
.ps-bowler-out{opacity:.5;cursor:not-allowed;pointer-events:none;position:relative;display:inline-flex;align-items:center;gap:.35rem;}
.ps-bowler-out .ps-bowler-tag{display:inline-flex;align-items:center;gap:.18rem;font-family:var(--mono);font-size:.5rem;letter-spacing:.04em;text-transform:uppercase;color:#b0472f;}
.ps-bowler-injicon{color:#b0472f;flex-shrink:0;}
/* board over-end entrance: subtle fade + small settle (high-frequency, so kept minimal) */
.mb-settle{animation:mb-settle-in .26s cubic-bezier(0.22,0.61,0.36,1) both;}
@keyframes mb-settle-in{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
@media (prefers-reduced-motion: reduce){ .mb-settle{animation:none;} }