/* 3.3.2 · DATA-owned layout boundary and responsive component layer. */
.kdx{box-sizing:border-box}
body.kdx-page{background:#050506}
.kdx-content-host{background:#050506}
.kdx-data-content{display:flow-root}
.kdx-data-content>p:empty{display:none!important}
.kdx-module-host{margin-block:0!important;padding-block:0!important;row-gap:0!important;min-height:0!important;background:#050506!important;overflow:visible!important}
.kdx-empty-editor-block{display:none!important}
.kdx-nav-host{display:contents!important}
.kdx-nav{overflow:visible;z-index:90}
.kdx-nav a{font-size:11px;color:#bdbdc4;min-height:44px;display:flex;align-items:center}
.kdx-nav a:focus-visible,.kdx :is(button,a,select,summary,[tabindex]):focus-visible{outline:2px solid #FEC300;outline-offset:3px}
.kdx-hero__shell{padding-top:calc(80px + var(--kdx-hero-header-space,0px))}
.kdx-story{overflow:clip visible}
.kdx-causal__stage h3{font-size:clamp(24px,3vw,48px)!important;line-height:1.12!important}
.kdx-causal__stage p,.kdx-method__grid p{font-size:15px!important;line-height:1.55!important}
.kdx-universe__controls button{min-width:0!important;flex:1 1 0!important}
.kdx-universe__controls button>span{display:block!important;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important;font-size:12px!important;line-height:1.3!important}
.kdx-carousel-controls,.kdx-carousel-dots,.kdx-context-button,.kdx-method-explanation{display:none}
.kdx-detail-dialog{box-sizing:border-box;width:min(620px,calc(100% - 24px));max-height:85dvh;padding:0;border:1px solid #53535a;border-radius:18px;background:#111114;color:#eee;font:15px/1.6 Inter,Arial,sans-serif;overscroll-behavior:contain}
.kdx-detail-dialog::backdrop{background:#000b;backdrop-filter:blur(3px)}
.kdx-dialog-bar{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#111114;padding:16px;border-bottom:1px solid #39393f;z-index:1;touch-action:none}
.kdx-dialog-bar h2{font:400 26px/1.15 Anton,Impact,sans-serif;color:#FEC300;margin:0}
.kdx-dialog-bar button{flex:none;width:44px;height:44px;border:1px solid #666;border-radius:10px;background:#222;color:#fff;font-size:28px;cursor:pointer}
.kdx-dialog-content{padding:18px 22px 28px;overflow-wrap:break-word}
.kdx-dialog-content :is(p,small,blockquote){font:inherit!important;color:#ddd!important;line-height:1.6!important;display:block}
.kdx-dialog-content :is(a,summary){color:#FEC300;min-height:44px;display:inline-flex;align-items:center}
.kdx-dialog-content h3{font:400 26px/1.2 Anton,Impact,sans-serif;color:#fff}
html.kdx-dialog-open{scroll-snap-type:none!important}
.kdx-dialog-handle{display:none}

/* Desktop guard: mobile helpers must never change desktop composition. */
@media(min-width:1025px){
  /* Restore the desktop line breaks that existed before the mobile title refactor. */
  .kdx-title-line{display:block!important}
  .kdx-pulse__head .kdx-title-line{display:inline!important}
  .kdx-carousel-controls,.kdx-carousel-dots,.kdx-context-button{display:none!important}
}
@media(max-width:1024px){
 html.kdx-scene-html{scroll-snap-type:y proximity;scroll-padding-top:var(--kdx-header-offset,0px);scroll-padding-bottom:var(--kdx-dock-height,64px)}
 .kdx-scene-body{padding-bottom:var(--kdx-dock-height,64px)}
 .kdx-scene-body .kdx:not(.kdx-nav){height:auto!important;min-height:calc(100svh - var(--kdx-header-offset,0px) - var(--kdx-dock-height,64px))!important;max-height:none!important;margin-block:0!important;padding-block:22px!important;scroll-snap-align:none;scroll-margin-top:0}
 .kdx-scene-body .kdx.kdx-snap-fit{scroll-snap-align:start;scroll-snap-stop:normal}
 .kdx-nav,.kdx-nav-host{display:none!important}
 .kdx-scene-body .kdx-shell{width:calc(100% - 32px)!important;max-width:900px;min-width:0}
 .kdx-scene-body .kdx :is(h1,h2,h3){text-transform:lowercase;word-break:normal;overflow-wrap:break-word}
 .kdx-scene-body .kdx.kdx-light{background:#050506!important;color:#eee}
 .kdx-scene-body .kdx.kdx-light h2,.kdx-scene-body .kdx.kdx-light .kdx-compare__side h3{color:#fff!important}
 .kdx-scene-body .kdx.kdx-light .kdx-compare__reading{color:#ddd;background:#151518!important}
 .kdx-compare .kdx-compare__side,.kdx-compare .kdx-compare__chart{background:#111114!important;color:#eee!important}
 .kdx-compare .kdx-compare__side :is(strong,span,small,b,i),.kdx-compare .kdx-compare__reading :is(strong,p,span){color:#eee!important}
 .kdx-compare .kdx-compare__controls>label>span{color:#ccc!important;font-size:11px!important}
 .kdx-compare .kdx-compare__controls .kdx-select-wrap select{font-size:16px!important}
 .kdx-compare .kdx-compare__controls fieldset button{font-size:12px!important}
 .kdx-compare .kdx-compare__chart [data-compare-xlabels] text,.kdx-compare .kdx-compare__chart [data-compare-ylabels] text{font-size:24px!important;fill:#aaa!important}
 .kdx-compare .kdx-compare__chart [data-compare-method-label]{font-size:18px!important;fill:#aaa!important}
 .kdx-buildgap .kdx-buildgap__chart svg text{font-size:30px!important}
 .kdx-buildgap .kdx-buildgap__method{font-size:12px!important;line-height:1.45}
 .kdx-story .kdx-story-measure :is(strong,b){color:#fff!important}
 .kdx-scene-body .kdx h2{font-size:clamp(28px,5.8vw,46px)!important;line-height:1.04!important;margin:0!important}
 .kdx-scene-body .kdx h2 br{display:none}
 .kdx-scene-body .kdx [class$="__head"],.kdx-scene-body .kdx [class$="__intro"]{display:block!important;margin:0 0 16px!important;gap:12px!important}
 .kdx-scene-body .kdx [class$="__head"]>p:not(.kdx-kicker),.kdx-scene-body .kdx [class$="__intro"]>p:not(.kdx-kicker){display:none!important}
 .kdx .kdx-kicker{margin:0 0 8px;font-size:10px;color:#ccc}
 .kdx :is(button,select,summary){min-height:44px!important}
 .kdx select{max-width:100%;font-size:16px!important;min-width:0!important}
 .kdx :is(img,svg,canvas){max-width:100%}
 .kdx .kdx-measure{min-width:0;overflow-wrap:normal;flex-wrap:wrap}
 .kdx .kdx-select-hint,.kdx .kdx-control-cue,.kdx .kdx-scroll-cue{display:none!important}
 .kdx-chapter-dock:not([hidden]){display:flex;position:fixed;z-index:1000;bottom:0;left:0;right:0;gap:6px;box-sizing:border-box;padding:5px max(10px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom));background:#111114;border-top:1px solid #444}
 .kdx-chapter-dock button{flex:0 0 44px;height:44px;border:1px solid #555;background:#222;color:#FEC300;font-size:22px;border-radius:8px;padding:0}
 .kdx-chapter-dock button:disabled{opacity:.35}
 .kdx-chapter-dock select{flex:1;width:0;min-width:0;height:44px;background:#222;color:#fff;border:1px solid #555;border-radius:8px;font:14px Inter,Arial;padding:6px}
 .kdx .kdx-mobile-track{display:flex!important;align-items:stretch!important;gap:12px!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px 0!important;margin-top:12px!important;width:100%!important;max-width:100%!important;min-width:0!important;touch-action:pan-x pan-y}
 .kdx-mobile-track::-webkit-scrollbar{display:none}
 .kdx .kdx-mobile-track>.kdx-mobile-card{display:block!important;flex:0 0 calc(100% - 18px)!important;min-width:0!important;width:auto!important;max-width:none!important;scroll-snap-align:start;scroll-snap-stop:normal;opacity:1!important;transform:none!important;white-space:normal!important}
 .kdx .kdx-mobile-card.kdx-card-active{border-color:#FEC300!important}
 .kdx-carousel-controls{display:flex;align-items:center;justify-content:center;gap:14px;margin:3px 0 8px;color:#bdbdc4;font:12px Inter,Arial}
 .kdx-carousel-controls button{width:44px;padding:0;border:1px solid #555;border-radius:10px;background:#17171a;color:#FEC300;font-size:20px}
 .kdx-carousel-controls button:disabled{opacity:.3}
 .kdx .kdx-secondary{display:none!important}
 .kdx-context-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:4px 0 0;padding:6px 0;border:0!important;background:transparent!important;color:inherit!important;text-decoration:underline;text-underline-offset:4px;font-size:12px!important;font-weight:600!important;letter-spacing:0!important}
 .kdx-hero__shell{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:18px!important;min-height:0!important;padding:var(--kdx-hero-header-space,0px) 0 0!important}
 .kdx-hero__copy{padding:0!important}
 .kdx-hero__copy h1{font-size:clamp(32px,8vw,56px)!important;line-height:1!important}
 .kdx-hero__kicker{margin-bottom:14px!important}.kdx-hero__kicker em,.kdx-hero__lead,.kdx-hero__hint{display:none!important}
 .kdx-hero__actions{margin-top:14px!important;gap:8px}.kdx-hero__actions a{min-height:44px;padding:8px 12px;font-size:10px;gap:8px}
 .kdx-hero__instrument{margin:0!important;padding:14px!important;min-width:0}
 .kdx-hero__instrument-head{font-size:11px;padding-bottom:8px}.kdx-hero__big{margin-top:12px}.kdx-hero__big strong{font-size:52px!important}
 .kdx-hero__spark-wrap{min-height:0!important;margin:6px 0}.kdx-hero__spark{height:62px!important}
 .kdx-hero__switches{display:flex!important;overflow:auto;gap:5px}.kdx-hero__switches button{flex:0 0 auto;font-size:10px!important}.kdx-hero__switches button span{display:none}
 .kdx-pulse__item{padding:18px!important;min-height:165px!important}.kdx-pulse__item>span{font-size:12px!important}.kdx-pulse__item strong{font-size:46px!important}.kdx-pulse__item small{font-size:12px!important}.kdx-pulse__item>i{display:none}.kdx-pulse__item svg{height:30px!important}
 .kdx-pulse__detail{padding:14px!important;margin:0!important}.kdx-pulse__detail>button,.kdx-pulse__detail>[data-label],.kdx-pulse__detail>[data-value]{display:none!important}.kdx-pulse__detail p{font-size:14px!important;margin:0;line-height:1.45}
 .kdx-story .kdx-story__layout{display:flex!important;flex-direction:column;gap:10px!important}
 .kdx-story .kdx-story-tabs{display:none!important}
 .kdx-story .kdx-story__steps{order:0;padding:0!important}.kdx-story .kdx-carousel-controls{order:1}.kdx-story .kdx-story__stage{order:2}
 .kdx-story .kdx-story__step{min-height:0!important;padding:14px!important;border:1px solid #555!important;border-radius:12px;background:#151518!important;color:#eee!important}
 .kdx-story .kdx-story__step>span{display:none}.kdx-story .kdx-story__step h3{font-size:24px!important;line-height:1.1;color:#FEC300!important}.kdx-story .kdx-story__step>p{display:none!important}
 .kdx-story .kdx-story__step details{margin-top:2px;color:#ddd}.kdx-story .kdx-story__step summary{font-size:12px;color:#FEC300}
 .kdx-story .kdx-story__stage{position:static!important;top:auto!important;max-height:none!important;overflow:visible;padding:14px!important;width:100%;min-height:0!important}
 .kdx-story .kdx-story-board{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:8px 0!important;gap:8px!important;min-height:0!important}
 .kdx-story .kdx-story-measure{padding:10px 6px!important;gap:5px}.kdx-story .kdx-story-measure>span,.kdx-story .kdx-story-measure>small{font-size:11px!important;line-height:1.35}.kdx-story .kdx-story-measure>strong{font-size:clamp(25px,6vw,40px)!important}.kdx-story .kdx-story-measure>a{font-size:11px}.kdx-story .kdx-story-history{height:40px!important}
 .kdx-story .kdx-story__caption>b:has(+[data-scene-watch]){display:none!important}
 .kdx-story .kdx-story__caption p{font-size:13px!important;line-height:1.4!important;margin:4px 0 10px!important}
 .kdx-maplab__body,.kdx-system__layout,.kdx-universe__layout,.kdx-hundred__layout,.kdx-cityscope__layout,.kdx-madrid__layout,.kdx-causal__layout,.kdx-tension__layout{grid-template-columns:minmax(0,1fr)!important;gap:12px!important;margin-top:12px!important}
 .kdx-maplab__controls,.kdx-cityscope__cities,.kdx-cityscope__metrics,.kdx-universe__groups,.kdx-tension__cities{display:flex!important;flex-wrap:nowrap!important;overflow:auto!important;gap:6px!important;margin-top:12px!important;padding:0!important}
 .kdx-maplab__controls button,.kdx-cityscope__cities button,.kdx-cityscope__metrics button,.kdx-universe__groups button,.kdx-tension__cities button{flex:0 0 auto;padding:8px 10px!important;font-size:12px!important}
 .kdx-maplab__map,.kdx-maplab__map svg{height:clamp(210px,30svh,300px)!important;min-height:0!important}
 .kdx-maplab__panel,.kdx-system__panel,.kdx-cityscope__panel,.kdx-madrid__panel,.kdx-hundred__panel,.kdx-universe__panel,.kdx-tension__panel{padding:14px!important;min-height:0!important}
 .kdx-maplab__panel h3,.kdx-system__panel h3,.kdx-cityscope__panel h3,.kdx-madrid__panel h3,.kdx-universe__panel h3,.kdx-hundred__panel h3{font-size:26px!important;margin:4px 0 8px!important}
 .kdx-maplab__panel>strong,.kdx-cityscope__big strong,.kdx-madrid__panel strong{font-size:42px!important}.kdx-maplab__mini{margin-top:8px!important;font-size:12px}
 .kdx-rank__controls{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin:12px 0!important}.kdx-rank__controls>label:first-child{grid-column:1/-1}.kdx-rank__controls label{min-width:0!important}
 .kdx-race-row{min-height:44px!important;padding:6px 8px!important}.kdx-race-row__name{font-size:12px!important;white-space:normal!important;overflow:visible!important;line-height:1.2}.kdx-race-row__value{font-size:22px!important}.kdx-race-group{padding:8px!important;font-size:11px!important}.kdx-race-split{margin:6px 0!important}.kdx-rank__meta{margin-top:10px!important}
 .kdx-compare .kdx-compare__controls,.kdx-playground__controls{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin-top:12px!important;padding:0!important}
 .kdx-compare .kdx-compare__controls>label,.kdx-compare .kdx-compare__controls>label:first-child,.kdx-compare .kdx-compare__controls>label:nth-of-type(3){grid-column:auto!important;min-width:0!important}
 .kdx-compare .kdx-compare__controls>fieldset,.kdx-playground__controls>fieldset{grid-column:1/-1!important;display:flex!important;flex-wrap:wrap;gap:4px!important;padding:0!important;margin:0!important}
 .kdx-compare .kdx-compare__controls fieldset button,.kdx-playground__controls fieldset button{flex:1;min-width:40px!important;padding:6px!important;width:auto!important}
 .kdx-compare [data-compare-coverage]{font-size:11px!important;line-height:1.35!important;margin:0}
 .kdx-compare .kdx-compare__board{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin-top:12px!important;min-height:0!important}
 .kdx-compare .kdx-compare__side{padding:10px!important;min-height:0!important}.kdx-compare .kdx-compare__side strong{font-size:30px!important}.kdx-compare .kdx-compare__side h3{font-size:18px!important;margin:0 0 6px!important}
 .kdx-compare .kdx-compare__chart{grid-column:1/-1!important;grid-row:2!important;min-height:0!important;padding:0!important}.kdx-compare .kdx-compare__chart svg{height:210px!important}
 .kdx-playground__board{grid-template-columns:1fr!important;min-height:0!important;margin-top:12px!important}.kdx-playground__summary{padding:12px!important}.kdx-playground__summary strong{font-size:36px!important}.kdx-playground__chart{min-height:0!important}.kdx-playground__chart svg{height:210px!important}
 .kdx .kdx-touch-chart{display:flex!important;flex-direction:column;min-height:0!important}
 .kdx .kdx-touch-readout{position:static!important;inset:auto!important;transform:none!important;order:-1;box-sizing:border-box;width:100%!important;max-width:none!important;margin:0 0 6px!important;padding:9px 12px!important;border:1px solid #555;border-radius:10px;background:#17171a!important;color:#fff!important;pointer-events:none;font-size:12px!important;line-height:1.35;min-height:64px}
 .kdx .kdx-touch-readout[hidden]{display:block!important;visibility:hidden}.kdx .kdx-touch-readout :is(b,span,strong){font-size:12px!important;line-height:1.4;display:block;white-space:normal!important}
 .kdx-cityscope__field,.kdx-madrid__field,.kdx-bubbles__world{min-height:0!important}.kdx-cityscope__field canvas,.kdx-madrid__field canvas,.kdx-bubbles__world canvas{height:240px!important}
 .kdx-universe__building{min-height:0!important;padding:12px!important}.kdx-universe__houses{min-height:0!important;height:220px!important;grid-template-rows:repeat(10,minmax(0,1fr))!important;gap:4px!important;padding:4px!important}.kdx-universe__houses .kdx-anatomy-house{height:100%!important;aspect-ratio:auto!important}.kdx-universe__controls{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin-top:10px!important;overflow:visible!important}.kdx-universe__controls button{display:grid!important;grid-template-columns:1fr auto!important;gap:6px!important;padding:10px!important;min-width:0!important;flex:none!important}.kdx-universe__controls button>i{grid-column:1/-1;grid-row:2}.kdx-universe__controls button>span{font-size:12px!important;max-width:none!important;writing-mode:horizontal-tb!important}.kdx-universe__controls button>b{font-size:19px!important}
 .kdx-universe__panel{order:2!important}.kdx-universe__total{margin-block:6px!important}.kdx-universe__total small,.kdx-universe__universe span{font-size:11px!important}.kdx-universe__universe{margin-top:8px!important;padding-top:8px!important}.kdx-universe__total strong{font-size:32px!important}.kdx-universe__panel p{font-size:14px!important;line-height:1.4}.kdx-universe__selected{font-size:14px!important}
 .kdx-hundred__visual{min-height:0!important;padding:12px!important}.kdx-hundred__houses{height:220px!important}.kdx-hundred__panel strong{font-size:40px!important}
 .kdx-causal__tabs{margin:0!important}.kdx-causal__tabs button{padding:12px!important;font-size:16px!important}.kdx-causal__stage{padding:16px!important;min-height:0!important;grid-template-columns:1fr!important}.kdx-causal__stage>[data-causal-num]{display:none!important}.kdx-causal__stage h3{font-size:26px!important;line-height:1.12!important}.kdx-causal__stage p{font-size:14px!important;line-height:1.5!important}.kdx-causal__live{margin-top:12px!important;padding:12px!important}
 .kdx-method__grid article{padding:16px!important;border:1px solid #555;border-radius:12px;background:#151518;color:#fff}.kdx-method__grid article h3{font-size:25px!important;color:#FEC300!important}.kdx-method__grid article p{display:none!important}.kdx-method-explanation{display:block;padding:14px;border:1px solid #555;border-radius:12px;font-size:14px;line-height:1.5;color:#ddd;background:#101013}.kdx-method__sources{margin-top:14px!important}
 .kdx-curiosity .kdx-curiosity__top{margin-bottom:12px!important}.kdx-curiosity .kdx-curiosity__card{display:block!important;height:auto!important;min-height:0!important}.kdx-curiosity .kdx-curiosity__visual{display:none!important}.kdx-curiosity .kdx-curiosity__content{padding:16px!important;min-height:0!important;height:auto!important}.kdx-curiosity .kdx-curiosity__content h3{font-size:clamp(24px,5.2vw,34px)!important;line-height:1.12!important;margin-top:12px!important}.kdx-curiosity .kdx-curiosity__options{display:grid!important;grid-template-columns:1fr!important;margin-top:16px!important;gap:7px!important}.kdx-curiosity .kdx-curiosity__options button{min-height:46px!important;padding:6px 10px!important}.kdx-curiosity .kdx-curiosity__options button>b{font-size:15px!important}.kdx-curiosity .kdx-curiosity__reveal{margin-top:12px!important}.kdx-curiosity .kdx-curiosity__result strong{font-size:28px!important;line-height:1.15}.kdx-curiosity .kdx-curiosity__reveal blockquote{margin:8px 0!important;padding:8px 10px!important}.kdx-curiosity .kdx-curiosity__reveal blockquote b{font-size:13px!important;line-height:1.4!important}
 .kdx-curiosity .kdx-curiosity__next{margin-top:10px!important}.kdx-curiosity .kdx-curiosity__reveal[hidden]{display:none!important}
 .kdx-quiz__card{padding:16px!important;min-height:0!important}.kdx-quiz__card h3{font-size:26px!important}.kdx-quiz__options{gap:8px!important;margin-top:14px!important}
 .kdx-buildgap__stage{grid-template-columns:1fr!important;grid-auto-rows:auto!important;gap:12px!important}.kdx-buildgap__chart,.kdx-buildgap__panel{height:auto!important}.kdx-buildgap__chart{min-height:0!important;padding:10px!important}.kdx-buildgap__chart svg{height:210px!important;min-height:0!important}.kdx-buildgap__panel{padding:14px!important;min-height:0!important}.kdx-buildgap__metrics{gap:8px!important}.kdx-buildgap__metrics strong{font-size:26px!important}.kdx-buildgap__toolbar{gap:8px!important;margin-top:12px!important}
 .kdx-tension__stage{padding:14px!important;min-height:0!important}.kdx-tension__dots{min-height:0!important;height:180px!important}.kdx-tension__split{gap:8px!important}.kdx-tension__split strong{font-size:36px!important}.kdx-tension__movement{font-size:30px!important}
 .kdx-detail-dialog{margin:auto 0 0;width:100%;max-width:none;max-height:85dvh;border-radius:18px 18px 0 0;padding-bottom:env(safe-area-inset-bottom)}.kdx-dialog-bar{padding-top:24px}.kdx-dialog-handle{display:block;position:absolute;top:8px;left:calc(50% - 20px);width:40px;height:4px;background:#888;border-radius:4px}
}
@media(min-width:768px) and (max-width:1024px){.kdx .kdx-mobile-track>.kdx-mobile-card{flex-basis:calc(70% - 12px)!important}.kdx-hero__copy h1{font-size:52px!important}.kdx-maplab__body,.kdx-cityscope__layout,.kdx-universe__layout{grid-template-columns:repeat(2,minmax(0,1fr))!important}.kdx-universe__controls{grid-column:1/-1}}
@media(max-width:374px){.kdx-scene-body .kdx-shell{width:calc(100% - 24px)!important}.kdx-scene-body .kdx h2{font-size:27px!important}.kdx-hero__actions{display:grid}.kdx-story .kdx-story-measure>strong{font-size:25px!important}}
@media(min-width:431px) and (max-width:767px){.kdx-scene-body .kdx-shell{max-width:600px}.kdx-hero__copy h1{font-size:46px!important}}
@media(prefers-reduced-motion:reduce){html.kdx-scene-html{scroll-snap-type:none!important}.kdx-mobile-track{scroll-behavior:auto!important}.kdx *{animation:none!important;transition:none!important}}

.kdx-spark-readout{font:12px/1.4 Inter,Arial,sans-serif;color:#ccc;min-height:17px;margin:4px 0;overflow-wrap:break-word}
.kdx-story .kdx-spark-readout{font-size:11px}

/* =========================================================
   3.3.10-rc.9 · MOBILE SCENES
   Phone = chapters, not a shrunken desktop page.
   ========================================================= */

/* DATA owns its page canvas. Keep editor wrappers from exposing theme white. */
body.kdx-page,
body.kdx-page #page,
body.kdx-page .site,
body.kdx-page main,
body.kdx-page .site-main,
body.kdx-page .content-area,
body.kdx-page .entry-content,
.kdx-content-host,
.kdx-data-content{background:#050506!important}
.kdx-module-host,
.kdx-module-host>.kt-row-layout-inner,
.kdx-module-host>.kt-row-column-wrap,
.kdx-module-host .kt-row-column-wrap:has(.kdx),
.kdx-module-host .kt-inside-inner-col:has(>.kdx){margin-block:0!important;padding-block:0!important;min-height:0!important;background:transparent!important}
.kdx-empty-editor-block{display:none!important;height:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important}

@media(max-width:767px){
  .kdx-chapter-dock{display:none!important}
  .kdx-screen-swipe{touch-action:pan-y pinch-zoom}
  html.kdx-scene-html{
    scroll-snap-type:y mandatory!important;
    scroll-padding-top:var(--kdx-header-offset,0px)!important;
    scroll-padding-bottom:0!important;
    overscroll-behavior-y:contain;
  }
  body.kdx-scene-body{padding-bottom:0!important;background:#050506!important}
  .kdx-scene-body .kdx:not(.kdx-nav){
    box-sizing:border-box!important;
    min-height:var(--kdx-scene-height,calc(100dvh - var(--kdx-header-offset,0px)))!important;
    height:auto!important;
    margin:0!important;
    padding:clamp(10px,1.7svh,16px) 0!important;
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
    scroll-margin-top:var(--kdx-header-offset,0px)!important;
  }
  .kdx-scene-body .kdx.kdx-scene-overflow{scroll-snap-stop:normal!important}
  .kdx-scene-body .kdx-shell{width:calc(100% - 28px)!important;max-width:560px!important}
  .kdx-scene-body .kdx :is(h1,h2,h3){overflow-wrap:normal!important;word-break:normal!important}
  .kdx-scene-body .kdx h2{font-size:clamp(27px,7.4vw,34px)!important;line-height:.98!important;letter-spacing:-.01em!important}
  .kdx-scene-body .kdx .kdx-kicker{font-size:9px!important;line-height:1.1!important;margin-bottom:6px!important;letter-spacing:.14em!important}
  .kdx-scene-body .kdx [class$="__head"],
  .kdx-scene-body .kdx [class$="__intro"]{margin-bottom:10px!important}

  /* Bottom chapter control: thin, readable and accounted for in scene height. */
  .kdx-chapter-dock:not([hidden]){
    height:54px!important;
    gap:5px!important;
    padding:5px max(8px,env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))!important;
    background:rgba(14,14,16,.96)!important;
    backdrop-filter:blur(16px)!important;
  }
  .kdx-chapter-dock button{flex-basis:44px!important;width:44px!important;height:44px!important;border-radius:9px!important;font-size:20px!important}
  .kdx-chapter-dock select{height:44px!important;min-height:44px!important;padding:0 10px!important;border-radius:9px!important;font-size:12px!important;text-overflow:ellipsis}

  /* Carousels: a swipe changes the active card and its explanation automatically. */
  .kdx .kdx-mobile-track{gap:8px!important;margin-top:7px!important;scroll-snap-type:x mandatory!important;scroll-padding-inline:0!important}
  .kdx .kdx-mobile-track>.kdx-mobile-card{flex-basis:100%!important;scroll-snap-align:start!important;scroll-snap-stop:always!important}
  .kdx-carousel-controls{height:42px!important;margin:2px 0 4px!important;gap:12px!important}
  .kdx-carousel-controls button{width:42px!important;height:42px!important;min-height:42px!important;border-radius:10px!important}
  .kdx-context-button{min-height:34px!important;margin-top:2px!important;padding:4px 0!important;font-size:11px!important}
  .kdx-bubble-inline-tip{display:none!important}

  /* Hero: keep the first chapter self-contained. */
  .kdx-hero__shell{gap:10px!important;justify-content:center!important}
  .kdx-hero__copy h1{font-size:clamp(34px,10vw,48px)!important;line-height:.94!important}
  .kdx-hero__actions{margin-top:10px!important}
  .kdx-hero__instrument{padding:12px!important;border-radius:12px!important}
  .kdx-hero__big{margin-top:8px!important}.kdx-hero__big strong{font-size:46px!important}
  .kdx-hero__spark{height:54px!important}.kdx-hero__switches button{min-height:38px!important;padding:6px 8px!important}

  /* Market at a glance: one card + one active reading. */
  .kdx-pulse .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-pulse__item{min-height:132px!important;padding:14px!important;border-radius:12px!important}
  .kdx-pulse__item strong{font-size:40px!important}.kdx-pulse__item svg{height:24px!important;margin-top:4px!important}
  .kdx-pulse__detail{min-height:72px!important;padding:11px 12px!important;border-radius:11px!important}
  .kdx-pulse__detail p{font-size:12.5px!important;line-height:1.35!important}

  /* 90 seconds: slide above, data board below, detail in sheet. */
  .kdx-story .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-story .kdx-story__layout{gap:6px!important}
  .kdx-story .kdx-story__step{padding:11px 12px!important}
  .kdx-story .kdx-story__step h3{font-size:21px!important;margin:0!important}
  .kdx-story .kdx-story__step details{display:none!important}
  .kdx-story .kdx-story__stage{padding:10px 11px!important;border-radius:12px!important}
  .kdx-story .kdx-story__stage-top{padding-bottom:6px!important}
  .kdx-story .kdx-story-board{gap:6px!important;padding:5px 0!important}
  .kdx-story .kdx-story-measure{padding:7px 5px!important}.kdx-story .kdx-story-measure>strong{font-size:clamp(24px,7vw,34px)!important}
  .kdx-story .kdx-story__caption p{font-size:12px!important;line-height:1.32!important;margin:2px 0 5px!important}

  /* Map: data first, explanatory prose moves to context. */
  .kdx-maplab .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-maplab__controls{margin-top:7px!important}
  .kdx-maplab__controls button{min-height:38px!important;padding:6px 9px!important;font-size:10px!important}
  .kdx-maplab__body{gap:7px!important;margin-top:7px!important}
  .kdx-maplab__map,.kdx-maplab__map svg{height:clamp(250px,38svh,330px)!important}
  .kdx-maplab__panel{display:grid!important;grid-template-columns:1fr auto!important;gap:3px 12px!important;align-items:end!important;padding:10px 12px!important;border-radius:11px!important}
  .kdx-maplab__eyebrow{grid-column:1/-1!important}.kdx-maplab__panel h3{font-size:22px!important;margin:0!important}.kdx-maplab__panel>strong{font-size:36px!important;margin:0!important}
  .kdx-maplab__mini{grid-column:1/-1!important;margin-top:4px!important}

  /* RANKING — deliberately rebuilt as a compact score table. */
  .kdx-rank .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-rank__head{max-width:none!important}.kdx-rank__head h2{max-width:12ch!important}
  .kdx-rank__controls{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;margin:8px 0 4px!important}
  .kdx-rank__controls>label,.kdx-rank__controls>label:first-child{grid-column:auto!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important}
  .kdx-rank__controls label>span{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important}
  .kdx-rank__controls .kdx-select-wrap select{height:44px!important;min-height:44px!important;padding:0 25px 0 8px!important;border:1px solid #303036!important;border-radius:9px!important;background:#111114!important;color:#f3f3f5!important;-webkit-text-fill-color:#f3f3f5!important;font-size:10.5px!important;font-weight:800!important;white-space:nowrap!important;text-overflow:ellipsis!important}
  .kdx-rank__controls .kdx-select-wrap>b{right:8px!important;font-size:10px!important}
  .kdx-rank__race{gap:0!important;margin-top:4px!important}
  .kdx-race-group{display:flex!important;align-items:center!important;justify-content:space-between!important;min-height:27px!important;padding:3px 5px!important;border-bottom:1px solid rgba(255,255,255,.09)!important;font-size:9px!important;letter-spacing:.08em!important}
  .kdx-race-group.is-high span{color:#70B7FF!important}.kdx-race-group.is-low span{color:#f07b7b!important}
  .kdx-race-group b{font-size:7px!important;color:#666!important}
  .kdx-race-row{grid-template-columns:27px minmax(0,1fr) auto!important;gap:7px!important;min-height:37px!important;padding:4px 5px!important;border-bottom:1px solid rgba(255,255,255,.07)!important}
  .kdx-race-row.is-high{box-shadow:inset 2px 0 0 rgba(58,134,255,.65)}.kdx-race-row.is-low{box-shadow:inset 2px 0 0 rgba(217,73,73,.65)}
  .kdx-race-row__track{display:none!important}.kdx-race-row__pos{font-size:16px!important}.kdx-race-row.is-high .kdx-race-row__pos{color:#5f9eea!important}.kdx-race-row.is-low .kdx-race-row__pos{color:#d56b6b!important}
  .kdx-race-row__name{font-size:13px!important;line-height:1.08!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .kdx-race-row__value{font-size:23px!important;line-height:1!important;gap:4px!important}.kdx-race-row__value small{font-size:7.5px!important}
  .kdx-race-split{min-height:20px!important;margin:1px 0!important}.kdx-race-split b{font-size:7px!important;letter-spacing:.12em!important}
  .kdx-rank__foot{min-height:30px!important;margin-top:3px!important;justify-content:flex-start!important}

  /* Historical compare — controls occupy three compact rows, chart gets the space. */
  .kdx-compare .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-compare .kdx-compare__controls{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px 7px!important;margin-top:7px!important}
  .kdx-compare .kdx-compare__controls>label{margin:0!important}.kdx-compare .kdx-compare__controls>label>span{margin:0 0 3px 2px!important;font-size:7px!important}
  .kdx-compare .kdx-compare__controls .kdx-select-wrap select{height:44px!important;min-height:44px!important;padding:0 28px 0 9px!important;border-radius:9px!important;font-size:12px!important}
  .kdx-compare .kdx-compare__controls .kdx-select-wrap>b{right:9px!important}
  .kdx-compare .kdx-compare__controls>fieldset{gap:4px!important;margin-top:1px!important}
  .kdx-compare .kdx-compare__controls fieldset button{height:40px!important;min-height:40px!important;min-width:0!important;border-radius:8px!important;font-size:10px!important}
  .kdx-compare .kdx-compare__board{gap:5px!important;margin-top:7px!important}
  .kdx-compare .kdx-compare__side{padding:8px 10px!important;border-radius:9px!important}.kdx-compare .kdx-compare__side>span{font-size:8px!important}.kdx-compare .kdx-compare__side strong{font-size:30px!important;margin-top:5px!important}.kdx-compare .kdx-compare__side i{font-size:10px!important}.kdx-compare .kdx-compare__side small{font-size:7px!important}
  .kdx-compare .kdx-compare__chart{border-radius:11px!important}.kdx-compare .kdx-compare__chart svg{height:clamp(230px,31svh,285px)!important}
  .kdx-compare .kdx-compare__chart [data-compare-xlabels] text,.kdx-compare .kdx-compare__chart [data-compare-ylabels] text{font-size:16px!important}
  .kdx-compare .kdx-compare__chart [data-compare-method-label]{font-size:13px!important}
  .kdx-compare__reading{min-height:34px!important;margin-top:4px!important;padding:0!important;border:0!important;background:transparent!important}
  .kdx-compare__reading>[data-compare-gap]{font-size:18px!important}.kdx-compare__reading .kdx-context-button{color:#ddd!important}
  .kdx .kdx-touch-readout{min-height:46px!important;margin-bottom:4px!important;padding:7px 10px!important;border-radius:8px!important;font-size:10px!important;line-height:1.2!important}
  .kdx .kdx-touch-readout :is(b,span,strong){font-size:10px!important;line-height:1.25!important;display:inline!important;margin-right:6px!important}

  /* Bubble modules — no duplicated tooltip. Bubbles own the screen; selection only below. */
  .kdx-bubbles .kdx-shell,.kdx-madrid .kdx-shell,.kdx-cityscope .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-bubbles__controls,.kdx-madrid__controls,.kdx-cityscope__cities,.kdx-cityscope__metrics{margin-top:7px!important;gap:5px!important}
  .kdx-bubbles__controls button,.kdx-madrid__controls button,.kdx-cityscope__cities button,.kdx-cityscope__metrics button{min-height:40px!important;padding:6px 10px!important;font-size:10px!important}
  .kdx-cityscope__metrics button{font-size:9px!important}
  .kdx-cityscope__crumb,.kdx-madrid__crumb{min-height:25px!important;margin-top:5px!important;font-size:7.5px!important}
  .kdx-bubbles__world,.kdx-madrid__layout,.kdx-cityscope__layout{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;margin-top:6px!important;background:transparent!important;overflow:visible!important}
  .kdx-bubbles__world>canvas,.kdx-madrid__field canvas,.kdx-cityscope__field canvas{height:clamp(300px,43svh,380px)!important}
  .kdx-bubbles__world,.kdx-madrid__field,.kdx-cityscope__field{min-height:0!important;border-radius:12px!important;overflow:hidden!important}
  .kdx-bubbles__panel,.kdx-madrid__panel,.kdx-cityscope__panel{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto auto!important;gap:2px 10px!important;min-height:0!important;margin:0!important;padding:9px 11px!important;border-radius:11px!important;align-items:end!important}
  .kdx-bubbles__panel>span,.kdx-madrid__panel>span,.kdx-cityscope__panel>span{grid-column:1/2!important;font-size:7px!important;margin:0!important}
  .kdx-bubbles__panel h3,.kdx-madrid__panel h3,.kdx-cityscope__panel h3{grid-column:1/2!important;margin:0!important;font-size:22px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .kdx-bubbles__panel>strong,.kdx-madrid__panel>strong,.kdx-cityscope__big{grid-column:2/3!important;grid-row:1/3!important;align-self:center!important;margin:0!important}
  .kdx-bubbles__panel>strong,.kdx-madrid__panel>strong,.kdx-cityscope__big strong{font-size:34px!important;line-height:.9!important}
  .kdx-cityscope__big small{font-size:7px!important}.kdx-madrid__changes,.kdx-cityscope__changes{grid-column:1/-1!important;margin-top:3px!important;gap:4px!important}.kdx-madrid__changes span,.kdx-cityscope__changes span{padding:4px 6px!important;font-size:7px!important}
  .kdx-bubbles__panel .kdx-context-button,.kdx-madrid__panel .kdx-context-button,.kdx-cityscope__panel .kdx-context-button{grid-column:1/-1!important;justify-self:start!important}
  .kdx-cityscope__sample-note{display:none!important}

  /* Tension / price caps — full 100-dot story plus three KPIs, no clipped carousel. */
  .kdx-tension .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-tension__cities{margin-top:7px!important}.kdx-tension__cities button{min-height:39px!important;padding:6px 10px!important;font-size:10px!important}
  .kdx-tension__layout{gap:6px!important;margin-top:6px!important}.kdx-tension__stage{min-height:0!important;padding:10px!important;border-radius:12px!important}
  .kdx-tension__stage-top{padding-bottom:7px!important;font-size:7px!important}.kdx-tension__split{min-height:0!important;gap:5px!important}
  .kdx-tension__dots,.kdx-tension__dots.is-empty{grid-template-columns:repeat(10,16px)!important;grid-auto-rows:16px!important;column-gap:8px!important;row-gap:5px!important;width:232px!important;height:182px!important;min-height:182px!important;margin:2px auto 3px!important}
  .kdx-tension__dots span{width:16px!important;height:16px!important}.kdx-tension__legend{grid-template-columns:1fr auto 1fr!important;gap:5px!important;font-size:7px!important}.kdx-tension__legend-share{padding:5px 6px!important}.kdx-tension__legend-share b{font-size:18px!important}
  .kdx-tension__movement{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4px!important;overflow:visible!important;margin-top:4px!important}
  .kdx-tension__movement>div{min-height:64px!important;padding:7px!important;border-radius:8px!important}.kdx-tension__movement span{font-size:6.5px!important;line-height:1.15!important}.kdx-tension__movement strong{font-size:23px!important;margin-top:4px!important}.kdx-tension__movement small{display:none!important}
  .kdx-tension__panel{display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;gap:6px!important;min-height:0!important;margin:0!important;padding:8px 10px!important;border-radius:10px!important}.kdx-tension__panel>span{display:none!important}.kdx-tension__panel h3{font-size:18px!important;margin:0!important}.kdx-tension__panel .kdx-context-button{margin:0!important}

  /* 100 homes — houses dominate; yellow reading becomes a small caption card. */
  .kdx-universe .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-universe__groups{margin-top:7px!important;gap:5px!important}.kdx-universe__groups button{min-height:40px!important;padding:6px 12px!important;font-size:10px!important}
  .kdx-universe__controls{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;margin-top:5px!important}.kdx-universe__controls button{min-height:42px!important;padding:6px 8px!important;gap:3px 5px!important}.kdx-universe__controls button>span{font-size:10.5px!important;line-height:1.05!important}.kdx-universe__controls button>b{font-size:17px!important}.kdx-universe__controls button>i{height:4px!important}
  .kdx-universe__layout{gap:6px!important;margin-top:6px!important}.kdx-universe__building{min-height:0!important;padding:8px!important;border-radius:12px!important}.kdx-universe__houses{height:clamp(190px,27svh,235px)!important;min-height:0!important;padding:4px 6px!important;gap:4px!important}.kdx-universe__building-label{margin-top:5px!important;font-size:7px!important}.kdx-universe__building-label b{font-size:10px!important}
  .kdx-universe__panel{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;gap:2px 10px!important;min-height:0!important;padding:9px 11px!important;border-radius:11px!important;align-items:end!important}.kdx-universe__panel>span{display:none!important}.kdx-universe__total{margin:0!important;display:block!important}.kdx-universe__total strong{font-size:28px!important;line-height:.95!important}.kdx-universe__total small{font-size:6.5px!important;white-space:nowrap!important}.kdx-universe__panel h3{font-size:20px!important;line-height:1!important;margin:0!important;align-self:end!important}.kdx-universe__panel .kdx-context-button{grid-column:1/-1!important;justify-self:start!important}

  /* Construction gap — graph + four compact KPIs in one chapter. */
  .kdx-buildgap .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-buildgap__toolbar{margin-top:7px!important}.kdx-buildgap__modes{gap:4px!important}.kdx-buildgap__modes button{min-height:38px!important;padding:5px 9px!important;font-size:8px!important}.kdx-buildgap__sourceflag{font-size:6.5px!important}
  .kdx-buildgap__stage{gap:6px!important;margin-top:6px!important}.kdx-buildgap__chart{min-height:0!important;padding:8px!important;border-radius:11px!important}.kdx-buildgap__charttop{padding:0 2px 6px!important;font-size:7px!important}.kdx-buildgap__legend{gap:4px!important;font-size:6.5px!important}.kdx-buildgap__legend i{width:6px!important;height:6px!important;margin-left:3px!important}.kdx-buildgap__chart svg{height:clamp(220px,29svh,270px)!important;min-height:0!important}.kdx-buildgap .kdx-buildgap__chart svg text{font-size:22px!important}
  .kdx-buildgap__panel{display:grid!important;grid-template-columns:56px minmax(0,1fr)!important;gap:5px 8px!important;min-height:0!important;padding:9px 10px!important;border-radius:11px!important}.kdx-buildgap__panel>span{display:none!important}.kdx-buildgap__year{grid-row:1/3!important;margin:0!important;font-size:32px!important;align-self:center!important}.kdx-buildgap__metrics{grid-column:2!important;grid-row:1!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4px!important;margin:0!important}.kdx-buildgap__metrics>div,.kdx-buildgap__metrics>div:first-child{grid-column:auto!important;padding:5px!important;border-radius:6px!important}.kdx-buildgap__metrics span{font-size:5.8px!important}.kdx-buildgap__metrics strong{font-size:17px!important;margin-top:3px!important}
  .kdx-buildgap__annual{grid-column:2!important;grid-row:2!important;margin:0!important;padding:5px 7px!important;border-radius:6px!important;display:flex!important;align-items:baseline!important;gap:6px!important}.kdx-buildgap__annual span{font-size:6px!important}.kdx-buildgap__annual strong{font-size:19px!important;margin:0!important}.kdx-buildgap__annual small{display:none!important}.kdx-buildgap__panel .kdx-context-button{grid-column:1/-1!important;justify-self:start!important}.kdx-buildgap__method{display:none!important}

  /* Curiosity / quiz — no artificial yellow void; answer detail goes to a sheet. */
  .kdx-curiosity .kdx-shell{display:flex!important;flex-direction:column!important;justify-content:center!important;min-height:calc(var(--kdx-scene-height) - 24px)!important}
  .kdx-curiosity{margin:0!important}.kdx-curiosity .kdx-curiosity__top{margin-bottom:8px!important}.kdx-curiosity .kdx-curiosity__top h2{font-size:clamp(28px,8vw,36px)!important;line-height:.98!important}
  .kdx-curiosity .kdx-curiosity__content{padding:13px!important}.kdx-curiosity .kdx-curiosity__content h3{font-size:clamp(22px,6.1vw,29px)!important;line-height:1.04!important;margin-top:9px!important}.kdx-curiosity .kdx-curiosity__counter{padding:8px 12px!important;font-size:8px!important}
  .kdx-curiosity .kdx-curiosity__options{margin-top:11px!important;gap:5px!important}.kdx-curiosity .kdx-curiosity__options button{min-height:44px!important;padding:5px 8px!important;grid-template-columns:34px 1fr 12px!important}.kdx-curiosity .kdx-curiosity__options button>span{width:30px!important;height:30px!important}.kdx-curiosity .kdx-curiosity__options button>b{font-size:14px!important}
  .kdx-curiosity .kdx-curiosity__reveal{margin-top:8px!important}.kdx-curiosity .kdx-curiosity__result{display:flex!important;align-items:baseline!important;gap:9px!important}.kdx-curiosity .kdx-curiosity__result strong{font-size:25px!important}.kdx-curiosity .kdx-curiosity__next{min-height:44px!important;margin-top:6px!important;padding:7px 12px!important;font-size:12px!important}

  /* Scenario levers — one active swipe card, concise explanation, detail on demand. */
  .kdx-causal .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-causal__tabs button{min-height:46px!important;padding:8px 12px!important;font-size:13px!important;border-radius:10px!important}
  .kdx-causal__stage{padding:12px!important;border-radius:11px!important}.kdx-causal__stage p:first-child{font-size:7px!important}.kdx-causal__stage h3{font-size:clamp(21px,6vw,27px)!important;line-height:1.04!important;margin-top:8px!important}.kdx-causal__stage div>p:not(:first-child){font-size:12.5px!important;line-height:1.35!important;margin-top:9px!important}.kdx-causal__live{margin-top:8px!important;padding:8px 9px!important}.kdx-causal__live strong{font-size:20px!important}

  /* Method — explanation belongs inside the slide; remove the empty-card duplication. */
  .kdx-method .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-method__grid article{display:grid!important;grid-template-columns:54px 1fr!important;gap:9px!important;min-height:0!important;padding:13px!important;border-radius:11px!important}.kdx-method__grid article>span{font-size:46px!important}.kdx-method__grid article h3{font-size:23px!important;line-height:1!important}.kdx-method__grid article p{display:block!important;margin:7px 0 0!important;font-size:12.5px!important;line-height:1.38!important;color:#d6d6db!important}.kdx-method-explanation{display:none!important}.kdx-method__sources{margin-top:4px!important}.kdx-method>.kdx-shell>.kdx-context-button{align-self:flex-start!important}
}

@media(max-width:374px){
  .kdx-scene-body .kdx-shell{width:calc(100% - 20px)!important}
  .kdx-race-row__name{font-size:12px!important}.kdx-race-row__value{font-size:21px!important}
  .kdx-universe__houses{height:185px!important}.kdx-bubbles__world>canvas,.kdx-madrid__field canvas,.kdx-cityscope__field canvas{height:290px!important}
  .kdx-buildgap__chart svg{height:215px!important}
}

/* 3.3.10-rc.9 · remaining mobile chapters: same one-screen grammar everywhere. */
@media(max-width:767px){
  /* Signal system — horizontal signal picker + one compact active reading. */
  .kdx-system .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-system__layout{display:flex!important;flex-direction:column!important;gap:6px!important;margin-top:6px!important}
  .kdx-system__orbit{min-height:0!important;padding:0!important;border:0!important;background:transparent!important;border-radius:0!important}
  .kdx-system__orbit.kdx-mobile-track button{display:grid!important;grid-template-columns:34px minmax(0,1fr) auto!important;min-height:62px!important;padding:9px 11px!important;border-radius:10px!important}
  .kdx-system__orbit button span{font-size:20px!important}.kdx-system__orbit button b{font-size:10px!important}.kdx-system__orbit button i{font-size:11px!important}
  .kdx-system__panel{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto auto!important;gap:2px 10px!important;min-height:0!important;padding:10px 11px!important;border-radius:11px!important}
  .kdx-system__panel>span{grid-column:1!important;font-size:7px!important}.kdx-system__panel h3{grid-column:1!important;margin:0!important;font-size:21px!important;line-height:1!important}
  .kdx-system__value{grid-column:2!important;grid-row:1/3!important;align-self:center!important;margin:0!important}.kdx-system__value strong{font-size:38px!important;line-height:.9!important;letter-spacing:-.03em!important}.kdx-system__value small{font-size:7px!important}
  .kdx-system__panel .kdx-context-button{grid-column:1/-1!important;justify-self:start!important;color:#09090a!important}

  /* Data lab — graph first, controls and reading compressed around it. */
  .kdx-playground .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-playground .kdx-playground__controls{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;margin-top:6px!important}
  .kdx-playground .kdx-playground__controls>label{padding:0!important;border:0!important;background:transparent!important}.kdx-playground .kdx-playground__controls>label>span{display:none!important}
  .kdx-playground .kdx-playground__controls select{height:42px!important;min-height:42px!important;padding:0 27px 0 9px!important;border-radius:8px!important;font-size:11px!important}
  .kdx-playground .kdx-playground__controls>fieldset{grid-column:1/-1!important;display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:4px!important;padding:0!important;border:0!important;background:transparent!important}
  .kdx-playground .kdx-playground__controls fieldset legend,.kdx-playground .kdx-playground__controls fieldset small{display:none!important}
  .kdx-playground .kdx-playground__controls fieldset button{height:36px!important;min-height:36px!important;padding:4px!important;border-radius:7px!important;font-size:9px!important}
  .kdx-playground__board{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0!important;margin-top:6px!important;border-radius:11px!important}
  .kdx-playground__summary{grid-column:1/-1!important;display:grid!important;grid-template-columns:1fr auto!important;align-items:end!important;gap:2px 8px!important;padding:7px 9px!important;border:0!important;border-bottom:1px solid #e0e0db!important}
  .kdx-playground__summary>span{font-size:7px!important}.kdx-playground__summary>strong{margin:0!important;font-size:28px!important;line-height:.92!important}.kdx-playground__summary>small{font-size:7px!important}.kdx-playground__summary>div{grid-column:1/-1!important;display:flex!important;gap:8px!important;margin:2px 0 0!important}.kdx-playground__summary b,.kdx-playground__summary i{font-size:7px!important}
  .kdx-playground__chart{grid-column:1/-1!important;grid-row:auto!important;min-height:0!important;padding:4px 6px 7px!important}.kdx-playground__chart svg{height:clamp(225px,30svh,275px)!important}
  .kdx-playground__read{grid-column:1/-1!important;min-height:32px!important;padding:4px 8px 7px!important;border:0!important;background:#fff!important}.kdx-playground__read .kdx-context-button{color:#333!important}

  /* 100 units — visual dominates, reading collapses to a caption. */
  .kdx-hundred .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-hundred__layout{display:flex!important;flex-direction:column!important;gap:6px!important;margin-top:6px!important}
  .kdx-hundred__visual{min-height:0!important;height:clamp(215px,31svh,265px)!important;padding:10px!important;gap:5px!important;border-radius:11px!important}
  .kdx-hundred__panel{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;grid-template-rows:auto auto auto!important;gap:2px 9px!important;min-height:0!important;padding:9px 10px!important;border-radius:11px!important}
  .kdx-hundred__tabs{grid-column:1/-1!important;display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;gap:4px!important;margin-bottom:3px!important;scrollbar-width:none}.kdx-hundred__tabs::-webkit-scrollbar{display:none}
  .kdx-hundred__tabs.kdx-mobile-track{margin:0!important}.kdx-hundred__tabs button{min-height:36px!important;padding:4px 8px!important;font-size:8px!important;white-space:nowrap!important}
  .kdx-hundred__panel>span{grid-column:1!important;margin:0!important;font-size:7px!important}.kdx-hundred__panel>strong{grid-column:1!important;margin:0!important;font-size:31px!important;line-height:.92!important}
  .kdx-hundred__panel h3{grid-column:2!important;grid-row:2!important;align-self:center!important;margin:0!important;font-size:18px!important;line-height:1!important}.kdx-hundred__panel .kdx-context-button{grid-column:1/-1!important;justify-self:start!important}
  .kdx-hundred__panel>.kdx-carousel-controls{display:none!important}

  /* Who uses it — keep the orbit, but turn the yellow billboard into a compact result. */
  .kdx-who .kdx-shell{display:flex;flex-direction:column;justify-content:center;min-height:calc(var(--kdx-scene-height) - 24px)}
  .kdx-who__controls.kdx-mobile-track{margin-top:6px!important}.kdx-who__controls.kdx-mobile-track button{display:block!important;min-height:54px!important;padding:8px 10px!important;border-radius:9px!important}.kdx-who__controls button span{font-size:6.5px!important}.kdx-who__controls button b{font-size:10px!important;margin-top:3px!important}
  .kdx-who__stage{display:flex!important;flex-direction:column!important;gap:6px!important;margin-top:5px!important}
  .kdx-who__orbit{min-height:0!important;height:clamp(245px,35svh,315px)!important;border-radius:12px!important}.kdx-who__orbit>span{width:10px!important;height:10px!important;margin:-5px!important}
  .kdx-who__panel{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:auto auto auto!important;gap:2px 9px!important;min-height:0!important;padding:9px 11px!important;border-radius:11px!important}
  .kdx-who__panel>span{grid-column:1!important;font-size:7px!important}.kdx-who__panel>strong{grid-column:2!important;grid-row:1/3!important;align-self:center!important;margin:0!important;font-size:34px!important;line-height:.9!important}.kdx-who__panel h3{grid-column:1!important;grid-row:2!important;margin:0!important;font-size:19px!important;line-height:1!important}.kdx-who__panel .kdx-context-button{grid-column:1/-1!important;justify-self:start!important;color:#09090a!important}
}

/* Respect motion preferences even though phone snap is mandatory by default. */
@media(max-width:767px) and (prefers-reduced-motion:reduce){
  html.kdx-scene-html{scroll-snap-type:none!important}
  .kdx-scene-body .kdx:not(.kdx-nav){scroll-snap-stop:normal!important}
}

/* rc.3 refinements — mobile readability, clearer hierarchy and restored visuals */
@media (max-width:1024px){
  .kdx-scene-body .kdx :is(h1,h2,h3,.kdx-kicker,.kdx-curiosity__eyebrow){text-transform:none!important}
  .kdx-scene-body .kdx h1,.kdx-scene-body .kdx h2{font-variant-ligatures:none;text-wrap:balance;max-width:none!important}
  .kdx-scene-body .kdx .kdx-title-line,.kdx-scene-body .kdx h2 mark.kdx-title-line{display:block!important}
  .kdx-scene-body .kdx h2 mark.kdx-title-line{margin-top:.08em!important}
  .kdx-pulse__head h2,.kdx-story__intro h2,.kdx-maplab__head h2,.kdx-rank__head h2,.kdx-compare__head h2,.kdx-buildgap__head h2,.kdx-causal__head h2,.kdx-method__head h2{font-size:clamp(38px,7.6vw,58px)!important;line-height:.92!important;letter-spacing:-.025em!important}
  .kdx-rank__head h2,.kdx-compare__head h2,.kdx-buildgap__head h2,.kdx-causal__head h2,.kdx-method__head h2{max-width:13.8ch!important}
  .kdx-story__intro p,.kdx-pulse__head>p,.kdx-maplab__head>p,.kdx-compare__head>p,.kdx-buildgap__head>p,.kdx-causal__head>p,.kdx-method__head>p{font-size:13px!important;line-height:1.45!important;max-width:none!important}

  .kdx-carousel-controls{display:grid!important;grid-template-columns:48px 1fr 48px!important;align-items:center!important;gap:10px!important;margin-top:10px!important}
  .kdx-carousel-controls button{width:48px!important;height:48px!important;min-height:48px!important;font-size:22px!important;border-radius:14px!important}
  .kdx-carousel-controls span{font-size:12px!important;letter-spacing:.08em!important}
  .kdx-carousel-dots{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}
  .kdx-carousel-dots button{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:0;background:transparent;cursor:pointer}
  .kdx-carousel-dots button span{display:block;width:7px;height:7px;border-radius:999px;background:rgba(255,255,255,.28);transition:transform .18s ease,background .18s ease,box-shadow .18s ease}
  .kdx-carousel-dots button.is-active span{transform:scale(1.12);background:#FEC300;box-shadow:0 0 0 3px rgba(254,195,0,.12)}

  .kdx-detail-dialog{font-size:13px!important;line-height:1.5!important}
  .kdx-dialog-bar h2{font-size:22px!important;line-height:1.05!important}
  .kdx-dialog-content{padding:16px 18px 24px!important}
  .kdx-dialog-content :is(p,small,blockquote,li){font-size:13px!important;line-height:1.55!important}
  .kdx-dialog-content blockquote{margin:10px 0!important;padding:10px 12px!important;border-left:2px solid #FEC300!important;background:rgba(254,195,0,.06)!important}

  .kdx-pulse__track>.kdx-mobile-card{flex-basis:calc(92% - 12px)!important}
  .kdx-pulse__item{min-height:236px!important;justify-content:space-between!important}
  .kdx-pulse__item span{font-size:10px!important;line-height:1.18!important}
  .kdx-pulse__item strong{font-size:74px!important;line-height:.86!important}
  .kdx-pulse__item i{font-size:10px!important}
  .kdx-pulse__detail [data-value]{font-size:42px!important;line-height:.92!important}

  .kdx-story__steps>.kdx-mobile-card{flex-basis:calc(92% - 12px)!important}
  .kdx-story__step{padding:16px!important;border-radius:14px!important}
  .kdx-story__step>span{font-size:28px!important}
  .kdx-story__step h3{font-size:18px!important;line-height:1.03!important;margin:2px 0 8px!important}
  .kdx-story__step p{font-size:13px!important;line-height:1.46!important}
  .kdx-story__step details summary,.kdx-story__caption .kdx-context-button{font-size:12px!important}
  .kdx-story__caption p{font-size:13px!important;line-height:1.45!important}

  .kdx-curiosity__card{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
  .kdx-curiosity__visual{display:flex!important;order:-1!important;min-height:220px!important;border-radius:18px!important;overflow:hidden!important}
  .kdx-curiosity__visual img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
  .kdx-curiosity__visual:not(.has-image){min-height:180px!important}
  .kdx-curiosity__content{padding:0!important}
  .kdx-curiosity__counter{font-size:12px!important;letter-spacing:.08em!important}
  .kdx-curiosity__content h3{font-size:20px!important;line-height:1.02!important}
  .kdx-curiosity__reveal p,.kdx-curiosity__reveal blockquote b{font-size:13px!important;line-height:1.46!important}
  .kdx-curiosity__next{min-height:50px!important;padding:0 16px!important;border-radius:14px!important;font-size:14px!important}

  .kdx-maplab__map,.kdx-maplab__map svg{height:clamp(280px,42svh,350px)!important}
  .kdx-maplab__panel{padding:9px 11px!important;gap:2px 10px!important}
  .kdx-maplab__panel h3{font-size:18px!important;line-height:1!important}
  .kdx-maplab__panel>strong{font-size:30px!important;line-height:.9!important}
  .kdx-maplab__mini{margin-top:2px!important}

  .kdx-rank__head{max-width:none!important}
  .kdx-rank__head h2{max-width:13.8ch!important}

  .kdx-compare .kdx-compare__controls{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px 7px!important}
  .kdx-compare .kdx-compare__controls>label:nth-of-type(1){grid-column:1!important;grid-row:1!important}
  .kdx-compare .kdx-compare__controls>label:nth-of-type(4){grid-column:2!important;grid-row:1!important}
  .kdx-compare .kdx-compare__controls>label:nth-of-type(2){grid-column:1!important;grid-row:2!important}
  .kdx-compare .kdx-compare__controls>label:nth-of-type(3){grid-column:2!important;grid-row:2!important}
  .kdx-compare .kdx-compare__controls>fieldset{grid-column:1/-1!important;grid-row:3!important}
  .kdx-compare .kdx-compare__controls .kdx-select-wrap select{height:42px!important;min-height:42px!important;font-size:12px!important}
  .kdx-compare .kdx-compare__controls fieldset button{height:38px!important;min-height:38px!important;font-size:10px!important;padding:5px 6px!important}

  .kdx-buildgap__year{font-size:28px!important;line-height:.95!important;white-space:nowrap!important;letter-spacing:-.04em!important}
  .kdx-buildgap__metrics strong{font-size:16px!important}
  .kdx-buildgap__annual strong,.kdx-buildgap__cumulative strong{font-size:20px!important;line-height:.95!important}
  .kdx-buildgap__cumulative{display:block!important}

  .kdx-causal__tabs>.kdx-mobile-card{flex-basis:calc(82% - 12px)!important}
  .kdx-causal__tabs button{min-height:64px!important;font-size:17px!important;justify-content:flex-start!important;padding:0 18px!important}
  .kdx-causal__stage [data-causal-title]{font-size:28px!important;line-height:.94!important;text-wrap:balance}
  .kdx-causal__stage [data-causal-copy]{font-size:13px!important;line-height:1.45!important}
  .kdx-causal__live{padding:10px 12px!important}
  .kdx-causal__live span{font-size:10px!important}
  .kdx-causal__live strong{font-size:18px!important}

  .kdx-method__grid article h3{font-size:22px!important;line-height:.98!important}
  .kdx-method__grid article p{font-size:12.8px!important;line-height:1.42!important}
}

/* rc.4 refinements — stronger dialog contrast and tighter adaptation across mobile sizes */
.kdx-detail-dialog .kdx-dialog-content :is(strong,b,dt,th,td,li,span,small,i,em){color:#ECECF1}
.kdx-detail-dialog .kdx-dialog-content mark{color:#FEC300!important;background:rgba(254,195,0,.10)!important;padding:0 .18em;border-radius:.25em}
.kdx-detail-dialog .kdx-dialog-content :is(h1,h2,h3,h4){color:#FFF!important}
.kdx-detail-dialog .kdx-dialog-content :is(table,thead,tbody,tr,th,td){border-color:rgba(255,255,255,.12)!important}
.kdx-detail-dialog .kdx-dialog-content strong{font-weight:800}
.kdx-detail-dialog .kdx-dialog-content .kdx-universe__foreign-flow,
.kdx-detail-dialog .kdx-dialog-content .kdx-universe__meta,
.kdx-detail-dialog .kdx-dialog-content .kdx-universe__hero,
.kdx-detail-dialog .kdx-dialog-content .kdx-maplab__panel,
.kdx-detail-dialog .kdx-dialog-content .kdx-pulse__detail,
.kdx-detail-dialog .kdx-dialog-content .kdx-buildgap__summary,
.kdx-detail-dialog .kdx-dialog-content .kdx-curiosity__reveal,
.kdx-detail-dialog .kdx-dialog-content .kdx-compare__reading{background:#17181D!important;color:#ECECF1!important;border-color:rgba(255,255,255,.12)!important}
.kdx-detail-dialog .kdx-dialog-content .kdx-universe__foreign-flow :is(strong,b,small,span),
.kdx-detail-dialog .kdx-dialog-content .kdx-universe__meta :is(strong,b,small,span),
.kdx-detail-dialog .kdx-dialog-content .kdx-universe__hero :is(strong,b,small,span),
.kdx-detail-dialog .kdx-dialog-content .kdx-maplab__panel :is(strong,b,small,span),
.kdx-detail-dialog .kdx-dialog-content .kdx-pulse__detail :is(strong,b,small,span),
.kdx-detail-dialog .kdx-dialog-content .kdx-buildgap__summary :is(strong,b,small,span),
.kdx-detail-dialog .kdx-dialog-content .kdx-compare__reading :is(strong,b,small,span){color:#ECECF1!important}
.kdx-detail-dialog .kdx-dialog-content .kdx-universe__foreign-flow strong,
.kdx-detail-dialog .kdx-dialog-content .kdx-universe__hero strong,
.kdx-detail-dialog .kdx-dialog-content .kdx-buildgap__summary strong,
.kdx-detail-dialog .kdx-dialog-content .kdx-pulse__detail [data-value],
.kdx-detail-dialog .kdx-dialog-content .kdx-maplab__panel>strong{color:#FFF!important}
.kdx-detail-dialog .kdx-dialog-content .kdx-universe__foreign-flow b,
.kdx-detail-dialog .kdx-dialog-content .kdx-universe__foreign-flow small{color:#CACAD3!important}

@media (max-width:359px){
  .kdx-scene-body .kdx:not(.kdx-nav){padding-block:16px!important}
  .kdx-scene-body .kdx-shell{width:calc(100% - 16px)!important}
  .kdx-pulse__head h2,.kdx-story__intro h2,.kdx-maplab__head h2,.kdx-rank__head h2,.kdx-compare__head h2,.kdx-buildgap__head h2,.kdx-causal__head h2,.kdx-method__head h2{font-size:clamp(31px,8vw,35px)!important;line-height:.96!important}
  .kdx-story__step h3,.kdx-curiosity__content h3{font-size:18px!important}
  .kdx-pulse__item strong{font-size:62px!important}
  .kdx-detail-dialog{width:calc(100% - 8px)!important}
  .kdx-carousel-controls{gap:8px!important}
  .kdx-carousel-controls button{width:44px!important;height:44px!important;min-height:44px!important}
  .kdx-maplab__map,.kdx-maplab__map svg{height:clamp(250px,38svh,310px)!important}
  .kdx-buildgap__year{font-size:22px!important}
}
@media (min-width:360px) and (max-width:430px){
  .kdx-scene-body .kdx-shell{width:calc(100% - 18px)!important}
}
@media (max-height:760px){
  .kdx-scene-body .kdx:not(.kdx-nav){padding-block:14px!important}
  .kdx-scene-body .kdx [class$="__head"],.kdx-scene-body .kdx [class$="__intro"]{margin-bottom:8px!important}
  .kdx-pulse__head h2,.kdx-story__intro h2,.kdx-maplab__head h2,.kdx-rank__head h2,.kdx-compare__head h2,.kdx-buildgap__head h2,.kdx-causal__head h2,.kdx-method__head h2{font-size:clamp(30px,6.8vw,34px)!important}
  .kdx-story .kdx-shell,.kdx-pulse .kdx-shell,.kdx-maplab .kdx-shell,.kdx-rank .kdx-shell,.kdx-compare .kdx-shell,.kdx-bubbles .kdx-shell,.kdx-madrid .kdx-shell,.kdx-cityscope .kdx-shell,.kdx-tension .kdx-shell,.kdx-universe .kdx-shell,.kdx-buildgap .kdx-shell,.kdx-curiosity .kdx-shell,.kdx-causal .kdx-shell,.kdx-method .kdx-shell{min-height:calc(var(--kdx-scene-height) - 14px)!important}
  .kdx-story__step,.kdx-method__grid article,.kdx-pulse__item,.kdx-curiosity__card{padding:14px!important}
  .kdx-maplab__map,.kdx-maplab__map svg{height:clamp(236px,36svh,300px)!important}
  .kdx-buildgap__chart{max-height:32svh!important}
}
@media (min-height:880px) and (max-width:430px){
  .kdx-pulse__head h2,.kdx-story__intro h2,.kdx-maplab__head h2,.kdx-rank__head h2,.kdx-compare__head h2,.kdx-buildgap__head h2,.kdx-causal__head h2,.kdx-method__head h2{font-size:clamp(36px,7.2vw,40px)!important}
  .kdx-story__step p,.kdx-curiosity__reveal p,.kdx-causal__stage [data-causal-copy],.kdx-method__grid article p{font-size:13.5px!important;line-height:1.5!important}
}

/* =========================================================
   3.3.10-rc.9 · MOBILE-ONLY FINAL GUARD
   Desktop HTML/CSS composition comes from the known-good rc.1.
   ========================================================= */
@media (max-width:1024px){
  /* Main chapter titles: never concatenate words around the old <br>. */
  .kdx-scene-body .kdx [class$="__head"] h2,
  .kdx-scene-body .kdx [class$="__intro"] h2,
  .kdx-scene-body .kdx .kdx-method__head h2,
  .kdx-scene-body .kdx .kdx-causal__head h2,
  .kdx-scene-body .kdx .kdx-rank__head h2,
  .kdx-scene-body .kdx .kdx-compare__head h2,
  .kdx-scene-body .kdx .kdx-tension__head h2,
  .kdx-scene-body .kdx .kdx-universe__head h2,
  .kdx-scene-body .kdx .kdx-buildgap__head h2{
    text-transform:uppercase!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    text-wrap:balance;
  }
  .kdx-scene-body .kdx h2 br{display:block!important}
  .kdx-scene-body .kdx h2 mark{display:inline!important}

  /* Internal card headlines read as sentences, not shouting labels. */
  .kdx-story__step h3,.kdx-method__grid article h3{ text-transform:lowercase!important; }
  .kdx-story__step h3::first-letter,.kdx-method__grid article h3::first-letter{ text-transform:uppercase!important; }

  /* Carousel navigation is a hint, not a protagonist. */
  .kdx-story .kdx-carousel-controls,
  .kdx-causal .kdx-carousel-controls,
  .kdx-method .kdx-carousel-controls,
  .kdx-pulse .kdx-carousel-controls{
    display:grid!important;
    grid-template-columns:30px auto 30px!important;
    justify-content:center!important;
    align-items:center!important;
    gap:10px!important;
    margin:8px auto 2px!important;
    width:max-content!important;
  }
  .kdx-story .kdx-carousel-controls button,
  .kdx-causal .kdx-carousel-controls button,
  .kdx-method .kdx-carousel-controls button,
  .kdx-pulse .kdx-carousel-controls button{
    width:30px!important;height:30px!important;min-height:30px!important;
    border-radius:9px!important;padding:0!important;font-size:14px!important;
    opacity:.78;
  }
  .kdx-story .kdx-carousel-controls>span,
  .kdx-causal .kdx-carousel-controls>span,
  .kdx-method .kdx-carousel-controls>span,
  .kdx-pulse .kdx-carousel-controls>span{
    min-width:34px;text-align:center;font-size:10px!important;letter-spacing:.04em!important;color:#bdbdc4!important;
  }
  .kdx-story .kdx-carousel-dots,
  .kdx-causal .kdx-carousel-dots,
  .kdx-method .kdx-carousel-dots,
  .kdx-pulse .kdx-carousel-dots{margin:7px auto 4px!important;gap:7px!important}
  .kdx-story .kdx-carousel-dots button,
  .kdx-causal .kdx-carousel-dots button,
  .kdx-method .kdx-carousel-dots button,
  .kdx-pulse .kdx-carousel-dots button{width:16px!important;height:16px!important;min-height:16px!important}
  .kdx-story .kdx-carousel-dots button span,
  .kdx-causal .kdx-carousel-dots button span,
  .kdx-method .kdx-carousel-dots button span,
  .kdx-pulse .kdx-carousel-dots button span{width:6px!important;height:6px!important}

  /* The card itself sits in the middle and is meant to be dragged. */
  .kdx-story__steps,.kdx-causal__tabs,.kdx-method__grid{
    scroll-padding-inline:6%!important;
    padding-inline:6%!important;
  }
  .kdx-story__steps>.kdx-mobile-card,
  .kdx-causal__tabs>.kdx-mobile-card,
  .kdx-method__grid>.kdx-mobile-card{
    flex-basis:88%!important;
    scroll-snap-align:center!important;
  }

  /* Inline published values must always pass visual contrast. */
  .kdx-causal__live strong,.kdx-causal__live small,.kdx-causal__live span{color:#f4f4f6!important;opacity:1!important}
  .kdx-causal__live strong{font-size:20px!important}
  .kdx-tension__movement strong,.kdx-tension__legend-share b{color:#fff!important;opacity:1!important}

  /* Tension block: city choices remain visible while data is loading. */
  .kdx-tension__cities{display:flex!important;visibility:visible!important;min-height:39px!important}
  .kdx-tension__cities button.is-loading{opacity:.62}
  .kdx-tension__cities button.is-loading::after{content:' ·';animation:kdxLoadPulse 1s infinite alternate}
  @keyframes kdxLoadPulse{to{opacity:.2}}
}

@media (max-width:767px){
  /* Strong magnetic chapters only on phones. */
  html.kdx-scene-html{scroll-snap-type:y mandatory!important}
  .kdx-scene-body .kdx.kdx-snap-fit{scroll-snap-align:start!important;scroll-snap-stop:always!important}

  /* Keep every chapter responsive to both narrow and short phones. */
  .kdx-scene-body .kdx-shell{width:calc(100% - clamp(16px,4vw,28px))!important}
  .kdx-scene-body .kdx [class$="__head"] h2,
  .kdx-scene-body .kdx [class$="__intro"] h2,
  .kdx-scene-body .kdx .kdx-method__head h2,
  .kdx-scene-body .kdx .kdx-causal__head h2{
    font-size:clamp(29px,8.6vw,40px)!important;line-height:.94!important;
  }

  .kdx-story__steps>.kdx-mobile-card{flex-basis:90%!important}
  .kdx-story__step{padding:14px!important}
  .kdx-story__step h3{font-size:clamp(18px,5.3vw,23px)!important;line-height:1.02!important}
  .kdx-story__step p{font-size:clamp(12px,3.5vw,14px)!important;line-height:1.45!important}

  /* Keep the two numeric cards readable without stealing the whole chapter. */
  .kdx-story-board{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:12px 8px!important;gap:8px!important}
  .kdx-story-measure{padding:12px 6px!important}
  .kdx-story-measure>span{font-size:clamp(8px,2.5vw,10px)!important}
  .kdx-story-measure>strong{font-size:clamp(27px,8vw,38px)!important}
  .kdx-story__caption p{font-size:clamp(11px,3.3vw,13px)!important;line-height:1.45!important}

  /* Tension chapter uses the full useful width once data arrives. */
  .kdx-tension .kdx-shell{justify-content:flex-start!important;padding-top:clamp(8px,2vh,20px)!important}
  .kdx-tension__layout{margin-top:5px!important}
  .kdx-tension__stage{padding:10px!important}
  .kdx-tension__dots,.kdx-tension__dots.is-empty{
    width:min(232px,72vw)!important;
    height:auto!important;min-height:0!important;aspect-ratio:1.27/1!important;
    grid-template-columns:repeat(10,minmax(12px,1fr))!important;
    grid-auto-rows:auto!important;
  }

  /* Curiosity keeps images when the question has one, but never overflows. */
  .kdx-curiosity__visual.has-image{display:flex!important;min-height:clamp(130px,21svh,210px)!important}
  .kdx-curiosity__visual.has-image img{width:100%!important;height:100%!important;object-fit:cover!important}
  .kdx-curiosity__next{min-height:46px!important;font-size:13px!important}
}

@media (max-width:359px), (max-height:700px){
  .kdx-story .kdx-carousel-controls button,.kdx-causal .kdx-carousel-controls button,.kdx-method .kdx-carousel-controls button,.kdx-pulse .kdx-carousel-controls button{width:26px!important;height:26px!important;min-height:26px!important;font-size:12px!important}
  .kdx-story .kdx-carousel-controls,.kdx-causal .kdx-carousel-controls,.kdx-method .kdx-carousel-controls,.kdx-pulse .kdx-carousel-controls{grid-template-columns:26px auto 26px!important;gap:7px!important}
  .kdx-scene-body .kdx [class$="__head"] h2,.kdx-scene-body .kdx [class$="__intro"] h2,.kdx-scene-body .kdx .kdx-method__head h2,.kdx-scene-body .kdx .kdx-causal__head h2{font-size:clamp(26px,8vw,32px)!important}
  .kdx-story__step p{font-size:11.5px!important;line-height:1.38!important}
}

/* 3.3.10-rc.9 — phone-only refinements. Desktop/tablet untouched by these rules. */
@media (max-width:767px){
  /* CURIOSITIES: reset is handled in JS; image becomes a compact visual header, not a giant tail block. */
  .kdx-curiosity .kdx-curiosity__card{display:flex!important;flex-direction:column!important;gap:0!important;overflow:hidden!important;position:relative!important}
  .kdx-curiosity .kdx-curiosity__visual.has-image{display:flex!important;order:-1!important;position:relative!important;width:100%!important;height:clamp(105px,15svh,145px)!important;min-height:0!important;border-radius:16px 16px 0 0!important;overflow:hidden!important;margin:0!important}
  .kdx-curiosity .kdx-curiosity__visual.has-image::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.24));pointer-events:none}
  .kdx-curiosity .kdx-curiosity__visual.has-image img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 48%!important}
  .kdx-curiosity .kdx-curiosity__visual.has-image .kdx-curiosity__signal{display:none!important}
  .kdx-curiosity .kdx-curiosity__visual.has-image .kdx-curiosity__visual-caption{position:absolute!important;z-index:2!important;left:12px!important;right:12px!important;bottom:8px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;padding:0!important;color:#fff!important;background:transparent!important}
  .kdx-curiosity .kdx-curiosity__visual.has-image .kdx-curiosity__visual-caption span{font-size:7px!important;color:#FEC300!important;letter-spacing:.13em!important}
  .kdx-curiosity .kdx-curiosity__visual.has-image .kdx-curiosity__visual-caption b{font-size:19px!important;color:#fff!important}
  .kdx-curiosity .kdx-curiosity__visual:not(.has-image){display:none!important}
  .kdx-curiosity .kdx-curiosity__content{padding:clamp(12px,2.8vw,16px)!important}
  .kdx-curiosity .kdx-curiosity__next{display:flex!important;width:auto!important;max-width:235px!important;min-height:40px!important;margin:10px auto 0!important;padding:0 16px!important;border-radius:12px!important;font-size:10px!important;letter-spacing:.07em!important;opacity:.88!important}
  .kdx-curiosity [data-kdx-curiosity].is-answered .kdx-curiosity__card{cursor:pointer}
  .kdx-curiosity [data-kdx-curiosity].is-answered .kdx-curiosity__card::after{content:'TOCA EN CUALQUIER PARTE PARA CONTINUAR';display:block;padding:7px 12px 9px;text-align:center;font:800 7px/1.2 Inter,Arial,sans-serif;letter-spacing:.11em;color:rgba(0,0,0,.52)}
  .kdx-curiosity [data-kdx-curiosity].is-cycle-summary .kdx-curiosity__card::after{display:none}

  /* RANKING: restore proportional blue/red bars below each datum without losing compactness. */
  .kdx-race-row{grid-template-columns:27px minmax(0,1fr) auto!important;grid-template-rows:auto 5px!important;gap:4px 7px!important;min-height:44px!important;padding:5px 5px 6px!important}
  .kdx-race-row__pos{grid-column:1!important;grid-row:1!important;align-self:center!important}
  .kdx-race-row__name{grid-column:2!important;grid-row:1!important;align-self:center!important}
  .kdx-race-row__value{grid-column:3!important;grid-row:1!important;align-self:center!important}
  .kdx-race-row__track{display:block!important;grid-column:2/4!important;grid-row:2!important;position:relative!important;height:4px!important;margin:0!important;border-radius:999px!important;background:rgba(255,255,255,.07)!important;overflow:hidden!important}
  .kdx-race-row__axis{display:none!important}
  .kdx-race-row__bar{display:block!important;height:100%!important;min-width:8px!important;border-radius:999px!important;opacity:.95!important}

  /* SIX CITIES / BUBBLES: canvas gets room; names are rendered larger by the mobile-only JS branch. */
  .kdx-cityscope__field canvas,.kdx-madrid__field canvas,.kdx-bubbles__world>canvas{height:clamp(330px,43svh,410px)!important}

  /* HOUSING GAP: remove inherited desktop flex stretch and use the vacant space for the plot. */
  .kdx-buildgap__chart{display:block!important;min-height:0!important;height:auto!important;padding:8px 8px 5px!important}
  .kdx-buildgap__charttop{margin:0!important;padding:0 2px 5px!important}
  .kdx-buildgap__chart svg{display:block!important;width:100%!important;height:clamp(300px,37svh,380px)!important;min-height:0!important;max-height:none!important;flex:none!important;margin:0!important}
  .kdx-buildgap__panel{grid-template-columns:58px minmax(0,1fr)!important;padding:8px 9px!important;gap:4px 7px!important}
  .kdx-buildgap__cumulative{display:flex!important;grid-column:1/-1!important;grid-row:3!important;align-items:baseline!important;justify-content:space-between!important;gap:8px!important;margin:2px 0 0!important;padding:6px 8px!important;border-radius:7px!important;background:#09090A!important;color:#fff!important}
  .kdx-buildgap__cumulative span{font-size:6px!important;color:#FEC300!important;letter-spacing:.08em!important}
  .kdx-buildgap__cumulative strong{margin:0!important;font-size:18px!important;color:#fff!important;white-space:nowrap!important}
  .kdx-buildgap__cumulative small{display:none!important}
  .kdx-buildgap__panel .kdx-context-button{grid-row:4!important;margin-top:1px!important}

  /* SCENARIO CARDS: same size, centered label, directional hints inside the card. */
  .kdx-causal__tabs>.kdx-mobile-card{position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;min-height:74px!important;height:74px!important;padding:0 46px!important;text-align:center!important;font-size:clamp(15px,4.5vw,19px)!important;font-weight:900!important;letter-spacing:.015em!important}
  .kdx-causal__tabs>.kdx-mobile-card>span{display:none!important}
  .kdx-causal__tabs>.kdx-mobile-card::before,.kdx-causal__tabs>.kdx-mobile-card::after{position:absolute;top:50%;transform:translateY(-50%);font:500 18px/1 Inter,Arial,sans-serif;opacity:.82}
  .kdx-causal__tabs>.kdx-mobile-card::before{content:'';width:18px;height:18px;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%2219%22%20y1%3D%2212%22%20x2%3D%225%22%20y2%3D%2212%22%2F%3E%3Cpolyline%20points%3D%2212%2019%205%2012%2012%205%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%2219%22%20y1%3D%2212%22%20x2%3D%225%22%20y2%3D%2212%22%2F%3E%3Cpolyline%20points%3D%2212%2019%205%2012%2012%205%22%2F%3E%3C%2Fsvg%3E");-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;left:17px}
  .kdx-causal__tabs>.kdx-mobile-card::after{content:'';width:18px;height:18px;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%225%22%20y1%3D%2212%22%20x2%3D%2219%22%20y2%3D%2212%22%2F%3E%3Cpolyline%20points%3D%2212%205%2019%2012%2012%2019%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%225%22%20y1%3D%2212%22%20x2%3D%2219%22%20y2%3D%2212%22%2F%3E%3Cpolyline%20points%3D%2212%205%2019%2012%2012%2019%22%2F%3E%3C%2Fsvg%3E");-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;right:17px}
  .kdx-causal__tabs>.kdx-mobile-card:first-of-type::before{content:none}
  .kdx-causal__tabs>.kdx-mobile-card:last-of-type::after{content:none}
  .kdx-causal .kdx-carousel-controls{grid-template-columns:30px auto 30px!important;justify-content:center!important;gap:7px!important;margin-top:7px!important}
  .kdx-causal .kdx-carousel-controls button{width:30px!important;height:30px!important;min-height:30px!important;border-radius:9px!important;font-size:12px!important;opacity:.68!important}
  .kdx-causal .kdx-carousel-controls span{font-size:9px!important;letter-spacing:.08em!important}
  .kdx-causal .kdx-carousel-dots{margin-top:5px!important;gap:6px!important}
  .kdx-causal .kdx-carousel-dots button{width:15px!important;height:15px!important}
  .kdx-causal .kdx-carousel-dots button span{width:6px!important;height:6px!important}

  /* TOPES: keep the most useful official Barcelona figures on-screen; methodology/history remain in context. */
  .kdx-tension__panel{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:5px 10px!important;padding:10px 12px!important}
  .kdx-tension__panel h3{grid-column:1!important;grid-row:1!important;align-self:center!important;font-size:21px!important}
  .kdx-tension__panel>.kdx-context-button{grid-column:2!important;grid-row:1!important;align-self:center!important;margin:0!important;font-size:10px!important;white-space:nowrap!important}
  .kdx-tension__official:not([hidden]){grid-column:1/-1!important;grid-row:2!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;margin:2px 0 0!important;padding:7px!important;border-top:1px solid rgba(255,255,255,.10)!important}
  .kdx-tension__official>b{grid-column:1/-1!important;font-size:6.5px!important;color:#FEC300!important;letter-spacing:.09em!important;margin-bottom:1px!important}
  .kdx-tension__official>div{min-width:0!important;padding:5px 6px!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:7px!important;background:#121216!important}
  .kdx-tension__official>div span{display:block!important;font-size:5.8px!important;color:#9a9aa2!important;letter-spacing:.05em!important;white-space:normal!important}
  .kdx-tension__official>div strong{display:block!important;margin-top:3px!important;font:400 clamp(15px,4.3vw,20px)/1 Anton,Impact,sans-serif!important;color:#fff!important;white-space:nowrap!important}
  .kdx-tension__official-wide{grid-column:auto!important}
  .kdx-tension__history{display:none!important}
}

@media (max-width:359px), (max-height:720px){
  .kdx-curiosity .kdx-curiosity__visual.has-image{height:90px!important}
  .kdx-curiosity .kdx-curiosity__next{min-height:36px!important;margin-top:6px!important;font-size:9px!important}
  .kdx-curiosity [data-kdx-curiosity].is-answered .kdx-curiosity__card::after{font-size:6px!important;padding:5px!important}
  .kdx-buildgap__chart svg{height:clamp(250px,34svh,310px)!important}
  .kdx-buildgap__cumulative strong{font-size:16px!important}
  .kdx-causal__tabs>.kdx-mobile-card{height:64px!important;min-height:64px!important;font-size:14px!important}
  .kdx-tension__official>div{padding:4px!important}
  .kdx-tension__official>div strong{font-size:15px!important}
}

/* 3.3.10-rc.9 — phone-only finishing pass. Desktop remains untouched. */
@media (max-width:767px){
  /* Curiosities: answer explanation is useful context, so keep it visible on-card.
     Conclusion/source remain behind a compact disclosure button. */
  .kdx-curiosity .kdx-curiosity__reveal>p:not(.kdx-secondary){display:block!important;margin:8px 0 0!important;font-size:clamp(11px,3.05vw,13px)!important;line-height:1.42!important;color:rgba(9,9,10,.78)!important}
  .kdx-curiosity .kdx-curiosity__reveal>.kdx-context-button{display:inline-flex!important;margin-top:7px!important;font-size:10px!important;color:#09090A!important;text-underline-offset:3px!important}
  .kdx-curiosity .kdx-curiosity__result{margin-bottom:0!important}
  .kdx-curiosity .kdx-curiosity__next{margin-top:8px!important}

  /* Topes: Barcelona keeps three official cards, equal width, in one row. */
  .kdx-tension__official:not([hidden]){grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:stretch!important}
  .kdx-tension__official>.kdx-tension__official-wide{grid-column:auto!important}
  .kdx-tension__official>div{display:flex!important;flex-direction:column!important;justify-content:space-between!important;min-height:66px!important;padding:6px!important}
  .kdx-tension__official>div strong{font-size:clamp(14px,4vw,18px)!important;line-height:1!important}
  .kdx-tension__official [data-tension-rent].kdx-measure{font-size:clamp(14px,4vw,18px)!important;line-height:1!important}
  .kdx-tension__official [data-tension-rent] .kdx-measure__number{font-size:1em!important}
  .kdx-tension__official [data-tension-rent] .kdx-measure__unit{font-size:5.5px!important;margin-top:3px!important}
  /* Other cities have no official trio: use the free space for the interpretation itself. */
  .kdx-tension__panel:not(.has-official)>[data-tension-reading]{display:block!important;grid-column:1/-1!important;grid-row:2!important;margin:4px 0 0!important;padding-top:7px!important;border-top:1px solid rgba(255,255,255,.10)!important;color:#d7d7dc!important;font-size:clamp(10px,2.85vw,12px)!important;line-height:1.42!important}
  .kdx-tension__panel:not(.has-official)>.kdx-context-button{grid-row:3!important;grid-column:1/-1!important;justify-self:start!important;margin-top:3px!important}

  /* Construction / households: chart and summary are two real stacked blocks.
     The SVG can be large, but it is never allowed to paint into the yellow panel. */
  .kdx-buildgap__stage{display:flex!important;flex-direction:column!important;align-items:stretch!important;grid-auto-rows:unset!important;gap:8px!important;overflow:visible!important}
  .kdx-buildgap__chart{display:flex!important;flex-direction:column!important;flex:0 0 auto!important;height:clamp(340px,42svh,430px)!important;min-height:clamp(340px,42svh,430px)!important;max-height:none!important;overflow:hidden!important;padding:8px 8px 6px!important;margin:0!important}
  .kdx-buildgap__charttop{flex:0 0 auto!important}
  .kdx-buildgap__chart svg{display:block!important;flex:1 1 auto!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;overflow:hidden!important}
  .kdx-buildgap__panel{position:relative!important;z-index:2!important;flex:0 0 auto!important;height:auto!important;min-height:0!important;margin:0!important}
}

@media (max-width:359px), (max-height:760px){
  .kdx-buildgap__chart{height:clamp(285px,38svh,330px)!important;min-height:clamp(285px,38svh,330px)!important}
  .kdx-tension__official>div{min-height:58px!important;padding:5px!important}
  .kdx-tension__official>div span{font-size:5.2px!important}
  .kdx-tension__official>div strong,.kdx-tension__official [data-tension-rent].kdx-measure{font-size:14px!important}
  .kdx-curiosity .kdx-curiosity__reveal>p:not(.kdx-secondary){font-size:10.5px!important;line-height:1.35!important}
}

/* 3.3.10-rc.9 — final mobile contrast + desktop separator cleanup. */
@media (max-width:767px){
  /* The two dark curiosity themes must never inherit the black explanation
     color used by the yellow/light curiosity. */
  .kdx-curiosity--market .kdx-curiosity__reveal>p:not(.kdx-secondary),
  .kdx-curiosity--future .kdx-curiosity__reveal>p:not(.kdx-secondary){
    color:#C8C8CF!important;
  }
  .kdx-curiosity--market .kdx-curiosity__reveal>.kdx-context-button,
  .kdx-curiosity--future .kdx-curiosity__reveal>.kdx-context-button{
    color:#F2F2F4!important;
  }
  .kdx-curiosity--market [data-kdx-curiosity].is-answered .kdx-curiosity__card::after,
  .kdx-curiosity--future [data-kdx-curiosity].is-answered .kdx-curiosity__card::after{
    color:rgba(255,255,255,.42)!important;
  }
}

/* Desktop stays compositionally untouched. This only removes the full-width
   dark separator/chrome around the DATA navigation so it cannot read as a
   thick black line between chapters. The links and navigation remain. */
@media (min-width:1025px){
  .kdx-nav{
    border-top:0!important;
    border-bottom:0!important;
    box-shadow:none!important;
    background:transparent!important;
    backdrop-filter:none!important;
  }
  .kdx-nav::before,.kdx-nav::after{display:none!important}
  .kdx-nav__inner{
    background:rgba(4,4,5,.92)!important;
    border:1px solid rgba(255,255,255,.08)!important;
    border-radius:999px!important;
    padding:4px 7px!important;
  }
  .kdx-nav-host,.kdx-module-host:has(.kdx-nav){
    border:0!important;
    box-shadow:none!important;
  }
}

/* 3.3.13-rc.12 — DESKTOP ONLY: remove phantom gaps between DATA chapters.
   Mobile/tablet are intentionally untouched. */
@media (min-width:1025px){
  /* Gutenberg/Kadence wrappers can add a 20–32px block gap between shortcode
     rows. DATA already owns its own section spacing, so those external gaps
     should be zero. Scope this only to DATA-owned wrappers. */
  .entry-content:has(.kdx){
    --wp--style--block-gap:0px!important;
    row-gap:0!important;
  }
  .entry-content .wp-block-shortcode:has(> .kdx),
  .entry-content .koko-data-v14-row:has(.kdx),
  .entry-content .koko-data-v14-row .kt-row-layout-inner:has(.kdx),
  .entry-content .koko-data-v14-row .kt-row-column-wrap:has(.kdx),
  .entry-content .koko-data-v14-row .wp-block-kadence-column:has(.kdx),
  .entry-content .koko-data-v14-row .kt-inside-inner-col:has(.kdx){
    margin-block:0!important;
    padding-block:0!important;
    row-gap:0!important;
  }

  /* Keep the desktop design, but remove the oversized 120–130px chapter
     boundary padding that was reading as empty bands between sections. */
  .kdx-pulse,
  .kdx-story,
  .kdx-system,
  .kdx-maplab,
  .kdx-playground,
  .kdx-quiz,
  .kdx-hundred,
  .kdx-rank,
  .kdx-bubbles,
  .kdx-compare,
  .kdx-madrid,
  .kdx-cityscope,
  .kdx-tension,
  .kdx-universe,
  .kdx-buildgap,
  .kdx-yield,
  .kdx-who,
  .kdx-causal,
  .kdx-method{
    padding-top:72px!important;
    padding-bottom:72px!important;
    margin-block:0!important;
  }
  .kdx-curiosity{padding-top:64px!important;padding-bottom:64px!important;margin-block:0!important}
  .kdx-surprise{padding-top:56px!important;padding-bottom:56px!important;margin-block:0!important}

  /* No black separator strip around the internal DATA nav. */
  .kdx-nav{margin-block:0!important;padding-block:0!important}
}

/* 3.3.15-rc.14 — MOBILE ONLY: 90 segundos editorial hierarchy. Desktop/tablet base untouched. */
@media (max-width:767px){
  /* The horizontal scene card now contains the scene title + its real explanation. */
  .kdx-story .kdx-story__step{
    min-height:0!important;
    padding:12px 14px 13px!important;
    display:block!important;
  }
  .kdx-story .kdx-story__step h3{
    margin:0 0 7px!important;
    font-size:clamp(16px,4.6vw,19px)!important;
    line-height:1.06!important;
    color:#FEC300!important;
  }
  .kdx-story .kdx-story__step>p{
    display:block!important;
    margin:0!important;
    color:#D7D7DC!important;
    font-size:clamp(11.5px,3.15vw,13px)!important;
    line-height:1.42!important;
    max-width:none!important;
  }

  /* Reading / watch move to the bottom sheet; the data card stays factual and compact. */
  .kdx-story .kdx-story__caption{display:none!important}
  .kdx-story .kdx-story-measure>a{display:none!important}
  .kdx-story .kdx-story-mobile-context{display:none!important}
  .kdx-story .kdx-story__stage>.kdx-context-button{
    margin-top:7px!important;
    font-size:11px!important;
  }

  /* Dots and 1/6 arrows behave as a single compact navigation cluster. */
  .kdx-story .kdx-story__steps{order:0!important}
  .kdx-story .kdx-carousel-dots{
    order:1!important;
    margin:3px auto 0!important;
    gap:6px!important;
  }
  .kdx-story .kdx-carousel-controls{
    order:2!important;
    margin:-1px auto 3px!important;
    gap:7px!important;
  }
  .kdx-story .kdx-story__stage{order:3!important}

  /* Bottom sheet: editorial explanation first, source last; never repeat the live figures. */
  .kdx-detail-dialog .kdx-dialog-content>.kdx-story-mobile-context{
    display:grid!important;
    gap:14px!important;
  }
  .kdx-detail-dialog .kdx-story-mobile-context section{
    display:grid!important;
    gap:4px!important;
    padding-bottom:11px!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
  }
  .kdx-detail-dialog .kdx-story-mobile-context h3{
    margin:0!important;
    color:#FEC300!important;
    font:400 18px/1.08 Anton,Impact,sans-serif!important;
  }
  .kdx-detail-dialog .kdx-story-mobile-context p{
    margin:0!important;
    color:#E0E0E5!important;
    font:400 12.5px/1.5 Inter,Arial,sans-serif!important;
  }
  .kdx-detail-dialog .kdx-story-mobile-context>a{
    min-height:40px!important;
    display:inline-flex!important;
    align-items:center!important;
    width:max-content!important;
    max-width:100%!important;
    color:#FEC300!important;
    font:700 12px/1.3 Inter,Arial,sans-serif!important;
    text-decoration:underline!important;
    text-underline-offset:4px!important;
  }
}

@media (max-width:359px), (max-height:720px){
  .kdx-story .kdx-story__step{padding:10px 12px!important}
  .kdx-story .kdx-story__step h3{font-size:15.5px!important;margin-bottom:5px!important}
  .kdx-story .kdx-story__step>p{font-size:11px!important;line-height:1.36!important}
  .kdx-story .kdx-carousel-dots{margin-top:1px!important}
  .kdx-story .kdx-carousel-controls{margin-top:-3px!important;margin-bottom:1px!important}
}


/* =========================================================
   3.3.25 · CAUSAL PHONE APP NAV
   Phone-only. Replaces the legacy card carousel with a compact
   horizontally scrollable tab bar, like a native app section picker.
   ========================================================= */
@media (max-width:767px){
  .kdx-causal__tabs.kdx-causal-app-tabs{
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
    width:100%!important;
    margin:20px 0 10px!important;
    padding:0 2px 7px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x proximity!important;
    scroll-padding-inline:2px!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x!important;
  }
  .kdx-causal__tabs.kdx-causal-app-tabs::-webkit-scrollbar{display:none!important}
  .kdx-causal__tabs.kdx-causal-app-tabs button{
    position:relative!important;
    display:inline-flex!important;
    flex:0 0 auto!important;
    width:auto!important;
    min-width:0!important;
    height:46px!important;
    min-height:46px!important;
    padding:0 14px!important;
    gap:8px!important;
    align-items:center!important;
    justify-content:center!important;
    scroll-snap-align:center!important;
    border:1px solid rgba(255,255,255,.14)!important;
    border-radius:13px!important;
    background:#101012!important;
    box-shadow:none!important;
    text-align:center!important;
    transform:none!important;
    overflow:visible!important;
    white-space:nowrap!important;
  }
  .kdx-causal__tabs.kdx-causal-app-tabs button::before,
  .kdx-causal__tabs.kdx-causal-app-tabs button::after{
    content:none!important;
    display:none!important;
    width:0!important;
    height:0!important;
    background:none!important;
    box-shadow:none!important;
  }
  .kdx-causal__tabs.kdx-causal-app-tabs button>span{
    display:block!important;
    margin:0!important;
    color:#777780!important;
    font:400 17px/1 Anton,Impact,sans-serif!important;
    letter-spacing:0!important;
  }
  .kdx-causal__tabs.kdx-causal-app-tabs button>b{
    display:block!important;
    margin:0!important;
    color:#D0D0D5!important;
    font:800 10px/1 Inter,Arial,sans-serif!important;
    letter-spacing:.075em!important;
  }
  .kdx-causal__tabs.kdx-causal-app-tabs button>i{display:none!important}
  .kdx-causal__tabs.kdx-causal-app-tabs button.is-active{
    border-color:#FEC300!important;
    background:#FEC300!important;
    box-shadow:0 7px 22px rgba(254,195,0,.14)!important;
  }
  .kdx-causal__tabs.kdx-causal-app-tabs button.is-active>span,
  .kdx-causal__tabs.kdx-causal-app-tabs button.is-active>b{color:#09090A!important}
  .kdx-causal__tabs.kdx-causal-app-tabs button:focus-visible{
    outline:2px solid #FFF!important;
    outline-offset:2px!important;
  }

  /* Causal no longer needs secondary carousel chrome on phones. */
  .kdx-causal .kdx-carousel-controls,
  .kdx-causal .kdx-carousel-dots{display:none!important}

  /* Give the content card more room now that navigation is compact. */
  .kdx-causal__stage{margin-top:4px!important}

  /* Keep the live datum readable on a real phone screen. */
  .kdx-causal__live>span{font-size:9px!important;line-height:1.2!important}
  .kdx-causal__live strong,
  .kdx-causal__live strong.kdx-measure{font-size:30px!important;line-height:.95!important;color:#FEC300!important}
  .kdx-causal__live small{font-size:9px!important;line-height:1.35!important;color:#A7A7AE!important}
}
@media (max-width:359px){
  .kdx-causal__tabs.kdx-causal-app-tabs button{height:44px!important;min-height:44px!important;padding:0 12px!important;gap:7px!important}
  .kdx-causal__tabs.kdx-causal-app-tabs button>span{font-size:16px!important}
  .kdx-causal__tabs.kdx-causal-app-tabs button>b{font-size:9px!important}
}


/* =========================================================
   3.3.27 · FINAL CHAPTER: FREE SCROLL + STICKY APP TABS
   The long causal chapter must read like an app detail screen, not a paged deck.
   ========================================================= */
@media (max-width:767px){
  /* Remove magnetic paging only across the final two chapters. JS toggles this
     once the chapter before causal reaches its natural top. */
  html.kdx-scene-html.kdx-causal-free-scroll{
    scroll-snap-type:none!important;
    overscroll-behavior-y:auto!important;
  }

  /* Sticky needs a non-clipping ancestor. The decorative mobile ring is already
     hidden, so allowing overflow here does not change the visual composition. */
  .kdx-causal{overflow:visible!important}

  /* Native-app pattern: the factor picker scrolls normally into place, then pins
     below the real site header while this chapter continues underneath it. */
  .kdx-causal__tabs.kdx-causal-app-tabs{
    position:sticky!important;
    top:calc(var(--kdx-header-offset,0px) + 8px)!important;
    z-index:42!important;
    margin:18px 0 10px!important;
    padding:7px 3px 8px!important;
    background:rgba(5,5,6,.86)!important;
    border:1px solid transparent!important;
    border-radius:14px!important;
    backdrop-filter:blur(16px) saturate(125%)!important;
    -webkit-backdrop-filter:blur(16px) saturate(125%)!important;
    touch-action:pan-x pan-y!important;
    transition:background .18s ease,border-color .18s ease,box-shadow .18s ease!important;
  }
  .kdx-causal__tabs.kdx-causal-app-tabs.is-stuck{
    background:rgba(5,5,6,.96)!important;
    border-color:rgba(255,255,255,.10)!important;
    box-shadow:0 12px 30px rgba(0,0,0,.34)!important;
  }

  /* A pinned selector should not cover the first pixels of the content card. */
  .kdx-causal__stage{scroll-margin-top:calc(var(--kdx-header-offset,0px) + 72px)!important}
}


/* =========================================================
   3.3.28 · PHONE SCROLL STABILITY + CAUSAL TAB RETURN
   Native vertical scroll-snap is disabled on phones. The JS magnet now performs
   a single bounded settle after the gesture, avoiding browser/JS double-snaps.
   ========================================================= */
@media (max-width:767px){
  html.kdx-scene-html,
  html.kdx-scene-html.kdx-causal-free-scroll{
    scroll-snap-type:none!important;
    scroll-padding-top:0!important;
    scroll-padding-bottom:0!important;
    overscroll-behavior-y:auto!important;
  }
  .kdx-scene-body .kdx:not(.kdx-nav),
  .kdx-scene-body .kdx.kdx-snap-fit,
  .kdx-scene-body .kdx.kdx-scene-overflow{
    scroll-snap-align:none!important;
    scroll-snap-stop:normal!important;
  }

  /* The sticky factor picker has no enclosing black panel. Only the tabs carry
     their own surfaces, so the control reads like a native segmented scroller. */
  .kdx-causal__tabs.kdx-causal-app-tabs,
  .kdx-causal__tabs.kdx-causal-app-tabs.is-stuck{
    background:transparent!important;
    border-color:transparent!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    border-radius:0!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  .kdx-causal__tabs.kdx-causal-app-tabs button{
    background:rgba(11,11,13,.94)!important;
    border-color:rgba(254,195,0,.44)!important;
    box-shadow:0 5px 16px rgba(0,0,0,.16)!important;
  }
  .kdx-causal__tabs.kdx-causal-app-tabs button>span{color:#8B8B93!important}
  .kdx-causal__tabs.kdx-causal-app-tabs button>b{color:#D8D8DC!important}
  .kdx-causal__tabs.kdx-causal-app-tabs button.is-active{
    background:#FEC300!important;
    border-color:#FEC300!important;
    box-shadow:0 7px 20px rgba(254,195,0,.16)!important;
  }
  .kdx-causal__tabs.kdx-causal-app-tabs button.is-active>span,
  .kdx-causal__tabs.kdx-causal-app-tabs button.is-active>b{color:#09090A!important}
}


/* =========================================================
   3.3.30-rc.3 · ANATOMÍA AMARILLA + PANEL NEGRO
   - Sustituye el amarillo eliminado del bloque de topes.
   - 100 CASAS en blanco; resto de cabecera en negro.
   - Controles adaptados al fondo amarillo.
   - Panel de lectura completamente negro con texto blanco.
   ========================================================= */
.kdx-universe{
  background:var(--kdx-y)!important;
  color:#09090A!important;
}
.kdx-universe .kdx-kicker{
  color:#09090A!important;
}
.kdx-universe__head h2{
  color:#fff!important;
}
.kdx-universe__head h2 mark{
  color:#09090A!important;
}
.kdx-universe__head>p{
  color:#09090A!important;
}

.kdx-universe__groups button{
  border-color:rgba(9,9,10,.55)!important;
  background:rgba(255,255,255,.16)!important;
  color:#09090A!important;
}
.kdx-universe__groups button.is-active{
  border-color:#09090A!important;
  background:#09090A!important;
  color:#fff!important;
}

.kdx-universe__controls button{
  border-color:rgba(9,9,10,.34)!important;
  background:rgba(255,255,255,.92)!important;
  color:#09090A!important;
}
.kdx-universe__controls button>i{
  background:rgba(9,9,10,.14)!important;
}
.kdx-universe__controls button>i>em{
  background:#09090A!important;
}
.kdx-universe__controls button.is-active{
  border-color:#09090A!important;
  background:#09090A!important;
  color:#fff!important;
}
.kdx-universe__controls button.is-active>i{
  background:rgba(255,255,255,.18)!important;
}
.kdx-universe__controls button.is-active>i>em{
  background:#fff!important;
}

.kdx-universe__panel{
  background:#09090A!important;
  color:#fff!important;
}
.kdx-universe__panel>span,
.kdx-universe__panel h3,
.kdx-universe__panel p,
.kdx-universe__panel>small,
.kdx-universe__total strong,
.kdx-universe__total small,
.kdx-universe__universe span,
.kdx-universe__universe b{
  color:#fff!important;
}
.kdx-universe__panel>small,
.kdx-universe__total small{
  opacity:.66;
}
.kdx-universe__universe{
  border-top-color:rgba(255,255,255,.16)!important;
}
.kdx-universe__foreign-flow{
  border-top-color:rgba(255,255,255,.16)!important;
  border-bottom-color:rgba(255,255,255,.16)!important;
}
.kdx-universe__foreign-flow>span,
.kdx-universe__foreign-flow strong,
.kdx-universe__foreign-flow b,
.kdx-universe__foreign-flow small{
  color:#fff!important;
}
.kdx-universe__foreign-flow small{
  opacity:.66;
}

/* La visual negra conserva contraste sobre el nuevo fondo amarillo. */
.kdx-universe__building{
  border-color:rgba(9,9,10,.35)!important;
  box-shadow:0 20px 55px rgba(0,0,0,.12)!important;
}


/* =========================================================
   3.3.30-rc.6 · CIERRE MÓVIL DE KOKO DATA
   - El aire inferior gana a la regla global de escenas móviles.
   - El separador vive en el fondo de la sección, nunca sobre una tarjeta.
   - El área extra mantiene activas las pestañas sticky hasta el cierre.
   ========================================================= */
@media (max-width:767px){
  .kdx-scene-body .kdx.kdx-causal{
    padding-bottom:120px!important;
    background-color:#050506!important;
    background-image:linear-gradient(
      90deg,
      transparent 0%,
      rgba(254,195,0,.52) 12%,
      rgba(254,195,0,.52) 88%,
      transparent 100%
    )!important;
    background-repeat:no-repeat!important;
    background-size:calc(100% - 30px) 1px!important;
    background-position:center calc(100% - 28px)!important;
  }

  /* Anula expresamente el pseudo-separador defectuoso de rc.5. */
  .kdx-causal::after{
    content:none!important;
    display:none!important;
  }
}


/* =========================================================
   3.3.30-rc.7 · CADENA CAUSAL EN CARRUSEL AUTOMÁTICO · SOLO MÓVIL
   Las cuatro microtarjetas avanzan de una en una, conservan swipe manual
   y dejan asomar el siguiente paso para reforzar la continuidad.
   ========================================================= */
@media (max-width:767px){
  .kdx-causal__chain{
    position:relative!important;
    display:flex!important;
    align-items:stretch!important;
    gap:10px!important;
    width:100%!important;
    margin-top:14px!important;
    padding:0 9% 7px 0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    scroll-padding-inline:0!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    touch-action:pan-x pan-y!important;
  }
  .kdx-causal__chain::-webkit-scrollbar{display:none!important}

  .kdx-causal__chain>div{
    flex:0 0 82%!important;
    min-width:82%!important;
    min-height:112px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    padding:17px 18px!important;
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
    border-radius:14px!important;
    transition:border-color .26s ease,background .26s ease,box-shadow .26s ease,opacity .26s ease,transform .26s ease!important;
  }
  .kdx-causal__chain>div.is-kdx-chain-current{
    border-color:rgba(254,195,0,.52)!important;
    background:rgba(254,195,0,.035)!important;
    box-shadow:0 12px 30px rgba(0,0,0,.22)!important;
    opacity:1!important;
    transform:translateZ(0)!important;
  }
  .kdx-causal__chain>div:not(.is-kdx-chain-current){
    opacity:.72!important;
  }
  .kdx-causal__chain>i{
    flex:0 0 28px!important;
    min-width:28px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    color:#FEC300!important;
    font-size:21px!important;
    opacity:.82!important;
    transition:opacity .22s ease,transform .22s ease!important;
  }
  .kdx-causal__chain.is-kdx-chain-moving>i{
    opacity:1!important;
    transform:translateX(3px)!important;
  }
  .kdx-causal__chain small{
    font-size:9px!important;
  }
  .kdx-causal__chain strong{
    margin-top:12px!important;
    font-size:clamp(15px,4.2vw,18px)!important;
    line-height:1.2!important;
  }
}

@media (max-width:359px){
  .kdx-causal__chain{padding-right:7%!important;gap:8px!important}
  .kdx-causal__chain>div{
    flex-basis:86%!important;
    min-width:86%!important;
    min-height:104px!important;
    padding:15px 16px!important;
  }
  .kdx-causal__chain>i{flex-basis:24px!important;min-width:24px!important;font-size:18px!important}
  .kdx-causal__chain strong{font-size:14px!important}
}

@media (prefers-reduced-motion:reduce){
  .kdx-causal__chain>div,
  .kdx-causal__chain>i{transition:none!important}
}

/* 3.3.30-rc.12 · SOLO sección causal renovada. Última capa móvil.
   Reancla los valores legibles frente a overrides heredados de la app. */
@media(max-width:1024px){
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__stage{min-height:0!important;padding:23px 23px 9px!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__stage [data-causal-title]{font-size:clamp(28px,4.2vw,41px)!important;line-height:1.08!important;margin-top:13px!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__topic{font-size:10px!important;margin:0!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__thesis{font-size:14px!important;line-height:1.55!important;margin-top:12px!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__case .kdx-causal__eyebrow{font-size:10px!important;line-height:1.35!important;margin:0!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__case p:not(.kdx-causal__eyebrow){font-size:13px!important;line-height:1.48!important;margin-top:10px!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__live[hidden]{display:none!important}
}
@media(max-width:767px){
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__stage{padding:16px 15px 5px!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__stage [data-causal-title]{font-size:clamp(27px,7.4vw,34px)!important;line-height:1.08!important;margin-top:12px!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__stage [data-causal-copy]{font-size:13.5px!important;line-height:1.48!important;margin-top:10px!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__case{min-height:0!important;padding:16px!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__case h4{font-size:clamp(23px,6.4vw,29px)!important;line-height:1.05!important;margin-top:8px!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__case .kdx-causal__eyebrow{font-size:10px!important;line-height:1.3!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__case p:not(.kdx-causal__eyebrow){font-size:13px!important;line-height:1.45!important;margin-top:7px!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__insight p,
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__trap p,
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__disclaimer{font-size:12.5px!important;line-height:1.5!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__insight h4{font-size:25px!important;line-height:1.1!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__live{margin:0!important;padding:18px 0!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__live strong,.kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__live strong.kdx-measure{font-size:30px!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__live small{font-size:12px!important}
  .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__signals b{font-size:11px!important;padding:6px 9px!important}
}

/* 3.3.30-rc.12 · Teléfonos: decisión visible sin repetir párrafos.
   Los argumentos íntegros permanecen en el desplegable. */
@media(max-width:479px){
 .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__case p:not(.kdx-causal__eyebrow){display:none!important}
 .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__case{padding:14px 16px!important}
 .kdx-scene-body .kdx.kdx-causal--clear .kdx-causal__case h4{margin-top:7px!important}
}

/* 3.3.30-rc.13 · Deslizar en todo el escenario, sin bloquear el scroll vertical.
   El selector de factores se mueve con el gesto, no como scroller independiente. */
@media (max-width:767px), (max-width:1024px) and (pointer:coarse){
  .kdx-causal--clear{touch-action:pan-y}
  .kdx-causal--clear .kdx-causal__tabs{touch-action:pan-y!important}
}

/* ===========================================================
   3.3.30-rc.14 · «90 segundos»: lectura limpia en TELÉFONO.
   Único control inferior; desaparecen puntos, cabecera duplicada
   y espacios vacíos. El resto de DATA y la tablet no cambian.
   =========================================================== */
@media (max-width:767px){
  /* La introducción mantiene su aire respecto de la primera explicación. */
  .kdx-story .kdx-story__layout{
    gap:5px!important;
  }
  .kdx-story .kdx-story__steps.kdx-mobile-track{
    order:0!important;
    margin-top:15px!important;
    margin-bottom:0!important;
    padding:2px 1px 0!important;
    scroll-padding-inline:1px!important;
    gap:10px!important;
    align-items:flex-start!important;
    height:var(--kdx-story-active-height,auto)!important;
    min-height:0!important;
    overflow-y:hidden!important;
  }
  .kdx-story .kdx-story__steps>.kdx-mobile-card{
    flex-basis:calc(100% - 2px)!important;
    scroll-snap-align:start!important;
  }
  .kdx-story .kdx-story__step{
    padding:18px 17px 20px!important;
    border-radius:16px!important;
  }
  .kdx-story .kdx-story__step h3{
    margin:0 0 9px!important;
    font-size:clamp(19px,5.5vw,23px)!important;
    line-height:1.13!important;
  }
  .kdx-story .kdx-story__step>p{
    margin:0!important;
    font-size:clamp(14px,3.9vw,16px)!important;
    line-height:1.48!important;
    color:#ededf0!important;
  }

  /* Ninguna etiqueta ni paginador entre el texto y las cifras. */
  .kdx-story .kdx-carousel-dots,
  .kdx-story .kdx-story__stage-top{
    display:none!important;
  }
  .kdx-story .kdx-story__stage{
    order:1!important;
    margin:0!important;
    padding:9px 10px 13px!important;
    border-radius:14px!important;
  }
  .kdx-story .kdx-story-board{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    padding:0!important;
    margin:0!important;
    min-height:0!important;
  }
  .kdx-story .kdx-story-measure{
    padding:12px 7px!important;
    gap:7px!important;
    border-radius:14px!important;
  }
  .kdx-story .kdx-story-measure>span{
    font-size:clamp(10px,2.95vw,12px)!important;
    line-height:1.33!important;
  }
  .kdx-story .kdx-story-measure>strong{
    font-size:clamp(31px,9.3vw,42px)!important;
    line-height:1.08!important;
  }
  .kdx-story .kdx-story-measure>b{
    font-size:clamp(12px,3.45vw,14px)!important;
  }
  .kdx-story .kdx-story-measure>small{
    font-size:clamp(11px,3.15vw,12px)!important;
    line-height:1.43!important;
  }
  .kdx-story .kdx-story-history{
    height:43px!important;
  }

  /* Control auténtico, recolocado por JS tras las dos tarjetas. */
  .kdx-story .kdx-story__stage>.kdx-carousel-controls{
    display:grid!important;
    grid-template-columns:44px auto 44px!important;
    align-items:center!important;
    justify-content:center!important;
    gap:15px!important;
    width:max-content!important;
    max-width:100%!important;
    margin:12px auto 0!important;
    padding:0!important;
  }
  .kdx-story .kdx-story__stage>.kdx-carousel-controls button{
    width:44px!important;
    height:44px!important;
    min-height:44px!important;
    border-radius:11px!important;
    font-size:19px!important;
    opacity:1!important;
  }
  .kdx-story .kdx-story__stage>.kdx-carousel-controls>span{
    min-width:40px!important;
    color:#f2f2f3!important;
    font-size:14px!important;
    font-weight:600!important;
    letter-spacing:.02em!important;
    text-align:center!important;
  }
  .kdx-story .kdx-story__stage>.kdx-context-button{
    display:flex!important;
    width:max-content!important;
    max-width:100%!important;
    margin:7px auto 0!important;
    padding:2px!important;
    font-size:12px!important;
  }
}

@media (max-width:359px){
  .kdx-story .kdx-story__step{padding:15px 13px 17px!important}
  .kdx-story .kdx-story__step h3{font-size:19px!important}
  .kdx-story .kdx-story__step>p{font-size:13.7px!important;line-height:1.43!important}
  .kdx-story .kdx-story__stage{padding-inline:7px!important}
  .kdx-story .kdx-story-measure{padding-inline:5px!important}
  .kdx-story .kdx-story-measure>strong{font-size:30px!important}
}


/* ============================================================
   3.3.30-rc.15 · Solo 1ª escena «90 segundos» y solo teléfonos.
   Quita territorios repetidos y convierte la lectura del gráfico
   en un flotante bajo demanda, sin aumentar la altura de tarjetas.
   ============================================================ */
@media(max-width:767px){
  /* 3.3.30-rc.16 · Tarjetas inferiores con misma altura en cada escena */
  .kdx-story .kdx-story-board{
    align-items:stretch!important;
  }
  .kdx-story .kdx-story-measure{
    height:100%!important;
    justify-content:flex-start!important;
    align-self:stretch!important;
    box-sizing:border-box!important;
  }
  .kdx-story .kdx-story-measure>a{
    margin-top:auto!important;
  }

  .kdx-story .kdx-story-board--price .kdx-story-measure--price{
    position:relative!important;
    justify-content:flex-start!important;
    padding:11px 7px 10px!important;
    gap:5px!important;
  }
  .kdx-story .kdx-story-board--price .kdx-story-measure--price>span{order:0}
  .kdx-story .kdx-story-board--price .kdx-story-measure--price>strong{order:1;margin-top:2px!important}
  .kdx-story .kdx-story-board--price .kdx-story-measure--price>b{order:2}
  .kdx-story .kdx-story-board--price .kdx-story-price-yoy{
    order:3;
    color:#FEC300!important;
    font-weight:700!important;
    font-size:clamp(11px,3.15vw,12px)!important;
    line-height:1.28!important;
  }
  .kdx-story .kdx-story-board--price .kdx-story-history{
    order:4;
    height:39px!important;
    margin-top:4px!important;
  }
  .kdx-story .kdx-story-board--price .kdx-story-history-caption{
    order:5;
    width:100%;
    margin:0!important;
    color:#c5c5cb!important;
    font-size:clamp(10px,2.95vw,11px)!important;
    line-height:1.35!important;
  }
  .kdx-story .kdx-story-board--price .kdx-story-history-caption__full{display:none!important}
  .kdx-story .kdx-story-board--price .kdx-story-history-caption__compact{display:inline!important}
  .kdx-story .kdx-story-board--price .kdx-story-price-meta{
    order:6;
    margin-top:3px!important;
    color:#9fa0a7!important;
    font-size:clamp(10px,2.9vw,11px)!important;
    line-height:1.25!important;
  }
  .kdx-story .kdx-story-board--price .kdx-story-price-territory{display:none!important}
  .kdx-story .kdx-story-board--price .kdx-story-price-inspect{
    position:absolute!important;
    z-index:2;
    left:4px;
    right:4px;
    bottom:45px;
    width:auto!important;
    max-width:none!important;
    padding:7px!important;
    margin:0!important;
    border:1px solid rgba(254,195,0,.45);
    border-radius:8px;
    background:rgba(13,13,16,.97);
    box-shadow:0 3px 15px rgba(0,0,0,.35);
    color:#f5f5f7!important;
    font-size:10px!important;
    line-height:1.35!important;
    text-align:center;
    pointer-events:none;
    visibility:hidden!important;
    opacity:0!important;
    transition:opacity .12s ease;
  }
  .kdx-story .kdx-story-board--price .kdx-story-price-inspect.is-visible{
    visibility:visible!important;
    opacity:1!important;
  }
}
.kdx-story-history-caption__compact{display:none}

/* 3.3.30-rc.23 · SOLO H1 DEL HERO DATA: ritmo tipografico de Recursos.
   Este fichero se carga siempre despues del CSS base. El selector localizado
   respeta los demas titulos, la grafica, los botones y las escenas. */
.kdx-hero .kdx-hero__copy h1{
  font-size:clamp(64px,7.6vw,112px)!important;
  line-height:.91!important;
  letter-spacing:-.015em!important;
}
@media(max-width:680px){
  .kdx-hero .kdx-hero__copy h1{
    font-size:clamp(53px,15vw,72px)!important;
  }
}
/* Excepcion previa preservada: pantallas bajas para que el hero no desborde. */
@media(min-width:1025px) and (max-height:720px){
  .kdx-hero .kdx-hero__copy h1{
    font-size:clamp(54px,min(6.4vw,10vh),78px)!important;
  }
}

/* Kadence Feather SVG en controles táctiles: conservar botones y sus dimensiones. */
.kdx-chapter-dock button .kdx-kadence-icon,.kdx-carousel-controls button .kdx-kadence-icon,.kdx-dialog-bar button .kdx-kadence-icon{display:block;width:20px;height:20px;margin:auto}
.kdx-dialog-bar button .kdx-kadence-icon{width:22px;height:22px}
.kdx .kdx-story-mobile-context>a .kdx-kadence-icon{width:13px;height:13px;vertical-align:-.12em}
