sagadeck 1.8.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -8
- package/SKILL.md +10 -3
- package/bin/sagadeck.js +23 -0
- package/docs/ANDAMENTO.md +482 -7
- package/docs/PLANO-MELHORIAS.md +180 -0
- package/docs/REFERENCIA.md +178 -111
- package/package.json +35 -4
- package/src/ai/commands.js +2 -2
- package/src/ai/context.js +7 -2
- package/src/ai/deck-ai.js +4 -2
- package/src/ai/ia-check.js +127 -0
- package/src/ai/ia-config.js +2 -2
- package/src/ai/llm.js +5 -1
- package/src/ai/map-analysis-run.js +1 -1
- package/src/ai/quality.js +1 -1
- package/src/ai/video-generation.js +70 -25
- package/src/api-client.js +42 -10
- package/src/build.js +46 -14
- package/src/code-highlight.js +19 -2
- package/src/code-language.js +13 -0
- package/src/elements.js +39 -1
- package/src/export/pptx.js +7 -2
- package/src/export/shots.js +7 -2
- package/src/fiscal/normalize.js +19 -0
- package/src/fs-retry.js +37 -2
- package/src/import/office.js +5 -4
- package/src/layouts.js +104 -99
- package/src/lessons.js +1 -1
- package/src/library.js +7 -7
- package/src/map-analysis.js +4 -1
- package/src/map-config.js +10 -4
- package/src/map.js +21 -8
- package/src/mcp/server.js +17 -0
- package/src/motion.js +20 -6
- package/src/purpose.js +1 -1
- package/src/runtime/api-core.js +122 -11
- package/src/runtime/api-ui.js +2 -1
- package/src/runtime/base.css +88 -332
- package/src/runtime/fit.js +3 -2
- package/src/runtime/fonts/amatic-sc.css +3 -0
- package/src/runtime/fonts/bebas-neue.css +2 -0
- package/src/runtime/fonts/cabin-sketch.css +2 -0
- package/src/runtime/fonts/fraunces.css +3 -0
- package/src/runtime/fonts/gelasio.css +3 -0
- package/src/runtime/fonts/ibm-plex-mono.css +4 -0
- package/src/runtime/fonts/index.json +10 -1
- package/src/runtime/fonts/itim.css +2 -0
- package/src/runtime/fonts/montserrat.css +2 -0
- package/src/runtime/fonts/space-grotesk.css +2 -0
- package/src/runtime/map-background.js +91 -0
- package/src/runtime/map.js +41 -9
- package/src/runtime/runtime.js +81 -100
- package/src/runtime/skins/aurora-dev.css +39 -0
- package/src/runtime/skins/caderno.css +33 -0
- package/src/runtime/skins/cartaz.css +27 -0
- package/src/runtime/skins/infografico.css +29 -0
- package/src/runtime/skins/lousa.css +22 -0
- package/src/runtime/skins/musgo.css +42 -0
- package/src/runtime/skins/terminal-pro.css +33 -0
- package/src/runtime/vendor/MAPLIBRE-LEAFLET-LICENSE.txt +15 -0
- package/src/runtime/vendor/MAPLIBRE-LICENSE.txt +116 -0
- package/src/runtime/vendor/geo-contornos.json +1 -1
- package/src/runtime/vendor/maplibre-gl.css +1 -0
- package/src/runtime/vendor/maplibre-gl.js +825 -0
- package/src/runtime/vendor/maplibre-leaflet.js +234 -0
- package/src/runtime/vendor/maplibre-worker.js +10 -0
- package/src/studio/ai-chat-route.js +26 -7
- package/src/studio/assets/imagens/tour-mapa-botao.jpg +0 -0
- package/src/studio/assets/imagens/tour-mapa-editor.jpg +0 -0
- package/src/studio/command-approval.js +2 -3
- package/src/studio/demo-decks.js +4 -2
- package/src/studio/developer-starters.js +46 -0
- package/src/studio/export-jobs.js +86 -0
- package/src/studio/exporting.js +36 -18
- package/src/studio/feature-demos.js +144 -0
- package/src/studio/ia-routes.js +9 -0
- package/src/studio/layout-samples.js +9 -18
- package/src/studio/library-routes.js +7 -9
- package/src/studio/project.js +1 -0
- package/src/studio/public/about.js +68 -0
- package/src/studio/public/ai-settings.js +2 -2
- package/src/studio/public/app.js +43 -52
- package/src/studio/public/chat.js +5 -1
- package/src/studio/public/developer-authoring.css +12 -0
- package/src/studio/public/developer-authoring.js +306 -0
- package/src/studio/public/export-status.js +154 -0
- package/src/studio/public/generation-guide.js +42 -0
- package/src/studio/public/index.html +31 -10
- package/src/studio/public/library.css +48 -3
- package/src/studio/public/library.html +5 -1
- package/src/studio/public/library.js +150 -41
- package/src/studio/public/map-data.js +7 -3
- package/src/studio/public/map-editor.js +625 -236
- package/src/studio/public/map-settings.js +3 -1
- package/src/studio/public/slide-form.js +27 -29
- package/src/studio/public/style.css +56 -9
- package/src/studio/public/ui-icons.js +1 -1
- package/src/studio/server.js +29 -14
- package/src/studio/snapshot.js +8 -4
- package/src/studio/template-collections.js +1 -1
- package/src/studio/tour.js +89 -7
- package/src/themes.js +202 -0
- package/templates/cenario-e-ciencia.yaml +1 -21
- package/templates/ensaio-api.yaml +3 -3
- package/templates/cenario/Texto no cen/303/241rio.yaml" +0 -171
- package/templates/cenario/imagens/cidade.svg +0 -30
- package/templates/cenario/imagens/pessoa.svg +0 -15
package/src/runtime/base.css
CHANGED
|
@@ -32,9 +32,20 @@ body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-k
|
|
|
32
32
|
.slide .ambient{position:absolute;inset:0;pointer-events:none;z-index:0;opacity:.5}
|
|
33
33
|
.slide[data-ambient="pontos"] .ambient{background-image:radial-gradient(color-mix(in srgb,var(--em) 55%,transparent) 2px,transparent 2.5px);background-size:44px 44px;animation:ambientDrift 26s ease-in-out infinite alternate}
|
|
34
34
|
.slide[data-ambient="grade"] .ambient{background-image:linear-gradient(color-mix(in srgb,var(--em) 22%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--em) 22%,transparent) 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(ellipse at 50% 120%,#000 30%,transparent 75%);animation:ambientPan 32s linear infinite}
|
|
35
|
+
.slide[data-ambient="rede"] .ambient{opacity:.85}.slide .ambient canvas{display:block;width:100%;height:100%}
|
|
35
36
|
@keyframes ambientDrift{from{transform:translateY(-14px)}to{transform:translateY(14px)}}
|
|
36
37
|
@keyframes ambientPan{from{background-position:0 0,0 0}to{background-position:0 72px,72px 0}}
|
|
37
38
|
@media(prefers-reduced-motion:reduce){.slide .ambient{animation:none}}
|
|
39
|
+
/* faixa que corre na capa (ticker): as duas cópias da lista andam meia largura e recomeçam sem emenda; para no mouse */
|
|
40
|
+
.slide .ticker{position:absolute;left:0;right:0;bottom:0;z-index:2;overflow:hidden;padding:22px 0;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 60%,transparent)}
|
|
41
|
+
.slide .tk-track{display:flex;align-items:center;width:max-content;animation:tkRun var(--tk-dur,46s) linear infinite;will-change:transform}
|
|
42
|
+
.slide .ticker:hover .tk-track{animation-play-state:paused}
|
|
43
|
+
.slide .tk-it{white-space:nowrap;font-size:22px;letter-spacing:.06em;color:var(--muted);padding:0 36px}
|
|
44
|
+
.slide .tk-sep{flex:none;width:10px;height:10px;transform:rotate(45deg);background:color-mix(in srgb,var(--hi) 55%,transparent)}
|
|
45
|
+
@keyframes tkRun{to{transform:translateX(-50%)}}
|
|
46
|
+
.export .slide .tk-track,html[data-motion="none"] .slide .tk-track{animation:none}
|
|
47
|
+
@media(prefers-reduced-motion:reduce){.slide .tk-track{animation:none}}
|
|
48
|
+
.slide:has(.ticker) .L-cover{padding-bottom:70px}
|
|
38
49
|
/* figura de pontos: luzinhas que viajam de uma forma a outra (só no HTML; PPTX/PDF usam a inicial) */
|
|
39
50
|
.fig-points{display:flex;flex-direction:column;align-items:center;gap:18px}
|
|
40
51
|
.fig-points .pts-svg{width:100%;height:auto;color:var(--em);filter:drop-shadow(0 0 3px currentColor)}
|
|
@@ -177,6 +188,39 @@ code.f-mono{font-size:.86em;background:color-mix(in srgb,var(--fg) 9%,transparen
|
|
|
177
188
|
.ca-ev{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:start}.ca-month .ca-day{font-size:22px;font-weight:700;color:var(--c);border-left:4px solid var(--c);padding-left:8px;line-height:1.3}
|
|
178
189
|
.ca-what{min-width:0;display:flex;flex-direction:column;gap:2px}.ca-title{line-height:1.12}.ca-month .ca-tag{font-size:15px;color:var(--c)}
|
|
179
190
|
.ca-undated .ca-day{color:var(--muted);border-color:var(--muted)}
|
|
191
|
+
/* calendário, visão mes: o mês grande (calendário de parede), os eventos escritos nos dias */
|
|
192
|
+
.cm-months{flex:1;min-height:0;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr)) auto;gap:26px}
|
|
193
|
+
.cm-month{min-width:0;min-height:0;display:flex;flex-direction:column;gap:10px}
|
|
194
|
+
.cm-month .ca-mo{font-size:56px;line-height:1;text-transform:capitalize}.cm-month .ca-y{font-size:24px;color:var(--muted)}
|
|
195
|
+
.cm-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:auto repeat(var(--weeks),minmax(0,1fr));gap:4px}
|
|
196
|
+
.cm-grid u{text-decoration:none;text-align:center;font-size:15px;color:var(--muted);padding-bottom:2px}
|
|
197
|
+
.cm-cell{min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:3px;padding:5px 6px;border-radius:8px;background:color-mix(in srgb,var(--fg) 4%,transparent)}
|
|
198
|
+
.cm-cell.out{background:none}.cm-cell.has{background:color-mix(in srgb,var(--fg) 7%,transparent)}
|
|
199
|
+
.cm-d{font-size:16px;font-weight:700;color:color-mix(in srgb,var(--fg) 55%,transparent);line-height:1}
|
|
200
|
+
.cm-ev{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:1.25;padding:2px 6px;border-radius:5px;background:color-mix(in srgb,var(--c) 20%,transparent);border-left:4px solid var(--c);color:var(--fg)}
|
|
201
|
+
.cm-ev b{font-weight:700;color:var(--c)}
|
|
202
|
+
.cm-more{font-size:13px;color:var(--muted);padding-left:4px}
|
|
203
|
+
.cm-noday{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.cm-noday>span{font-size:14px;color:var(--muted)}.cm-noday .cm-ev{max-width:420px}
|
|
204
|
+
.cm-side{min-width:0;max-width:360px;display:flex;flex-direction:column}
|
|
205
|
+
/* visão semana: uma coluna por dia, os eventos em blocos com a hora */
|
|
206
|
+
.cw-weeks{flex:1;min-height:0;display:grid;grid-template-rows:repeat(var(--rows),minmax(0,1fr));gap:18px}
|
|
207
|
+
.cw-week{min-height:0;display:grid;grid-template-columns:repeat(var(--days,7),minmax(0,1fr));gap:10px}
|
|
208
|
+
.cw-day{min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:var(--radius);background:color-mix(in srgb,var(--fg) 4%,transparent)}
|
|
209
|
+
.cw-day.has{background:color-mix(in srgb,var(--fg) 7%,transparent)}
|
|
210
|
+
.cw-h{display:flex;align-items:baseline;gap:6px;border-bottom:2px solid color-mix(in srgb,var(--fg) 12%,transparent);padding-bottom:4px}
|
|
211
|
+
.cw-h span{font-size:14px;color:var(--muted)}.cw-h b{font-size:30px;line-height:1}.cw-h .cw-mo{margin-left:auto}
|
|
212
|
+
.cw-ev{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:8px;border-left:5px solid var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}
|
|
213
|
+
.cw-t{font-size:15px;font-weight:700;color:var(--c)}.cw-title{line-height:1.12}.cw-ev .ca-tag{font-size:13px;color:var(--c)}
|
|
214
|
+
/* visão lista: agenda em colunas, agrupada por mês */
|
|
215
|
+
.cl-list{flex:1;min-height:0;columns:var(--ncol);column-gap:44px;font-size:var(--cal-fs)}
|
|
216
|
+
.cl-month{break-inside:avoid-column;margin:0 0 .9em}
|
|
217
|
+
.cl-h{display:flex;align-items:baseline;gap:10px;border-bottom:2px solid color-mix(in srgb,var(--fg) 14%,transparent);padding-bottom:4px;margin-bottom:.4em;break-after:avoid}
|
|
218
|
+
.cl-h .f-display{font-size:1.5em;text-transform:capitalize;line-height:1.1}.cl-h .ca-y{color:var(--muted);font-size:.8em}
|
|
219
|
+
.cl-month ul{list-style:none;margin:0;padding:0}
|
|
220
|
+
.cl-ev{display:grid;grid-template-columns:3em minmax(0,1fr) auto;gap:.5em;align-items:baseline;padding:.28em 0;border-bottom:1px solid color-mix(in srgb,var(--fg) 8%,transparent);break-inside:avoid}
|
|
221
|
+
.cl-d{display:flex;align-items:baseline;gap:4px;border-left:4px solid var(--c);padding-left:.35em}.cl-d b{font-size:1.15em;color:var(--c)}.cl-d small{font-size:.65em;color:var(--muted)}
|
|
222
|
+
.cl-what{min-width:0;display:flex;flex-direction:column}.cl-title{line-height:1.2}.cl-t{color:var(--c)}.cl-text{font-size:.78em}
|
|
223
|
+
.cl-ev .ca-tag{font-size:.7em;color:var(--c)}
|
|
180
224
|
/* pôster: infográfico de uma página (figura de revista científica): painéis com letra, desenho, texto curto e números */
|
|
181
225
|
.L-poster{flex:1;min-height:0;display:flex;flex-direction:column;gap:14px}.L-poster .hd{margin-bottom:0}.ps-sub{margin-top:-6px}
|
|
182
226
|
.ps-body{flex:1;min-height:0;display:flex;gap:36px}
|
|
@@ -240,6 +284,35 @@ code.f-mono{font-size:.86em;background:color-mix(in srgb,var(--fg) 9%,transparen
|
|
|
240
284
|
/* cards */
|
|
241
285
|
.cards{display:grid;gap:36px;flex:1;min-height:0;align-content:center}
|
|
242
286
|
.cd{display:flex;flex-direction:column;gap:18px;min-width:0}
|
|
287
|
+
/* cartão que vira (back: no cartão): frente e verso na mesma célula; o clique gira 180 graus; exportação mostra a frente */
|
|
288
|
+
.cd.flip{background:none;padding:0;border:0;box-shadow:none;perspective:1800px;cursor:pointer;outline:none}
|
|
289
|
+
.flip-in{position:relative;flex:1;display:grid;transform-style:preserve-3d;transition:transform .75s cubic-bezier(.3,.75,.2,1)}
|
|
290
|
+
.flip-face{grid-area:1/1;position:relative;display:flex;flex-direction:column;gap:18px;min-width:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
|
|
291
|
+
.flip-back{transform:rotateY(180deg);justify-content:center;padding-bottom:84px}
|
|
292
|
+
.flip-front{padding-bottom:84px}
|
|
293
|
+
.cd.flip.flipped .flip-in{transform:rotateY(180deg)}
|
|
294
|
+
.cd.flip:focus-visible .flip-face{outline:3px solid var(--hi);outline-offset:4px}
|
|
295
|
+
.flip-hint{position:absolute;right:20px;bottom:20px;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--fg) 14%,transparent);color:var(--fg);opacity:.8;transition:transform .3s}
|
|
296
|
+
.cd.flip:hover .flip-hint{transform:rotate(-40deg)}
|
|
297
|
+
html[data-motion="none"] .flip-in,.export .flip-in{transition:none}
|
|
298
|
+
.export .cd.flip .flip-in{transform:none}.export .flip-hint{display:none}
|
|
299
|
+
@media(prefers-reduced-motion:reduce){.flip-in{transition:none}}
|
|
300
|
+
/* botão + com balão (pop): o balão abre ao lado do botão; aberto, uma sombra enorme em volta dele escurece o resto */
|
|
301
|
+
.pop{position:relative;display:inline-flex;z-index:4;vertical-align:middle;align-self:flex-start;width:fit-content;height:fit-content}
|
|
302
|
+
.pop-el{z-index:4}
|
|
303
|
+
.pop-btn{width:64px;height:64px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;background:var(--hi);color:var(--on-hi);box-shadow:0 6px 18px #00000033;transition:transform .25s,background-color .25s}
|
|
304
|
+
.pop-btn svg{width:30px;height:30px;transition:transform .3s}
|
|
305
|
+
.pop-btn:hover{transform:scale(1.08)}
|
|
306
|
+
.pop.open .pop-btn{background:var(--em);color:var(--bg)}.pop.open .pop-btn svg{transform:rotate(45deg)}
|
|
307
|
+
.pop-card{position:absolute;z-index:5;width:max-content;max-width:620px;display:flex;flex-direction:column;gap:10px;padding:28px 32px;border-radius:var(--radius);background:var(--surface);color:var(--fg);border:1px solid var(--line);box-shadow:0 24px 60px #00000040;opacity:0;visibility:hidden;transform:translateY(10px) scale(.97);transition:opacity .25s,transform .25s,visibility 0s .25s;text-align:left}
|
|
308
|
+
.pop-above .pop-card{bottom:calc(100% + 18px);left:50%;translate:-50% 0}
|
|
309
|
+
.pop-below .pop-card{top:calc(100% + 18px);left:50%;translate:-50% 0}
|
|
310
|
+
.pop-left .pop-card{right:calc(100% + 18px);top:50%;translate:0 -50%}
|
|
311
|
+
.pop-right .pop-card{left:calc(100% + 18px);top:50%;translate:0 -50%}
|
|
312
|
+
.pop.open .pop-card{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .25s}
|
|
313
|
+
.pop-title{font-size:34px}.pop-text{font-size:28px;line-height:1.4}
|
|
314
|
+
.pop.open{z-index:6;border-radius:50%;box-shadow:0 0 0 4000px #00000066}
|
|
315
|
+
.export .pop-card{display:none}
|
|
243
316
|
.cd-ico{width:100px;height:100px;border-radius:50%;background:var(--hi);color:var(--on-hi);display:flex;align-items:center;justify-content:center}
|
|
244
317
|
.card-hi .cd-ico{background:var(--on-hi);color:var(--hi)}
|
|
245
318
|
.cd-pic{height:190px;display:flex}
|
|
@@ -733,147 +806,6 @@ body.presenter #viewport{display:none}
|
|
|
733
806
|
.export .codewalk-editor .cl.dim{opacity:1}
|
|
734
807
|
@media print{.lesson-controls,.lesson-panels{display:none!important}.lesson-summary{display:grid!important}.spotlight-region{border:3px solid var(--em);box-shadow:none!important}.codewalk-editor .cl.dim{opacity:1}}
|
|
735
808
|
|
|
736
|
-
/* Tipografia cinética: as frases usam o cenário como parte da composição. */
|
|
737
|
-
.L-kinetic{
|
|
738
|
-
position:absolute;
|
|
739
|
-
inset:0;
|
|
740
|
-
overflow:hidden;
|
|
741
|
-
isolation:isolate;
|
|
742
|
-
background:
|
|
743
|
-
radial-gradient(ellipse at 78% 40%,color-mix(in srgb,var(--em) 32%,transparent),transparent 42%),
|
|
744
|
-
radial-gradient(ellipse at 16% 88%,color-mix(in srgb,var(--hi) 18%,transparent),transparent 40%),
|
|
745
|
-
var(--bg,#120d25);
|
|
746
|
-
color:#fff;
|
|
747
|
-
}
|
|
748
|
-
.kinetic-scene,.kinetic-shade,.kinetic-grain,.kinetic-sequence{position:absolute;inset:0}
|
|
749
|
-
.kinetic-scene{z-index:-3}
|
|
750
|
-
.kinetic-scene>.fig{position:absolute;inset:0}
|
|
751
|
-
.kinetic-scene>.fig.fig-img>img,.kinetic-scene>.fig>svg:not(.ico){position:absolute;inset:0;width:100%;height:100%}
|
|
752
|
-
.kinetic-scene>.fig.fig-img>img{object-fit:cover}
|
|
753
|
-
.kinetic-scene>.fig.fig-icon{inset:auto;left:78%;top:50%;width:auto;height:auto;transform:translate(-50%,-50%);opacity:.34}
|
|
754
|
-
.kinetic-scene>.fig.fig-icon>svg{position:static;width:clamp(260px,36cqw,620px);height:auto;max-height:64vh;filter:drop-shadow(0 20px 45px #08091d40)}
|
|
755
|
-
.kinetic-shade{z-index:-2;background:linear-gradient(90deg,#0b1027aa,transparent 72%),linear-gradient(0deg,#09091bd9,transparent 63%),linear-gradient(180deg,#100e2685,transparent 34%)}
|
|
756
|
-
.kinetic-grain{z-index:-1;pointer-events:none;opacity:.12;background-image:radial-gradient(#fff 0.65px,transparent .8px);background-size:5px 5px;mix-blend-mode:soft-light}
|
|
757
|
-
.kinetic-sequence{container-type:size}
|
|
758
|
-
.kinetic-frame{position:absolute;inset:0;display:none}
|
|
759
|
-
.kinetic-frame.active{display:block}
|
|
760
|
-
.kinetic-frame.active .kinetic-word{animation:kinetic-word-in .72s var(--ease-out) both}
|
|
761
|
-
.kinetic-morph{z-index:4;white-space:normal;text-wrap:balance;overflow-wrap:normal}
|
|
762
|
-
.kinetic-word{
|
|
763
|
-
position:absolute;
|
|
764
|
-
z-index:2;
|
|
765
|
-
width:58%;
|
|
766
|
-
max-height:72%;
|
|
767
|
-
overflow:hidden;
|
|
768
|
-
font-family:var(--font-display,'Arial Narrow',sans-serif);
|
|
769
|
-
font-size:clamp(76px,11cqw,210px);
|
|
770
|
-
font-weight:900;
|
|
771
|
-
line-height:.94;
|
|
772
|
-
letter-spacing:-.045em;
|
|
773
|
-
text-wrap:balance;
|
|
774
|
-
word-break:normal;
|
|
775
|
-
overflow-wrap:normal;
|
|
776
|
-
hyphens:none;
|
|
777
|
-
color:var(--kinetic-ink,#fff);
|
|
778
|
-
text-shadow:0 2px 12px #08091d99;
|
|
779
|
-
}
|
|
780
|
-
.kinetic-frame[data-size="medium"] .kinetic-word{font-size:clamp(60px,6.5cqw,126px)}
|
|
781
|
-
.kinetic-frame[data-size="small"] .kinetic-word{font-size:clamp(48px,4.5cqw,88px)}
|
|
782
|
-
.kinetic-frame[data-position="left"] .kinetic-word{left:8%;top:50%;transform:translateY(-50%);text-align:left}
|
|
783
|
-
.kinetic-frame[data-position="center"] .kinetic-word{left:9%;top:50%;transform:translateY(-50%);width:82%;text-align:center}
|
|
784
|
-
.kinetic-frame[data-position="right"] .kinetic-word{right:8%;top:50%;transform:translateY(-50%);text-align:right}
|
|
785
|
-
.kinetic-frame[data-position="top"] .kinetic-word{left:9%;top:15%;width:82%;text-align:center}
|
|
786
|
-
.kinetic-frame[data-position="bottom"] .kinetic-word{left:9%;bottom:16%;width:82%;text-align:center}
|
|
787
|
-
.kinetic-frame[data-color="gold"]{--kinetic-ink:#ffd36b}
|
|
788
|
-
.kinetic-frame[data-color="pink"]{--kinetic-ink:#ff83cf}
|
|
789
|
-
.kinetic-frame[data-color="cyan"]{--kinetic-ink:#76f1f0}
|
|
790
|
-
.kinetic-frame[data-style="poster"] .kinetic-word,.kinetic-frame[data-style="outline"] .kinetic-word{text-transform:uppercase}
|
|
791
|
-
.kinetic-frame[data-style="clean"] .kinetic-word{
|
|
792
|
-
font-family:var(--font-display,'Arial',sans-serif);
|
|
793
|
-
font-weight:700;
|
|
794
|
-
letter-spacing:-.035em;
|
|
795
|
-
text-transform:none;
|
|
796
|
-
}
|
|
797
|
-
.kinetic-frame[data-style="editorial"] .kinetic-word{
|
|
798
|
-
font-family:Georgia,'Times New Roman',serif;
|
|
799
|
-
font-weight:700;
|
|
800
|
-
font-style:italic;
|
|
801
|
-
letter-spacing:-.065em;
|
|
802
|
-
text-transform:none;
|
|
803
|
-
}
|
|
804
|
-
.kinetic-frame[data-style="outline"] .kinetic-word{
|
|
805
|
-
color:transparent;
|
|
806
|
-
-webkit-text-stroke:3px var(--kinetic-ink,#fff);
|
|
807
|
-
text-shadow:0 0 28px color-mix(in srgb,var(--kinetic-ink,#fff) 35%,transparent);
|
|
808
|
-
}
|
|
809
|
-
.kinetic-frame[data-style="marker"] .kinetic-word{
|
|
810
|
-
width:auto;
|
|
811
|
-
max-width:82%;
|
|
812
|
-
padding:.06em .16em .12em;
|
|
813
|
-
background:var(--kinetic-ink,#fff);
|
|
814
|
-
color:#171326;
|
|
815
|
-
box-decoration-break:clone;
|
|
816
|
-
-webkit-box-decoration-break:clone;
|
|
817
|
-
text-shadow:none;
|
|
818
|
-
transform:translateY(-50%) rotate(-2deg);
|
|
819
|
-
}
|
|
820
|
-
.kinetic-frame[data-style="marker"][data-position="right"] .kinetic-word{transform:translateY(-50%) rotate(2deg)}
|
|
821
|
-
.kinetic-frame[data-style="marker"][data-position="top"] .kinetic-word{transform:rotate(-2deg)}
|
|
822
|
-
.kinetic-frame[data-style="marker"][data-position="bottom"] .kinetic-word{transform:rotate(-2deg)}
|
|
823
|
-
.kinetic-frame[data-position="bottom"] .kinetic-tag{top:7%;bottom:auto}
|
|
824
|
-
.kinetic-frame[data-position="top"] .kinetic-tag{top:auto;bottom:9%}
|
|
825
|
-
.kinetic-tag{
|
|
826
|
-
position:absolute;
|
|
827
|
-
z-index:3;
|
|
828
|
-
left:8%;
|
|
829
|
-
bottom:9%;
|
|
830
|
-
color:#fff;
|
|
831
|
-
max-width:48%;
|
|
832
|
-
font:650 20px/1.25 var(--font-label,system-ui,sans-serif);
|
|
833
|
-
letter-spacing:.14em;
|
|
834
|
-
text-transform:uppercase;
|
|
835
|
-
text-shadow:0 2px 14px #08091dcc;
|
|
836
|
-
}
|
|
837
|
-
.kinetic-controls{
|
|
838
|
-
position:absolute;
|
|
839
|
-
z-index:5;
|
|
840
|
-
right:5%;
|
|
841
|
-
bottom:5%;
|
|
842
|
-
display:flex;
|
|
843
|
-
align-items:center;
|
|
844
|
-
gap:12px;
|
|
845
|
-
padding:10px;
|
|
846
|
-
border:1px solid #ffffff42;
|
|
847
|
-
border-radius:999px;
|
|
848
|
-
background:#10101d9c;
|
|
849
|
-
color:#fff;
|
|
850
|
-
backdrop-filter:blur(18px);
|
|
851
|
-
}
|
|
852
|
-
.kinetic-controls button{
|
|
853
|
-
min-width:48px;
|
|
854
|
-
height:44px;
|
|
855
|
-
padding:0 14px;
|
|
856
|
-
border:0;
|
|
857
|
-
border-radius:999px;
|
|
858
|
-
background:transparent;
|
|
859
|
-
color:inherit;
|
|
860
|
-
font:600 18px var(--font-label,system-ui,sans-serif);
|
|
861
|
-
cursor:pointer;
|
|
862
|
-
}
|
|
863
|
-
.kinetic-controls button:hover,.kinetic-controls button[aria-current="step"]{background:#ffffff28}
|
|
864
|
-
.kinetic-controls button:focus-visible{outline:3px solid var(--em);outline-offset:3px}
|
|
865
|
-
.kinetic-dots{display:flex;gap:4px}
|
|
866
|
-
.kinetic-dots button{min-width:38px;padding:0 8px;color:#c5c2d4;font-size:15px}
|
|
867
|
-
.kinetic-dots button[aria-current="step"]{color:#fff}
|
|
868
|
-
.kinetic-summary{display:none}
|
|
869
|
-
@keyframes kinetic-word-in{from{opacity:0;filter:blur(5px);transform:translateY(12px) scale(.98)}to{opacity:1;filter:none}}
|
|
870
|
-
.export .kinetic-controls,.export .kinetic-sequence{display:none}
|
|
871
|
-
.export .kinetic-summary{position:absolute;left:8%;right:8%;bottom:6%;z-index:4;display:flex;flex-wrap:wrap;gap:12px}
|
|
872
|
-
.kinetic-summary span{padding:10px 18px;border:1px solid #ffffff60;border-radius:999px;background:#10101d9c;color:#fff;font-size:24px;backdrop-filter:blur(10px)}
|
|
873
|
-
html[data-motion="none"] .kinetic-frame.active .kinetic-word{animation:none}
|
|
874
|
-
html[data-motion="subtle"] .kinetic-frame.active .kinetic-word{animation-duration:.4s}
|
|
875
|
-
@media(prefers-reduced-motion:reduce){.kinetic-frame.active .kinetic-word{animation:none}}
|
|
876
|
-
@media print{.kinetic-controls,.kinetic-sequence{display:none!important}.kinetic-summary{position:absolute;left:8%;right:8%;bottom:6%;z-index:4;display:flex;flex-wrap:wrap;gap:12px}.kinetic-summary span{padding:10px 18px;border:1px solid #ffffff60;border-radius:999px;background:#10101d9c;color:#fff;font-size:24px}}
|
|
877
809
|
|
|
878
810
|
/* Intensidade de movimento: uma mesma apresentação pode ir da diretoria ao palco. */
|
|
879
811
|
html[data-motion="subtle"] .slide.current .e{animation-name:fi;animation-duration:.38s;animation-delay:calc(var(--d,0) * 35ms)}
|
|
@@ -1050,190 +982,6 @@ html[data-motion="none"] *,html[data-motion="none"] *::before,html[data-motion="
|
|
|
1050
982
|
.dl-controls{display:flex;flex-direction:column;gap:26px}.dl-controls label{display:grid;grid-template-columns:1fr auto;gap:12px;font-size:26px}.dl-controls output{font-variant-numeric:tabular-nums;font-weight:700}.dl-controls input{grid-column:1/-1;width:100%;accent-color:var(--em);height:28px;cursor:ew-resize}.dl-controls button{align-self:flex-start;padding:14px 20px;font:inherit;font-size:23px;background:var(--surface);color:var(--fg);border:2px solid var(--line);border-radius:8px;cursor:pointer}.dl-controls :focus-visible{outline:4px solid var(--em);outline-offset:4px}
|
|
1051
983
|
.dl-results{padding:30px;background:var(--surface);border:2px solid var(--line);border-radius:18px}.dl-compare{display:grid;grid-template-columns:1fr 1fr;gap:24px}.dl-compare article{display:flex;flex-direction:column;gap:16px;font-size:26px}.dl-compare strong{font-size:94px;line-height:1.1;font-variant-numeric:tabular-nums}.dl-compare small{font-size:23px;color:var(--muted)}.dl-verdict{font-size:34px;line-height:1.2;font-weight:700;border-top:2px solid var(--line);padding-top:28px}.dl-verdict[data-result=worse]{color:var(--c-alert)}.dl-detail{font-size:26px;line-height:1.6}.dl-assumptions{grid-column:1/-1;font-size:22px;color:var(--muted);line-height:1.35}
|
|
1052
984
|
|
|
1053
|
-
/* Texto no cenário: composição estática, com tipografia em planos físicos. Nenhuma cor fixa: tudo sai da paleta do
|
|
1054
|
-
tema e do tom do slide (--bg, --fg, --hi, --em, --muted, --line, --surface), para não destoar dos outros slides.
|
|
1055
|
-
A cenografia extra das composições novas vem de SCENES (layouts.js), em .scene-props. */
|
|
1056
|
-
.L-scenography{position:absolute;inset:0;overflow:hidden;isolation:isolate;background:var(--bg);color:var(--fg);--s-deep:color-mix(in srgb,var(--bg) 72%,#000);--s-lift:color-mix(in srgb,var(--bg) 82%,var(--fg));--s-hi-soft:color-mix(in srgb,var(--hi) 38%,transparent);--s-em-soft:color-mix(in srgb,var(--em) 38%,transparent);--s-paper:color-mix(in srgb,var(--bg) 70%,#fff)}
|
|
1057
|
-
.scene-atmosphere{position:absolute;inset:0}.scene-image{position:absolute;inset:0;opacity:.85}.scene-image .fig{height:100%;width:100%}
|
|
1058
|
-
.scene-type{position:absolute;inset:110px 125px 160px;z-index:2;display:flex;flex-direction:column;justify-content:center}
|
|
1059
|
-
.scene-eyebrow{font-size:25px;letter-spacing:12px;margin-bottom:40px}
|
|
1060
|
-
.scene-title{font-weight:900!important;line-height:.85!important;letter-spacing:-12px;white-space:pre-line;text-transform:uppercase;max-width:1600px;text-wrap:balance}
|
|
1061
|
-
.scene-title p{margin:0}.scene-subtitle{margin-top:48px;font-size:34px;letter-spacing:1px}
|
|
1062
|
-
.scene-architecture{position:absolute;inset:0;z-index:3;pointer-events:none}
|
|
1063
|
-
.scene-architecture i{position:absolute;top:-40px;height:950px;width:38px;transform:rotate(12deg)}
|
|
1064
|
-
.scene-architecture i:nth-child(1){left:4%;height:680px}.scene-architecture i:nth-child(2){left:30%;height:220px}.scene-architecture i:nth-child(3){left:57%;height:330px}.scene-architecture i:nth-child(4){left:85%;height:630px}.scene-architecture i:nth-child(5){left:97%;height:1000px}
|
|
1065
|
-
.scene-sculpture{position:absolute;z-index:4;bottom:-145px;right:100px;width:680px;height:680px;border-radius:50%;transform:rotate(-30deg) scaleX(.8)}
|
|
1066
|
-
.scene-sculpture i{position:absolute;inset:-90px;border-radius:50%;opacity:.6}
|
|
1067
|
-
.scene-foreground{position:absolute;inset:0;z-index:5;pointer-events:none}.scene-foreground .fig{width:100%;height:100%}
|
|
1068
|
-
.scene-caption{position:absolute;left:130px;bottom:60px;font-size:21px;letter-spacing:5px;z-index:6;color:var(--muted)}
|
|
1069
|
-
.scene-props{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
|
|
1070
|
-
.scene-barcode{background:repeating-linear-gradient(90deg,currentColor 0 4px,transparent 4px 7px,currentColor 7px 9px,transparent 9px 14px,currentColor 14px 20px,transparent 20px 23px,currentColor 23px 24px,transparent 24px 30px)}
|
|
1071
|
-
.L-scenography:is(.scene-terminal,.scene-cafe,.scene-travel,.scene-ticker,.scene-marquee,.scene-blueprint,.scene-magazine,.scene-orbit,.scene-synthwave,.scene-gallery) :is(.scene-architecture,.scene-sculpture){display:none}
|
|
1072
|
-
.L-scenography:is(.scene-terminal,.scene-cafe,.scene-travel,.scene-ticker,.scene-marquee,.scene-blueprint,.scene-magazine,.scene-orbit,.scene-synthwave,.scene-gallery) .scene-title{letter-spacing:0}
|
|
1073
|
-
|
|
1074
|
-
/* palco e profundidade */
|
|
1075
|
-
.scene-stage .scene-atmosphere{background:radial-gradient(ellipse at 50% 85%,var(--em) 0,transparent 45%),radial-gradient(ellipse at 20% 10%,color-mix(in srgb,var(--hi) 30%,var(--bg)) 0,transparent 65%),linear-gradient(125deg,var(--s-deep),color-mix(in srgb,var(--bg) 60%,var(--em)) 70%,var(--s-deep))}
|
|
1076
|
-
.scene-stage .scene-title{color:color-mix(in srgb,var(--fg) 80%,var(--hi));text-shadow:0 2px color-mix(in srgb,var(--hi) 60%,var(--fg)),0 12px 0 color-mix(in srgb,var(--em) 55%,#000),0 20px 55px var(--s-hi-soft)}
|
|
1077
|
-
.scene-stage .scene-subtitle{max-width:1050px}
|
|
1078
|
-
.scene-stage .scene-architecture i{background:linear-gradient(90deg,color-mix(in srgb,var(--em) 30%,var(--s-deep)),color-mix(in srgb,var(--hi) 45%,var(--fg)) 55%,color-mix(in srgb,var(--em) 25%,var(--s-deep)));box-shadow:35px 18px 70px #00000066}
|
|
1079
|
-
.scene-stage .scene-sculpture{border:110px solid color-mix(in srgb,var(--em) 25%,var(--s-deep));box-shadow:inset 24px 18px 35px color-mix(in srgb,var(--hi) 55%,var(--fg)),24px 15px 0 var(--s-deep),50px 80px 100px #000000aa}
|
|
1080
|
-
.scene-stage .scene-sculpture i{border:3px solid var(--hi)}
|
|
1081
|
-
|
|
1082
|
-
/* chão em perspectiva */
|
|
1083
|
-
.scene-floor .scene-atmosphere{background:linear-gradient(165deg,color-mix(in srgb,var(--bg) 75%,var(--hi)),color-mix(in srgb,var(--bg) 55%,var(--em)) 45%,color-mix(in srgb,var(--bg) 35%,var(--em)))}
|
|
1084
|
-
.scene-floor .scene-type{inset:80px 90px 250px;transform:perspective(1100px) rotateX(37deg) rotateZ(-14deg) scale(.82);transform-origin:50% 45%;color:color-mix(in srgb,var(--em) 70%,var(--fg))}
|
|
1085
|
-
.scene-floor .scene-title{letter-spacing:-9px;text-shadow:0 4px 5px color-mix(in srgb,var(--em) 35%,transparent)}
|
|
1086
|
-
.scene-floor .scene-architecture{background:repeating-linear-gradient(90deg,transparent 0 250px,color-mix(in srgb,var(--em) 12%,transparent) 252px 254px);transform:perspective(600px) rotateX(40deg) scale(2);z-index:1}
|
|
1087
|
-
.scene-floor .scene-architecture i{display:none}
|
|
1088
|
-
.scene-floor .scene-sculpture{right:120px;bottom:0;width:380px;height:540px;border-radius:160px 160px 25px 25px;background:linear-gradient(115deg,color-mix(in srgb,var(--hi) 40%,var(--bg)),var(--em) 48%,color-mix(in srgb,var(--em) 50%,#000));transform:rotate(-15deg);box-shadow:-180px 140px 50px color-mix(in srgb,var(--em) 30%,transparent),inset -35px 5px 35px color-mix(in srgb,var(--em) 60%,#000)}
|
|
1089
|
-
.scene-floor .scene-sculpture i{display:none}
|
|
1090
|
-
|
|
1091
|
-
/* placas na cidade */
|
|
1092
|
-
.scene-signs .scene-atmosphere{background:linear-gradient(135deg,var(--s-deep),color-mix(in srgb,var(--bg) 55%,var(--em)) 60%,color-mix(in srgb,var(--em) 70%,var(--fg)))}
|
|
1093
|
-
.scene-signs .scene-architecture{z-index:1;background:linear-gradient(90deg,var(--s-deep) 0 13%,transparent 13% 84%,color-mix(in srgb,var(--s-deep) 80%,var(--fg)) 84%)}
|
|
1094
|
-
.scene-signs .scene-architecture i{top:200px;width:130px;transform:rotate(0);background:linear-gradient(90deg,var(--s-deep),var(--s-lift));box-shadow:0 0 0 12px var(--s-hi-soft);height:650px}
|
|
1095
|
-
.scene-signs .scene-type{inset:170px 350px 230px 140px;padding:55px 85px;background:color-mix(in srgb,var(--hi) 22%,var(--s-deep));border:14px double color-mix(in srgb,var(--hi) 55%,var(--fg));box-shadow:20px 25px 0 var(--s-deep),0 50px 100px #00000088;transform:perspective(1500px) rotateY(10deg) rotateZ(-5deg)}
|
|
1096
|
-
.scene-signs .scene-title{font-size:155px!important;letter-spacing:-5px;color:color-mix(in srgb,var(--hi) 55%,var(--fg));text-shadow:3px 5px 0 color-mix(in srgb,var(--hi) 40%,#000);font-family:Georgia,serif!important}
|
|
1097
|
-
.scene-signs .scene-eyebrow{font-size:20px;letter-spacing:6px;color:var(--muted);margin-bottom:25px}
|
|
1098
|
-
.scene-signs .scene-sculpture{border-radius:12px;background:color-mix(in srgb,var(--em) 40%,var(--s-deep));width:220px;height:980px;bottom:-430px;right:185px;transform:rotate(9deg);box-shadow:15px 0 0 var(--s-deep)}
|
|
1099
|
-
.scene-signs .scene-sculpture i{border:8px double var(--fg);background:color-mix(in srgb,var(--em) 50%,var(--s-deep));border-radius:16px;inset:120px -90px auto;height:180px;opacity:1}
|
|
1100
|
-
|
|
1101
|
-
/* terminal hacker */
|
|
1102
|
-
.scene-terminal{color:var(--hi)}
|
|
1103
|
-
.scene-terminal .scene-atmosphere{background:radial-gradient(ellipse at 50% 50%,color-mix(in srgb,var(--hi) 14%,var(--bg)) 0,var(--s-deep) 72%)}
|
|
1104
|
-
.scene-terminal .scene-code{position:absolute;inset:40px 60px;margin:0;font:21px/1.5 "Cascadia Mono",Consolas,monospace;color:var(--hi);opacity:.25;white-space:pre;column-count:2;column-gap:80px;overflow:hidden}
|
|
1105
|
-
.scene-terminal .scene-scan{position:absolute;inset:0;background:repeating-linear-gradient(0deg,#0000 0 3px,#00000055 3px 4px);box-shadow:inset 0 0 240px #000000cc}
|
|
1106
|
-
.scene-terminal .scene-type{inset:150px 190px 200px;padding:60px 80px;background:color-mix(in srgb,var(--s-deep) 93%,transparent);border:2px solid color-mix(in srgb,var(--hi) 40%,transparent);border-radius:10px;box-shadow:0 0 70px var(--s-hi-soft)}
|
|
1107
|
-
.scene-terminal .scene-title{font-family:"Cascadia Mono",Consolas,"Courier New",monospace!important;font-weight:700!important;line-height:1.05!important;text-transform:none;color:var(--hi);text-shadow:0 0 6px color-mix(in srgb,var(--hi) 80%,transparent),0 0 28px var(--s-hi-soft)}
|
|
1108
|
-
.scene-terminal .scene-title>p:last-child::after,.scene-terminal .scene-title:not(:has(p))::after{content:"";display:inline-block;width:.55em;height:.8em;margin-left:.15em;vertical-align:-.05em;background:currentColor;box-shadow:0 0 18px var(--hi)}
|
|
1109
|
-
.scene-terminal .scene-eyebrow{font-family:"Cascadia Mono",Consolas,monospace;font-size:26px;letter-spacing:1px;text-transform:none;color:var(--fg)}
|
|
1110
|
-
.scene-terminal .scene-eyebrow::before{content:"saga@deck:~$ ";color:var(--hi)}
|
|
1111
|
-
.scene-terminal .scene-subtitle{font-family:"Cascadia Mono",Consolas,monospace;color:color-mix(in srgb,var(--fg) 75%,var(--hi));letter-spacing:0}
|
|
1112
|
-
.scene-terminal .scene-subtitle::before{content:"# ";color:var(--muted)}
|
|
1113
|
-
.scene-terminal .scene-caption{font-family:"Cascadia Mono",Consolas,monospace}
|
|
1114
|
-
|
|
1115
|
-
/* lousa de café */
|
|
1116
|
-
.scene-cafe .scene-atmosphere{background:radial-gradient(circle at 20% 30%,#ffffff0d 0 2px,transparent 3px) 0 0/37px 41px,radial-gradient(circle at 70% 60%,#ffffff0a 0 1px,transparent 2px) 0 0/23px 29px,radial-gradient(ellipse at 40% 40%,color-mix(in srgb,var(--bg) 82%,var(--hi)),var(--s-deep) 78%);box-shadow:inset 0 0 0 46px color-mix(in srgb,var(--em) 35%,#3b2414),inset 0 0 0 54px color-mix(in srgb,var(--em) 20%,#1e120a),inset 0 0 160px 70px #00000099}
|
|
1117
|
-
.scene-cafe .scene-type{inset:150px 720px 170px 150px}
|
|
1118
|
-
.scene-cafe .scene-title{font-family:"Segoe Print","Bradley Hand","Chalkboard SE","Comic Sans MS",cursive!important;font-weight:700!important;line-height:1.02!important;text-transform:none;color:var(--fg);transform:rotate(-3deg);text-shadow:0 0 2px color-mix(in srgb,var(--fg) 60%,transparent),3px 3px 0 #00000033}
|
|
1119
|
-
.scene-cafe .scene-eyebrow{font-family:"Segoe Print","Bradley Hand",cursive;font-size:30px;letter-spacing:3px;color:var(--hi);text-transform:none}
|
|
1120
|
-
.scene-cafe .scene-subtitle{font-family:"Segoe Print","Bradley Hand",cursive;color:color-mix(in srgb,var(--fg) 80%,var(--hi))}
|
|
1121
|
-
.scene-cafe .scene-neon{position:absolute;top:120px;right:190px;padding:4px 40px 12px;border:4px solid var(--em);border-radius:48px;font:700 64px/1.1 "Segoe Script","Brush Script MT",cursive;color:color-mix(in srgb,var(--em) 25%,#fff);text-shadow:0 0 6px var(--em),0 0 22px var(--em),0 0 48px var(--em);box-shadow:0 0 18px var(--em),inset 0 0 18px var(--em);transform:rotate(4deg)}
|
|
1122
|
-
.scene-cafe .scene-menu{position:absolute;right:150px;top:350px;width:500px;margin:0;padding:0;list-style:none;display:grid;gap:28px;font:34px/1.2 "Segoe Print","Bradley Hand","Comic Sans MS",cursive;color:var(--fg)}
|
|
1123
|
-
.scene-cafe .scene-menu li{display:flex;justify-content:space-between;gap:20px;padding-bottom:10px;border-bottom:3px dashed color-mix(in srgb,var(--fg) 35%,transparent)}
|
|
1124
|
-
.scene-cafe .scene-menu li span:last-child{color:var(--hi)}
|
|
1125
|
-
.scene-cafe .scene-caption{left:150px;bottom:80px}
|
|
1126
|
-
|
|
1127
|
-
/* cartão de embarque */
|
|
1128
|
-
.scene-travel .scene-atmosphere{background:linear-gradient(180deg,color-mix(in srgb,var(--em) 70%,var(--bg)) 0,color-mix(in srgb,var(--hi) 45%,var(--bg)) 34%,color-mix(in srgb,var(--hi) 18%,var(--bg)) 56%,color-mix(in srgb,var(--em) 25%,var(--s-deep)) 56.3%,color-mix(in srgb,var(--em) 40%,var(--s-deep)) 100%)}
|
|
1129
|
-
.scene-travel .scene-atmosphere::after{content:"";position:absolute;left:44%;top:300px;width:300px;height:300px;border-radius:50%;background:color-mix(in srgb,var(--hi) 25%,#fff);box-shadow:0 0 140px 30px color-mix(in srgb,var(--hi) 30%,#fff)}
|
|
1130
|
-
.scene-travel .scene-type{inset:180px 640px 190px 150px;padding:110px 80px 60px;background:var(--s-paper);color:var(--fg);border-radius:30px 0 0 30px;box-shadow:0 40px 90px #00000040}
|
|
1131
|
-
.scene-travel .scene-type::before{content:"";position:absolute;left:0;right:0;top:0;height:58px;border-radius:30px 0 0 0;background:var(--fg)}
|
|
1132
|
-
.scene-travel .scene-title{font-weight:900!important;line-height:.95!important;letter-spacing:-3px;color:var(--fg)}
|
|
1133
|
-
.scene-travel .scene-eyebrow{color:var(--em);letter-spacing:8px;margin-bottom:26px}
|
|
1134
|
-
.scene-travel .scene-subtitle{color:var(--muted);margin-top:34px}
|
|
1135
|
-
.scene-travel .scene-pass{position:absolute;top:180px;right:150px;bottom:190px;width:490px;padding:26px 44px 40px;background:var(--s-paper);color:var(--fg);border-left:6px dashed var(--line);border-radius:0 30px 30px 0;box-shadow:0 40px 90px #00000040;display:flex;flex-direction:column;gap:26px}
|
|
1136
|
-
.scene-travel .scene-pass-top{height:32px;margin:-26px -44px 0;padding:14px 44px 0;background:var(--fg);color:var(--s-paper);font-size:16px;font-weight:700;letter-spacing:4px;border-radius:0 30px 0 0;box-sizing:content-box}
|
|
1137
|
-
.scene-travel .scene-pass dl{display:grid;grid-template-columns:1fr 1fr;gap:22px 20px;margin:0}
|
|
1138
|
-
.scene-travel .scene-pass dt{font-size:15px;letter-spacing:3px;color:var(--muted)}
|
|
1139
|
-
.scene-travel .scene-pass dd{margin:2px 0 0;font-size:42px;font-weight:800}
|
|
1140
|
-
.scene-travel .scene-barcode{margin-top:auto;height:90px}
|
|
1141
|
-
.scene-travel .scene-caption{left:150px;bottom:80px;color:color-mix(in srgb,var(--s-paper) 85%,transparent)}
|
|
1142
|
-
|
|
1143
|
-
/* pregão financeiro */
|
|
1144
|
-
.scene-ticker .scene-atmosphere{background:repeating-linear-gradient(0deg,color-mix(in srgb,var(--fg) 6%,transparent) 0 1px,transparent 1px 90px),repeating-linear-gradient(90deg,color-mix(in srgb,var(--fg) 5%,transparent) 0 1px,transparent 1px 128px),radial-gradient(ellipse at 70% 30%,color-mix(in srgb,var(--hi) 18%,var(--bg)),var(--s-deep) 70%)}
|
|
1145
|
-
.scene-ticker .scene-tape{position:absolute;left:0;right:0;top:0;height:72px;display:flex;gap:64px;align-items:center;padding-left:40px;white-space:nowrap;background:var(--s-deep);border-bottom:2px solid var(--line);font:600 26px/1 "Cascadia Mono",Consolas,monospace;color:var(--muted)}
|
|
1146
|
-
.scene-ticker .scene-tape b{font-weight:700}
|
|
1147
|
-
.scene-ticker .up{color:var(--hi)}.scene-ticker .down{color:var(--em)}
|
|
1148
|
-
.scene-ticker .scene-candles{position:absolute;left:760px;right:0;bottom:120px;height:620px;opacity:.7}
|
|
1149
|
-
.scene-ticker .candle{position:absolute;left:var(--x);bottom:var(--y);width:26px;height:var(--h);border-radius:3px;background:currentColor}
|
|
1150
|
-
.scene-ticker .candle::before{content:"";position:absolute;left:12px;width:2px;top:-26px;bottom:-26px;background:currentColor}
|
|
1151
|
-
.scene-ticker .scene-type{inset:72px 0 0;padding:80px 125px 170px;background:linear-gradient(90deg,var(--s-deep) 0,color-mix(in srgb,var(--s-deep) 85%,transparent) 42%,transparent 78%)}
|
|
1152
|
-
.scene-ticker .scene-title{font-weight:900!important;line-height:.92!important;letter-spacing:-5px;color:var(--fg)}
|
|
1153
|
-
.scene-ticker .scene-eyebrow{color:var(--hi);letter-spacing:8px}
|
|
1154
|
-
.scene-ticker .scene-eyebrow::before{content:"";display:inline-block;margin-right:18px;border:12px solid transparent;border-bottom:18px solid var(--hi);border-top:0;vertical-align:4px}
|
|
1155
|
-
.scene-ticker .scene-subtitle{color:var(--muted)}
|
|
1156
|
-
|
|
1157
|
-
/* letreiro de cinema: a placa é o inverso do slide (papel = --fg, tinta = --bg) */
|
|
1158
|
-
.scene-marquee .scene-atmosphere{background:radial-gradient(ellipse at 50% 42%,color-mix(in srgb,var(--em) 40%,var(--bg)) 0,var(--s-deep) 62%,color-mix(in srgb,var(--s-deep) 60%,#000))}
|
|
1159
|
-
.scene-marquee .scene-curtain{position:absolute;top:0;bottom:0;width:320px;background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--em) 55%,#000) 0 26px,var(--em) 44px,color-mix(in srgb,var(--em) 55%,#000) 64px);box-shadow:inset -50px 0 70px #000000aa}
|
|
1160
|
-
.scene-marquee .scene-curtain.left{left:0}.scene-marquee .scene-curtain.right{right:0;transform:scaleX(-1)}
|
|
1161
|
-
.scene-marquee .scene-ticket{position:absolute;top:66px;left:50%;transform:translateX(-50%);padding:8px 26px;border:2px solid var(--hi);color:var(--hi);font:700 22px/1 "Segoe UI",Arial,sans-serif;letter-spacing:8px}
|
|
1162
|
-
.scene-marquee .scene-type{inset:180px 400px 240px;padding:44px 70px;background:repeating-linear-gradient(180deg,var(--fg) 0 58px,color-mix(in srgb,var(--fg) 88%,var(--bg)) 58px 60px);color:var(--bg);border-radius:12px;align-items:center;text-align:center;box-shadow:0 0 0 24px var(--s-deep),0 0 0 28px var(--hi),0 0 110px 40px var(--s-hi-soft)}
|
|
1163
|
-
.scene-marquee .scene-type::before{content:"";position:absolute;inset:-24px;border:24px solid transparent;border-radius:30px;background:radial-gradient(circle,color-mix(in srgb,var(--hi) 30%,#fff) 0 5px,var(--hi) 6px 8px,transparent 9px) 0 0/40px 40px border-box;-webkit-mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
|
|
1164
|
-
.scene-marquee .scene-title{font-family:"Arial Black","Segoe UI Black",Impact,sans-serif!important;font-weight:900!important;line-height:1!important;letter-spacing:4px;color:var(--bg)}
|
|
1165
|
-
.scene-marquee .scene-eyebrow{color:var(--em);letter-spacing:12px;margin-bottom:24px}
|
|
1166
|
-
.scene-marquee .scene-subtitle{color:color-mix(in srgb,var(--bg) 80%,var(--fg));margin-top:28px}
|
|
1167
|
-
.scene-marquee .scene-caption{left:50%;transform:translateX(-50%);color:var(--hi);white-space:nowrap}
|
|
1168
|
-
|
|
1169
|
-
/* planta técnica (tom de destaque: o papel é a cor de destaque do tema) */
|
|
1170
|
-
.scene-blueprint .scene-atmosphere{background:repeating-linear-gradient(0deg,color-mix(in srgb,var(--fg) 16%,transparent) 0 2px,transparent 2px 120px),repeating-linear-gradient(90deg,color-mix(in srgb,var(--fg) 16%,transparent) 0 2px,transparent 2px 120px),repeating-linear-gradient(0deg,color-mix(in srgb,var(--fg) 8%,transparent) 0 1px,transparent 1px 24px),repeating-linear-gradient(90deg,color-mix(in srgb,var(--fg) 8%,transparent) 0 1px,transparent 1px 24px),radial-gradient(ellipse at 40% 40%,color-mix(in srgb,var(--bg) 88%,#fff),color-mix(in srgb,var(--bg) 82%,#000) 80%)}
|
|
1171
|
-
.scene-blueprint .scene-atmosphere::after{content:"";position:absolute;inset:40px;border:3px solid color-mix(in srgb,var(--fg) 65%,transparent)}
|
|
1172
|
-
.scene-blueprint .scene-type{inset:190px 200px 280px 200px}
|
|
1173
|
-
.scene-blueprint .scene-title{font-family:Bahnschrift,"DIN Alternate","Arial Narrow",Arial,sans-serif!important;font-weight:300!important;line-height:1!important;letter-spacing:6px;color:transparent;-webkit-text-stroke:3px var(--fg)}
|
|
1174
|
-
.scene-blueprint .scene-eyebrow,.scene-blueprint .scene-caption{font-family:"Cascadia Mono",Consolas,monospace;letter-spacing:6px;color:var(--muted)}
|
|
1175
|
-
.scene-blueprint .scene-subtitle{color:var(--fg);font-family:"Cascadia Mono",Consolas,monospace;font-size:28px;letter-spacing:1px}
|
|
1176
|
-
.scene-blueprint .scene-dim{position:absolute;color:var(--fg);font:20px/1 "Cascadia Mono",Consolas,monospace;--l:color-mix(in srgb,var(--fg) 60%,transparent)}
|
|
1177
|
-
.scene-blueprint .scene-dim.h{left:200px;right:200px;top:120px;border-top:2px solid var(--l)}
|
|
1178
|
-
.scene-blueprint .scene-dim.v{top:190px;bottom:280px;left:120px;border-left:2px solid var(--l)}
|
|
1179
|
-
.scene-blueprint .scene-dim::before,.scene-blueprint .scene-dim::after{content:"";position:absolute;background:var(--l)}
|
|
1180
|
-
.scene-blueprint .scene-dim.h::before,.scene-blueprint .scene-dim.h::after{top:-14px;width:2px;height:26px}.scene-blueprint .scene-dim.h::before{left:0}.scene-blueprint .scene-dim.h::after{right:0}
|
|
1181
|
-
.scene-blueprint .scene-dim.v::before,.scene-blueprint .scene-dim.v::after{left:-14px;height:2px;width:26px}.scene-blueprint .scene-dim.v::before{top:0}.scene-blueprint .scene-dim.v::after{bottom:0}
|
|
1182
|
-
.scene-blueprint .scene-dim span{position:absolute;padding:0 12px;background:var(--bg)}
|
|
1183
|
-
.scene-blueprint .scene-dim.h span{left:50%;top:-11px;transform:translateX(-50%)}
|
|
1184
|
-
.scene-blueprint .scene-dim.v span{top:50%;left:-11px;transform:translate(-50%,-50%) rotate(-90deg)}
|
|
1185
|
-
.scene-blueprint .scene-stamp{position:absolute;right:40px;bottom:40px;border-collapse:collapse;font:18px/1 "Cascadia Mono",Consolas,monospace;color:var(--fg);background:var(--bg)}
|
|
1186
|
-
.scene-blueprint .scene-stamp td{border:2px solid color-mix(in srgb,var(--fg) 65%,transparent);padding:11px 18px}.scene-blueprint .scene-stamp td:first-child{color:var(--muted);letter-spacing:3px}
|
|
1187
|
-
.scene-blueprint .scene-caption{left:200px;bottom:66px}
|
|
1188
|
-
|
|
1189
|
-
/* capa de revista */
|
|
1190
|
-
.scene-magazine .scene-atmosphere{background:radial-gradient(ellipse at 72% 62%,color-mix(in srgb,var(--hi) 30%,var(--bg)) 0,var(--bg) 58%)}
|
|
1191
|
-
.scene-magazine .scene-masthead{position:absolute;top:24px;left:104px;font:900 300px/.85 Didot,"Bodoni MT","Playfair Display",Georgia,serif;letter-spacing:-8px;color:var(--em)}
|
|
1192
|
-
.scene-magazine .scene-issue{position:absolute;top:300px;left:112px;display:flex;align-items:center;gap:18px;font:700 20px/1 "Segoe UI",Arial,sans-serif;letter-spacing:5px;color:var(--fg)}
|
|
1193
|
-
.scene-magazine .scene-issue i{width:9px;height:9px;border-radius:50%;background:var(--em)}
|
|
1194
|
-
.scene-magazine .scene-lines{position:absolute;right:110px;top:170px;width:430px;margin:0;padding:0;list-style:none;display:grid;gap:36px;font:500 31px/1.15 Georgia,serif;color:var(--fg)}
|
|
1195
|
-
.scene-magazine .scene-lines b{display:block;margin-bottom:6px;font:900 22px/1 "Segoe UI",Arial,sans-serif;letter-spacing:4px;text-transform:uppercase;color:var(--em)}
|
|
1196
|
-
.scene-magazine .scene-barcode{position:absolute;right:110px;bottom:56px;width:230px;height:110px;color:var(--fg);border:10px solid var(--s-paper);box-shadow:0 0 0 1px var(--line)}
|
|
1197
|
-
.scene-magazine .scene-type{inset:370px 620px 140px 104px;justify-content:flex-end}
|
|
1198
|
-
.scene-magazine .scene-title{font-family:Didot,"Bodoni MT",Georgia,serif!important;font-weight:900!important;font-style:italic;line-height:.9!important;letter-spacing:-4px;color:var(--fg)}
|
|
1199
|
-
.scene-magazine .scene-eyebrow{align-self:flex-start;padding:8px 16px;margin-bottom:26px;background:var(--fg);color:var(--bg);letter-spacing:6px}
|
|
1200
|
-
.scene-magazine .scene-subtitle{margin-top:30px;font-family:Georgia,serif;font-style:italic;color:var(--muted)}
|
|
1201
|
-
.scene-magazine .scene-caption{left:112px;bottom:56px}
|
|
1202
|
-
|
|
1203
|
-
/* órbita */
|
|
1204
|
-
.scene-orbit .scene-atmosphere{background:radial-gradient(ellipse at 18% 18%,color-mix(in srgb,var(--em) 25%,var(--bg)),var(--s-deep) 62%)}
|
|
1205
|
-
.scene-orbit .scene-atmosphere::after{content:"";position:absolute;left:-25%;right:-25%;top:760px;height:1900px;border-radius:50%;background:radial-gradient(ellipse at 50% 0,color-mix(in srgb,var(--hi) 50%,#fff) 0,var(--hi) 7%,color-mix(in srgb,var(--hi) 35%,var(--s-deep)) 28%,var(--s-deep) 50%);box-shadow:0 -6px 50px color-mix(in srgb,var(--hi) 65%,transparent),0 -1px 0 2px color-mix(in srgb,var(--hi) 40%,#fff)}
|
|
1206
|
-
.scene-orbit .scene-stars{position:absolute;inset:0;background-image:radial-gradient(var(--fg) 0 1.4px,transparent 2px),radial-gradient(color-mix(in srgb,var(--fg) 70%,var(--hi)) 0 1px,transparent 1.6px),radial-gradient(var(--fg) 0 2px,transparent 2.6px);background-size:173px 151px,97px 113px,419px 367px;background-position:13px 29px,61px 7px,200px 90px}
|
|
1207
|
-
.scene-orbit .scene-stars.far{opacity:.45;background-size:61px 71px,131px 83px,251px 229px;background-position:5px 40px,33px 17px,90px 150px}
|
|
1208
|
-
.scene-orbit .scene-hud{position:absolute;right:110px;top:90px;display:grid;gap:12px;text-align:right;font:18px/1 "Cascadia Mono",Consolas,monospace;letter-spacing:4px;color:var(--hi)}
|
|
1209
|
-
.scene-orbit .scene-type{inset:120px 125px 380px;align-items:center;text-align:center}
|
|
1210
|
-
.scene-orbit .scene-title{font-weight:200!important;line-height:1.05!important;letter-spacing:26px;color:var(--fg);text-shadow:0 0 40px var(--s-hi-soft)}
|
|
1211
|
-
.scene-orbit .scene-eyebrow{color:var(--hi);letter-spacing:14px}
|
|
1212
|
-
.scene-orbit .scene-caption{left:50%;transform:translateX(-50%);white-space:nowrap}
|
|
1213
|
-
|
|
1214
|
-
/* neon anos 80 */
|
|
1215
|
-
.scene-synthwave .scene-atmosphere{background:linear-gradient(180deg,var(--s-deep) 0,color-mix(in srgb,var(--em) 25%,var(--bg)) 35%,color-mix(in srgb,var(--em) 60%,var(--bg)) 57%,var(--em) 62%,var(--s-deep) 62.1%)}
|
|
1216
|
-
.scene-synthwave .scene-sun{position:absolute;left:50%;top:150px;width:520px;height:520px;margin-left:-260px;border-radius:50%;background:linear-gradient(180deg,color-mix(in srgb,var(--hi) 40%,#fff) 0,var(--hi) 45%,var(--em) 85%);-webkit-mask:linear-gradient(180deg,#000 0 52%,transparent 52% 56%,#000 56% 64%,transparent 64% 69%,#000 69% 76%,transparent 76% 82%,#000 82% 88%,transparent 88% 94%,#000 94%);filter:drop-shadow(0 0 50px var(--em))}
|
|
1217
|
-
.scene-synthwave .scene-mountains{position:absolute;left:0;right:0;top:520px;height:150px;background:color-mix(in srgb,var(--em) 20%,var(--s-deep));clip-path:polygon(0 100%,0 60%,8% 30%,15% 55%,24% 10%,33% 60%,40% 40%,50% 78%,60% 35%,68% 60%,77% 15%,86% 50%,93% 30%,100% 55%,100% 100%)}
|
|
1218
|
-
.scene-synthwave .scene-grid{position:absolute;left:-60%;right:-60%;top:669px;height:900px;background:repeating-linear-gradient(90deg,var(--em) 0 3px,transparent 3px 120px),repeating-linear-gradient(0deg,var(--em) 0 3px,transparent 3px 80px);transform:perspective(500px) rotateX(62deg);transform-origin:50% 0;-webkit-mask:linear-gradient(#0000,#000 35%)}
|
|
1219
|
-
.scene-synthwave .scene-type{inset:80px 125px 440px;align-items:center;text-align:center}
|
|
1220
|
-
.scene-synthwave .scene-title{font-family:"Arial Black","Segoe UI Black",Impact,sans-serif!important;font-weight:900!important;font-style:italic;line-height:.9!important;background:linear-gradient(180deg,#fff 0,color-mix(in srgb,var(--hi) 40%,#fff) 46%,var(--s-deep) 50%,color-mix(in srgb,var(--em) 30%,#fff) 53%,var(--em) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 0 var(--s-deep)) drop-shadow(0 0 26px var(--s-em-soft))}
|
|
1221
|
-
.scene-synthwave .scene-eyebrow{color:var(--hi);letter-spacing:14px;text-shadow:0 0 12px var(--hi)}
|
|
1222
|
-
.scene-synthwave .scene-subtitle{margin-top:36px;color:color-mix(in srgb,var(--em) 30%,#fff);text-shadow:0 0 14px var(--em)}
|
|
1223
|
-
.scene-synthwave .scene-caption{left:50%;transform:translateX(-50%);color:var(--em);white-space:nowrap}
|
|
1224
|
-
|
|
1225
|
-
/* parede de galeria */
|
|
1226
|
-
.scene-gallery .scene-atmosphere{background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 85%,#fff) 0,var(--bg) 82%,color-mix(in srgb,var(--em) 22%,#8a6a48) 82%,color-mix(in srgb,var(--em) 18%,#5a4430) 100%)}
|
|
1227
|
-
.scene-gallery .scene-spot{position:absolute;inset:0;background:radial-gradient(ellipse 34% 58% at 40% 30%,color-mix(in srgb,var(--bg) 35%,#fff) 0,transparent 100%),radial-gradient(ellipse 12% 20% at 82% 58%,color-mix(in srgb,var(--bg) 35%,#fff) 0,transparent 100%)}
|
|
1228
|
-
.scene-gallery .scene-baseboard{position:absolute;left:0;right:0;top:calc(82% - 16px);height:16px;background:var(--s-paper);box-shadow:0 2px 0 var(--line)}
|
|
1229
|
-
.scene-gallery .scene-plaque{position:absolute;right:170px;top:560px;width:300px;padding:22px 26px;display:grid;gap:4px;background:var(--s-paper);box-shadow:0 2px 8px #00000022;font:18px/1.45 "Segoe UI",Arial,sans-serif;color:var(--muted)}
|
|
1230
|
-
.scene-gallery .scene-plaque b{font-size:21px;color:var(--fg)}
|
|
1231
|
-
.scene-gallery .scene-type{inset:160px 560px 300px 170px}
|
|
1232
|
-
.scene-gallery .scene-title{font-weight:300!important;line-height:1!important;letter-spacing:4px;color:var(--fg);text-shadow:0 1px 0 var(--s-paper),0 3px 4px #0000001f}
|
|
1233
|
-
.scene-gallery .scene-eyebrow{color:var(--muted);letter-spacing:10px}
|
|
1234
|
-
.scene-gallery .scene-subtitle{color:var(--muted);font-family:Georgia,serif;font-style:italic}
|
|
1235
|
-
.scene-gallery .scene-caption{left:170px;bottom:70px;color:color-mix(in srgb,var(--bg) 70%,#fff)}
|
|
1236
|
-
|
|
1237
985
|
/* Ornamentos da pele do tema (runtime/skins/<tema>.css liga e desenha os que usa); atrás do conteúdo */
|
|
1238
986
|
.orn{position:absolute;inset:0;pointer-events:none;overflow:hidden}.orn i{position:absolute;display:none}
|
|
1239
987
|
|
|
@@ -1585,13 +1333,14 @@ html[data-motion="subtle"] .lesson-panel.active{animation:lesson-soft .6s cubic-
|
|
|
1585
1333
|
.calc-outputs{display:flex;flex-direction:column;gap:22px;padding:28px 32px;border-radius:24px;background:color-mix(in srgb,var(--fg) 5%,var(--bg));border:1px solid var(--line)}
|
|
1586
1334
|
.calc-out{display:flex;flex-direction:column;gap:8px}
|
|
1587
1335
|
.calc-out .calc-l{font-size:20px;color:var(--muted)}
|
|
1588
|
-
.calc-formula{font-size:30px}
|
|
1589
|
-
.calc-out-v b{font:700 76px var(--font-display,sans-serif);line-height:1}.calc-out-v small{font-size:26px;color:var(--muted)}
|
|
1336
|
+
.calc-formula{font-size:30px;line-height:1.8;padding:4px 0}
|
|
1337
|
+
.calc-out-v{font-size:76px;line-height:1.1}.calc-out-v b{font:700 76px var(--font-display,sans-serif);line-height:1}.calc-out-v small{font-size:26px;color:var(--muted)}
|
|
1590
1338
|
.calc-badge{align-self:flex-start;padding:8px 22px;border-radius:14px;background:var(--line);color:#fff;font-size:44px;line-height:1.1;transition:background .4s}
|
|
1591
1339
|
.calc-badge:empty{display:none}
|
|
1592
1340
|
.calc-scale{position:relative;height:66px;margin-top:6px}
|
|
1593
|
-
.calc-track{position:absolute;left:0;right:0;top:10px;height:26px;border-radius:13px;overflow:
|
|
1341
|
+
.calc-track{position:absolute;left:0;right:0;top:10px;height:26px;border-radius:13px;overflow:visible;background:var(--line)}
|
|
1594
1342
|
.calc-band{position:absolute;top:0;bottom:0;opacity:.85}.calc-band em{position:absolute;left:8px;top:32px;font-style:normal;font-size:15px;color:var(--muted);white-space:nowrap}
|
|
1343
|
+
.calc-band:first-child{border-radius:13px 0 0 13px}.calc-band:last-child{border-radius:0 13px 13px 0}
|
|
1595
1344
|
.calc-pointer{position:absolute;top:0;width:6px;height:46px;margin-left:-3px;border-radius:3px;background:var(--fg);box-shadow:0 0 0 3px var(--bg);transition:left .3s cubic-bezier(.22,.8,.24,1)}
|
|
1596
1345
|
.calc-note{font-size:22px;color:var(--muted)}
|
|
1597
1346
|
/* ---------- algoritmo animado (algo) ---------- */
|
|
@@ -1753,7 +1502,8 @@ html[data-orient="portrait"] .adaptive:is([data-item-count="1"],[data-item-count
|
|
|
1753
1502
|
.calc-many .calc-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;align-items:center}
|
|
1754
1503
|
.calc-many .calc-outputs{display:grid;grid-template-columns:repeat(var(--calc-columns),minmax(0,1fr));gap:18px 24px;padding:20px 24px}
|
|
1755
1504
|
.calc-many .calc-out{min-width:0;gap:5px}
|
|
1756
|
-
.calc-many .calc-out-v b{font-size:48px}
|
|
1505
|
+
.calc-many .calc-out-v,.calc-many .calc-out-v b{font-size:48px}
|
|
1506
|
+
.calc-many .calc-out-v{line-height:1}
|
|
1757
1507
|
.calc-many .calc-out .calc-l{font-size:18px}
|
|
1758
1508
|
.calc-many .calc-curve{margin:4px 0}
|
|
1759
1509
|
.calc-many .calc-curve svg{height:50px}
|
|
@@ -1781,16 +1531,22 @@ html[data-orient="portrait"] .adaptive:is([data-item-count="1"],[data-item-count
|
|
|
1781
1531
|
.map-preview,.map-live{position:absolute;inset:0;width:100%;height:100%}
|
|
1782
1532
|
.map-box[data-map-mounted="ready"] .map-preview{display:none}
|
|
1783
1533
|
.map-live{background:transparent;font:inherit}.map-live .leaflet-container{font:inherit}
|
|
1784
|
-
|
|
1534
|
+
/* claro: quase cinza, mas o mar guarda um azul leve (cinza puro deixava terra e mar iguais, e a fronteira marítima, 12
|
|
1535
|
+
milhas mar adentro, parecia o litoral: as áreas dos estados pareciam fora do lugar) */
|
|
1536
|
+
.map-box[data-basemap="claro"] .leaflet-tile-pane{filter:saturate(.3) contrast(.95) brightness(1.05)}
|
|
1785
1537
|
.map-box[data-basemap="escuro"] .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) grayscale(.55) brightness(.92) contrast(.9)}
|
|
1538
|
+
.map-box[data-map-background="vetorial"] .leaflet-tile-pane{filter:none}
|
|
1786
1539
|
.map-legend{position:absolute;left:18px;bottom:18px;z-index:500;display:flex;flex-direction:column;gap:10px;max-width:46%;max-height:70%;overflow:auto;padding:14px 18px;border-radius:calc(var(--radius) * .6);background:color-mix(in srgb,var(--bg) 90%,transparent);color:var(--fg);font-size:20px;box-shadow:0 6px 24px rgb(0 0 0/.14)}
|
|
1787
1540
|
.map-legend button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:8px;margin:2px 14px 2px 0}.map-legend button.off,.map-leg-layer.off .map-leg-name{opacity:.38;text-decoration:line-through}
|
|
1788
1541
|
.map-leg-name{font-weight:700}.map-leg-name small{font-weight:400;color:var(--muted)}.map-legend i{display:inline-block;width:16px;height:16px;border-radius:50%;flex:none}
|
|
1789
1542
|
.map-leg-scale{display:flex;align-items:center;gap:8px;font-size:17px;color:var(--muted)}.map-leg-scale i{width:120px;height:10px;border-radius:5px}
|
|
1790
1543
|
.map-notice{position:absolute;top:16px;left:50%;transform:translateX(-50%);z-index:600;display:flex;align-items:center;gap:12px;padding:8px 14px;border-radius:999px;background:var(--fg);color:var(--bg);font-size:17px;white-space:nowrap}
|
|
1791
1544
|
.map-notice button{all:unset;cursor:pointer;text-decoration:underline}
|
|
1792
|
-
|
|
1793
|
-
.
|
|
1545
|
+
/* Só o texto recebe um contorno leve; o rótulo não encobre pontos, linhas ou áreas do mapa.
|
|
1546
|
+
A especificidade também preserva o estilo quando o Leaflet carrega depois do CSS do deck. */
|
|
1547
|
+
.map-box .map-label{font:600 17px/1.2 var(--font-body,sans-serif);background:transparent;color:var(--fg);border:0;border-radius:0;box-shadow:none;padding:2px 4px;white-space:nowrap;text-shadow:0 0 2px var(--bg),0 0 2px var(--bg),0 1px 1px var(--bg)}
|
|
1548
|
+
.map-pt{filter:drop-shadow(0 1px 2px rgb(0 0 0/.4))}.map-bubble{transition:fill-opacity .15s}
|
|
1549
|
+
.map-box .map-label::before{display:none}
|
|
1794
1550
|
.map-card .leaflet-popup-content-wrapper{border-radius:calc(var(--radius) * .6);background:var(--bg);color:var(--fg)}.map-card .leaflet-popup-tip{background:var(--bg)}
|
|
1795
1551
|
.map-card-in{font-size:18px;line-height:1.35}.map-card-in b{display:block;font-size:21px;margin-bottom:6px}.map-card-in table{border-collapse:collapse}.map-card-in th{text-align:left;font-weight:600;color:var(--muted);padding:2px 12px 2px 0}.map-card-in td{padding:2px 0}
|
|
1796
1552
|
.map-box .leaflet-control-attribution{font-size:13px;background:color-mix(in srgb,var(--bg) 82%,transparent);color:var(--muted)}.map-box .leaflet-control-attribution a{color:inherit}
|
package/src/runtime/fit.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
function fitText(root) {
|
|
12
12
|
root.querySelectorAll("[data-fit]").forEach((el) => {
|
|
13
13
|
if (el.hasAttribute("data-vsize")) return; // tamanho escolhido à mão no Studio (visualEdits.size): o ajuste não mexe
|
|
14
|
-
const safe = el.closest(
|
|
14
|
+
const safe = el.closest(".safe") || el.closest(".slide");
|
|
15
15
|
if (!safe) return;
|
|
16
16
|
if (!el.dataset.fs0) el.dataset.fs0 = parseFloat(getComputedStyle(el).fontSize);
|
|
17
17
|
let fs = +el.dataset.fs0;
|
|
@@ -94,7 +94,8 @@
|
|
|
94
94
|
function leakingIn(safe, sc) {
|
|
95
95
|
const tol = 6 * sc, sr = safe.getBoundingClientRect();
|
|
96
96
|
for (const e of safe.querySelectorAll(".row, .col")) if (e.scrollHeight > e.clientHeight + 2) return true;
|
|
97
|
-
|
|
97
|
+
// (o verso do cartão que vira e o balão do + ocupam o mesmo lugar de outro texto de propósito: ficam de fora)
|
|
98
|
+
const texts = [...safe.querySelectorAll(".t")].filter((t) => !t.querySelector(".t") && !t.closest(".flip-back, .pop-card"));
|
|
98
99
|
const tr = texts.map((t) => t.getBoundingClientRect());
|
|
99
100
|
for (const r of tr) {
|
|
100
101
|
if (!r.width) continue;
|