/* Presenter mode (docs/presenter-mode-design.md): the Present icon on a reading page (§6.1) and, in the presenter's frame, the
   1600×900 stage with its slides (§5). report/assets/presenter.css. Literal colours: not every page defines the landing variables. */
/* white with a blue ring, so it shows on the blue hero and closing blocks as well as on white */
.si-present{position:fixed;left:24px;bottom:24px;z-index:44;width:48px;height:48px;padding:0;border:2px solid #2143F3;border-radius:50%;background:#fff;color:#2143F3;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 20px rgba(35,34,45,.25)}
.si-present:hover{background:#2143F3;color:#fff;border-color:#fff}
.si-present svg{display:block}
@media (max-width:767px){.si-present{display:none}}
@media print{.si-present{display:none}}

/* the frame shows the stage only; an explorer shows its main block, live */
html.sota-presenting,html.sota-presenting body{margin:0;overflow:hidden;background:#F4F5F9}
html.sota-presenting body>:not(.sota-stage){display:none!important}
html.sota-live body>:not(main){display:none!important}
html.sota-live main .meta,html.sota-live main .links{display:none!important}
.sota-hold{display:none!important}
.sota-stage{position:fixed;left:0;top:0;width:1600px;height:900px;transform-origin:0 0;overflow:hidden}
.sota-slide{position:relative;box-sizing:border-box;width:1600px;height:900px;overflow:hidden;padding:56px 80px 64px;background:#fff;color:#23222D;font-family:"Source Sans 3","Source Sans Pro",system-ui,sans-serif}
.sota-slide.sota-green{background:#33E79B}
.sota-slide.sota-alt{background:#F4F5F9}
.sota-slide.sota-blue{background:#2143F3;color:#fff}
.sota-slide .sota-off,.sota-slide .more-chip,.sota-slide p.more,.sota-slide .hero-actions,.sota-slide .tk-cta,.sota-slide details.chart-data{display:none!important}
.sota-stage object.chart{pointer-events:none}   /* a click on a chart reaches the page and zooms (§5.3), also from disk */
.sota-later{display:none!important}
.sota-in{animation:sota-in .35s ease-out}
@keyframes sota-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* a short fade between slides; the figure of a figure slide grows from its place right of the text (§5.1) */
.sota-stage>.sota-slide{animation:sota-fade .25s ease-out}
@keyframes sota-fade{from{opacity:0}to{opacity:1}}
.sota-layout-figure .tk-figure{animation:sota-grow .35s ease-out;transform-origin:85% 55%}
@keyframes sota-grow{from{transform:scale(.62);opacity:.6}to{transform:none;opacity:1}}

/* the footer of every slide, as in the Intento slide designs (KS, 2026-10-17): the report title in the middle, the Intento logo
   bottom right, in the slide's bottom padding; colours by the slide under it (slides.js tone) */
.sota-foot{position:absolute;left:80px;right:80px;bottom:20px;height:24px;display:flex;align-items:center;justify-content:center;pointer-events:none;font:400 20px/1 "Source Sans 3","Source Sans Pro",system-ui,sans-serif;color:#9E9E9E}
.sota-foot[data-tone=blue]{color:#85F1C3}
.sota-foot[data-tone=green]{color:#23222D}
.sota-foot.sota-foot-cover .sota-foot-title{display:none}
.sota-foot .sota-logo{position:absolute;right:0;top:50%;height:16px;width:auto;transform:translateY(-50%);display:none}
.sota-foot[data-tone=light] .sota-logo-light,.sota-foot[data-tone=blue] .sota-logo-blue,.sota-foot[data-tone=green] .sota-logo-green{display:block}

/* landing and chapter blocks: the page's own block, filling the slide (§5.2) */
.sota-whole.sota-overview,.sota-whole.sota-cover,.sota-whole.sota-closing{padding:0}
.sota-whole>section{box-sizing:border-box;height:900px;margin:0;padding:64px 80px;display:flex;flex-direction:column;justify-content:safe center;overflow:hidden}
.sota-whole>section>.wrap,.sota-whole>section>.si-wrap{max-width:none;width:100%;margin:0;padding:0}
.sota-whole>section.ch-hero h1{font-size:96px;line-height:1.05}
.sota-whole>section.ch-hero .lede-dark{font-size:28px;max-width:1100px}
/* the landing blocks keep their own layout, enlarged as a whole so they read at a distance (the models wall fills the slide as it is) */
.sota-whole>section.hero>.wrap{zoom:1.25}
.sota-whole>section#solutions>.wrap{zoom:1.15}
.sota-whole>section#levels>.wrap{zoom:1.4}
.sota-whole>section#languages-tested>.wrap{zoom:1.3}
.sota-whole>section#contents>.wrap{zoom:1.3}
.sota-whole>section.si-closing>.si-wrap{zoom:1.3}

/* a takeaway (§5.3, §5.4) */
.sota-insight article.tk{box-sizing:border-box;height:100%;display:flex;flex-direction:column;margin:0;padding:0;border:0}
.sota-insight .tk-head{margin:0}
.sota-insight .tk-n{font-size:16px;margin-bottom:14px}
.sota-insight .tk h3{font:700 40px/1.18 Graphik,system-ui,sans-serif;margin:0 0 28px;max-width:1380px;color:#23222D}
.sota-insight .tk-row{flex:1;min-height:0;display:grid;gap:48px;align-items:stretch}
.sota-insight .tk-text{position:relative;min-height:0;overflow:auto}
/* a text column scrolled to its newest step fades out at the top instead of cutting a line */
.sota-slide .sota-scrolled{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 56px);mask-image:linear-gradient(to bottom,transparent,#000 56px)}
/* no scrollbars in the text columns (the fade shows there is more); tables keep a thin one */
.sota-slide .tk-text,.sota-slide .sota-text{scrollbar-width:none}
.sota-slide .tk-text::-webkit-scrollbar,.sota-slide .sota-text::-webkit-scrollbar{display:none}
.sota-slide .tablewrap{scrollbar-width:thin}
.sota-insight .tk-text p,.sota-insight .tk-text li{font-size:24px;line-height:1.42;margin:0 0 16px;color:#1f3a2e}
.sota-insight .tk-text p.tk-links{font-size:0;margin:22px 0 0}   /* a <p>: above .tk-text p, so the " · " between the buttons goes */
.sota-insight .tk-text p.tk-links:empty{display:none}   /* an empty link line adds no space */
.sota-insight .tk-links a.evidence{display:inline-block;margin:0 10px 10px 0;padding:9px 18px;border-radius:999px;background:#fff;border:2px solid #2143F3;color:#2143F3;font:600 18px Graphik,system-ui,sans-serif;text-decoration:none}
.sota-insight .tk-figure{min-height:0;display:flex;flex-direction:column;margin:0;padding:20px;cursor:zoom-in}
.sota-insight .tk-figure svg,.sota-insight .tk-figure object.chart{flex:1;min-height:0;width:100%;height:100%;max-width:none}
.sota-insight .tk-figure .tiles{flex:1;align-content:center}
.sota-insight .tk-figure .tile{padding:22px 28px}
.sota-insight .tk-figure .tile .v{font-size:64px}
.sota-insight .tk-figure .tile .l{font-size:24px}
.sota-insight .tk-figure figcaption{font-size:18px;padding-top:10px}
.sota-insight .tk-x{display:none}
.sota-unnumbered .tk-n{display:none}
.sota-layout-side .tk-row{grid-template-columns:minmax(0,1fr) minmax(0,1.9fr)}
.sota-layout-wide .tk-row{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;row-gap:28px}
.sota-layout-wide .tk-figure{grid-row:1}
.sota-layout-wide .tk-text{grid-row:2;max-height:240px}
.sota-layout-text .tk-row{grid-template-columns:minmax(0,1fr);max-width:1180px}
.sota-layout-text .tk-text p,.sota-layout-text .tk-text li{font-size:30px}
.sota-layout-figure .tk h3,.sota-layout-figure .tk-text,.sota-zoom .tk h3,.sota-zoom .tk-text{display:none}
.sota-layout-figure .tk-row,.sota-zoom .tk-row{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
.sota-layout-figure .tk-figure,.sota-zoom .tk-figure{grid-row:1;cursor:default}
.sota-layout-snapshot .tk-row{display:none}
.sota-layout-snapshot .tk-x{display:block;flex:1;min-height:0;overflow:auto;margin:0}

/* a details page or a language page, cut into slides (§5.5, §5.6) */
.sota-cut{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.9fr);grid-template-rows:auto minmax(0,1fr);column-gap:48px}
.sota-cut .sota-h{grid-column:1/-1}
.sota-cut .sota-h h1,.sota-cut .sota-h h2,.sota-cut .sota-h h3{font:700 40px/1.18 Graphik,system-ui,sans-serif;margin:0 0 28px;max-width:1380px;color:inherit}
.sota-cut .sota-h h1+h2,.sota-cut .sota-h h1+h3{font-size:28px;margin-top:-12px}
.sota-cut .sota-text{position:relative;min-height:0;overflow:auto}
.sota-cut .sota-text p,.sota-cut .sota-text li,.sota-cut .sota-text .analysis{font-size:24px;line-height:1.42;margin:0 0 16px}
.sota-cut .sota-text li li{margin-bottom:10px}   /* a list item steps in with its sub-list, which keeps closer */
.sota-cut .sota-media{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:12px}
.sota-cut .sota-media>.compact{flex:1;min-height:0;display:flex;flex-direction:column}
.sota-cut .sota-media>.figure,.sota-cut .sota-media>figure,.sota-cut .sota-media>.compact>.figure{flex:1;min-height:0;display:flex;flex-direction:column;margin:0;cursor:zoom-in}
.sota-cut .sota-media .figure>svg,.sota-cut .sota-media figure>svg,.sota-cut .sota-media .figure>object.chart,.sota-cut .sota-media figure>object.chart{flex:1;min-height:0;width:100%;height:100%;max-width:none}
.sota-cut .sota-media table{font-size:19px}
.sota-cut .sota-media .tablewrap{flex:0 1 auto;min-height:0;overflow:auto}   /* a long table scrolls inside the slide, its note stays under it */
.sota-cut .sota-media table.sized{table-layout:auto}   /* columns sized by content: number columns keep short headers */
.sota-cut .sota-media table.sized col{width:auto!important}   /* over the page's <col style="width:…%"> */
.sota-cut .sota-media p.foot,.sota-cut .sota-media p.note{font-size:16px}
.sota-cut.sota-layout-wide{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr)}
.sota-cut.sota-layout-wide .sota-text{max-height:220px}
.sota-cut.sota-layout-text{grid-template-columns:minmax(0,1fr)}
.sota-cut.sota-layout-text .sota-media{display:none}
.sota-cut.sota-layout-text .sota-text{max-width:1180px}
.sota-cut.sota-zoom{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
.sota-cut.sota-zoom .sota-text{display:none}
