/* Charte typographique centrale — World Blocks */
:root{--font-display:Manrope,"DM Sans",sans-serif;--font-ui:"DM Sans",Manrope,sans-serif;--text-compact:9px;--text-caption:10px;--text-ui:11px;--text-body:12px;--text-card-title:14px;--text-section-title:16px;--text-modal-title:22px;font-family:var(--font-ui)}
body,button,input,select,textarea,p,li,label,small,em{font-family:var(--font-ui)}
h1,h2,h3,.brand,.pregame-brand,.profile-avatar,.admin-logo,.side-brand{font-family:var(--font-display)}
.hero-copy h1,.pregame-content h2,.won-city-hero h2{font-family:var(--font-display);font-weight:800}
dialog h2{font-family:var(--font-display);font-size:clamp(20px,5vw,var(--text-modal-title));font-weight:800;line-height:1.08}
dialog h3{font-family:var(--font-display);font-size:max(13px,.82rem);font-weight:800;line-height:1.2}
.home-screen .brand,.game-screen .game-topbar strong,.level-card strong,.journey-card strong,.goal-card strong{font-family:var(--font-display)}
:is(.stat strong,.game-topbar strong,.game-score,.game-over-score strong,.profile-stats strong,.reward-summary strong,.daily-rewards strong,.season-status b,.my-rank strong,.passport-progress strong,.sources-card>strong,.kpis strong,.traffic-stats strong,.funnel-step strong){font-family:var(--font-display);font-weight:800;font-variant-numeric:tabular-nums}
.cell,.mini-block,.piece::before,.block-values strong{font-family:var(--font-display)}
dialog :is(p,li,label){font-family:var(--font-ui);font-size:max(11px,.69rem);line-height:1.5}
dialog small{font-family:var(--font-ui);font-size:max(10px,.625rem);line-height:1.4}
dialog button{font-family:var(--font-ui);font-size:max(10px,.625rem);font-weight:800;line-height:1.2}
:is(.reward-tabs,.ranking-tabs,.ranking-mode-tabs,.auth-tabs,.legal-tabs,.shop-categories) button{font-family:var(--font-ui);font-size:max(10px,.625rem);font-weight:800}
.home-screen .play-button{font-family:var(--font-ui);font-weight:800}.home-screen .play-button i{font-family:var(--font-display);font-weight:700}
.home-screen :is(.stat small,.leaderboard-button small,.level-card small,.journey-card small,.goal-copy small,.goal-right em,.reward-alert strong,.reward-alert small){font-family:var(--font-ui);font-size:max(9px,.56rem);font-weight:700;line-height:1.3}
.home-screen :is(.level-card>b,.journey-card>b,.reward-alert>b,.dock b,.utility-links .rules-link){font-family:var(--font-ui);font-size:max(9px,.56rem);font-weight:800}
.home-screen .dock b{font-size:7px;letter-spacing:-.45px;line-height:1.2;white-space:nowrap}
@media(max-width:430px){.home-screen .dock{grid-template-columns:.95fr .8fr .8fr 1.3fr 1.2fr}}
.game-screen :is(.game-topbar small,.game-goal,.placement-help,.placement-options small,.block-values b,.boosters b,.boosters small,.energy small){font-family:var(--font-ui);font-size:max(var(--text-compact),.56rem);font-weight:700;line-height:1.25}
.game-screen :is(.placement-options button,.boosters button){font-family:var(--font-ui);font-weight:800}
.dashboard,.admin-login{font-family:var(--font-ui)}
.dashboard-main :is(h1,h2,h3),.admin-login h1,.kpis strong,.traffic-stats strong,.funnel-step strong{font-family:var(--font-display)}
.dashboard-main :is(p,small,em,.chart-legend,.traffic-chart-head,.traffic-origin-row),.admin-login :is(p,label,small,em){font-family:var(--font-ui);font-size:max(10px,.625rem);line-height:1.35}
.dashboard-main :is(button,th,td),.dashboard aside button{font-family:var(--font-ui);font-size:max(10px,.625rem)}.dashboard aside nav button{font-size:12px}
@media(max-width:359px){dialog h2{font-size:20px}.game-screen :is(.game-goal,.block-values b,.boosters small){font-size:8px}.home-screen .utility-links .rules-link{font-size:8px}}
