/* ==========================================================================
   Autoral — direções de arte dos slides (tamanho real: 1080 px de largura)
   Variáveis por slide: --s-bg --s-fg --s-accent --s-muted --s-soft --s-line --s-card
   --s-tint --s-on-accent --paper --ink --acc --sup --f-display --f-body --f-hand
   --t-size (título) --b-size (corpo)
   ========================================================================== */

.slide-frame { position: relative; overflow: hidden; border-radius: 6px; background: #111; flex: none; }
.slide-scale { transform-origin: 0 0; width: max-content; }

.slide {
  position: relative; overflow: hidden;
  width: var(--w); height: var(--h);
  background: var(--s-bg); color: var(--s-fg);
  font-family: var(--f-body);
  -webkit-font-smoothing: antialiased; text-rendering: geometricPrecision;
  line-height: 1.3;
}
.slide *, .slide *::before, .slide *::after { box-sizing: border-box; }
.slide p, .slide h2, .slide ol, .slide li { margin: 0; padding: 0; }
.slide ol { list-style: none; }
.slide svg { display: inline-block; }

.sl-media { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.sl-media-in { position: absolute; inset: 0; }
.sl-media img, .sl-media video { width: 100%; height: 100%; object-fit: cover; object-position: var(--fx, 50%) var(--fy, 50%); display: block; }
.sl-deco { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.sl-inner { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; padding: 84px 84px 76px; }
.sl-top, .sl-foot { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex: none; }
.sl-content { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; justify-content: flex-start; gap: 34px; overflow: hidden; padding: 40px 0; }
/* Centraliza com margens automáticas (se o texto transbordar, ele alinha no topo e a medição de ajuste funciona) */
.sl-content > :first-child { margin-top: auto; }
.sl-content > :last-child { margin-bottom: auto; }
.sl-content.end > :last-child, .lay-cover .sl-content > :last-child, .lay-image .sl-content > :last-child, .has-media .sl-content > :last-child { margin-bottom: 0; }
.sl-title { font-family: var(--f-display); font-size: var(--t-size); line-height: 1.04; letter-spacing: -0.025em; font-weight: 700; overflow-wrap: break-word; }
.sl-title-sm { font-size: calc(var(--t-size) * 0.9); }
.sl-body { font-size: var(--b-size); line-height: 1.42; color: var(--s-muted); max-width: 30ch; overflow-wrap: break-word; }
.sl-kicker { font-size: 25px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
.sl-folio { font-size: 24px; font-weight: 500; letter-spacing: 0.06em; color: var(--s-muted); font-variant-numeric: tabular-nums; }
.sl-handle { font-size: 25px; font-weight: 600; color: var(--s-muted); }
.sl-arrow { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; border: 2px solid currentColor; color: var(--s-fg); }
.sl-arrow svg { width: 30px; height: 30px; }
.sl-need { display: block; font-family: var(--f-body); font-size: 34px; font-weight: 500; line-height: 1.4; letter-spacing: 0; padding: 30px 34px; border: 3px dashed var(--s-accent); border-radius: 24px; color: var(--s-muted); }
.sl-avatar { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; flex: none; background: var(--s-tint); }
.sl-avatar-txt { display: grid; place-items: center; font-weight: 800; font-size: 38px; background: var(--s-accent); color: var(--s-on-accent); }
.slide.overflow .sl-content { box-shadow: inset 0 -6px 0 0 #ff5b4a; }

/* Lista */
.sl-list { display: flex; flex-direction: column; gap: 22px; }
.sl-list li { display: flex; gap: 24px; align-items: flex-start; font-size: calc(var(--b-size) * 1.12); line-height: 1.35; font-weight: 500; }
.sl-li-n { flex: none; display: grid; place-items: center; min-width: 56px; height: 56px; border-radius: 50%; background: var(--s-accent); color: var(--s-on-accent); font-weight: 700; font-size: 26px; }
.sl-li-n svg { width: 28px; height: 28px; }

/* Comparação */
.sl-compare { display: grid; grid-template-columns: 1fr; gap: 26px; }
.sl-col { padding: 34px 38px; border-radius: 28px; }
.sl-col p { font-size: calc(var(--b-size) * 1.08); line-height: 1.38; }
.sl-col-l { display: inline-flex; align-items: center; gap: 12px; font-size: 22px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 16px; }
.sl-col-l svg { width: 26px; height: 26px; }
.sl-col-a { background: var(--s-card); color: var(--s-muted); }
.sl-col-a p { text-decoration: line-through; text-decoration-thickness: 3px; text-decoration-color: var(--s-accent); }
.sl-col-b { background: var(--s-accent); color: var(--s-on-accent); }
.sl-col-b p { font-weight: 600; }

/* Passo */
.sl-num { font-family: var(--f-display); font-size: 200px; line-height: 0.85; font-weight: 700; color: var(--s-accent); letter-spacing: -0.05em; }

/* Citação */
.sl-qmark { font-family: 'Fraunces', Georgia, serif; font-size: 260px; line-height: 0.6; height: 110px; color: var(--s-accent); font-weight: 700; }
.lay-quote .sl-title { font-size: calc(var(--t-size) * 0.94); line-height: 1.1; }

/* Chamada final */
.sl-cta-card { display: flex; align-items: center; gap: 24px; padding: 26px 30px; border-radius: 999px; background: var(--s-card); color: var(--s-fg); align-self: flex-start; }
.sl-cta-card strong { display: block; font-size: 30px; }
.sl-cta-card small { display: block; font-size: 24px; color: var(--s-muted); margin-top: 2px; }
.sl-cta-follow { margin-left: 20px; padding: 16px 30px; border-radius: 999px; background: var(--s-accent); color: var(--s-on-accent); font-weight: 700; font-size: 26px; }

/* Imagem */

/* Formatos */
.fmt-1x1 .sl-inner { padding: 70px 76px 64px; }
.fmt-1x1 .sl-content { gap: 26px; padding: 26px 0; }
.fmt-9x16 .sl-inner { padding: 240px 84px 260px; }

/* ==========================================================================
   EDITORIAL — revista
   ========================================================================== */
.kit-editorial .sl-top { padding-bottom: 24px; border-bottom: 2px solid var(--s-fg); }
.kit-editorial .sl-foot { padding-top: 24px; border-top: 2px solid var(--s-fg); }
.kit-editorial .sl-kicker { font-family: var(--f-body); font-size: 23px; letter-spacing: 0.16em; }
.kit-editorial .sl-folio { font-family: 'Fraunces', serif; font-style: italic; font-size: 30px; letter-spacing: 0; color: var(--s-fg); }
.kit-editorial .sl-title { font-weight: 500; letter-spacing: -0.02em; line-height: 1.04; font-optical-sizing: auto; }
.kit-editorial .sl-title em { font-style: italic; color: var(--s-accent); font-weight: 400; }
.kit-editorial .sl-body { font-size: var(--b-size); max-width: 32ch; }
.kit-editorial .sl-arrow { border-radius: 0; border: 0; width: auto; height: auto; }
.kit-editorial .sl-arrow svg { width: 44px; height: 44px; }
.kit-editorial.lay-cover .sl-title { font-size: calc(var(--t-size) * 1.02); }
.kit-editorial.has-media .sl-media { top: 190px; left: 84px; right: 84px; bottom: auto; height: 50%; }
.kit-editorial.has-media .sl-top { margin-bottom: calc(var(--h) * 0.5 + 40px); }
.fmt-1x1.kit-editorial.has-media .sl-top { margin-bottom: calc(var(--h) * 0.42 + 44px); }
.fmt-9x16.kit-editorial.has-media .sl-top { margin-bottom: calc(var(--h) * 0.44 + 60px); }
.fmt-1x1.kit-editorial.has-media .sl-media { height: 42%; top: 160px; }
.fmt-9x16.kit-editorial.has-media .sl-media { top: 350px; height: 44%; }
.kit-editorial.has-media.lay-cover .sl-title { font-size: calc(var(--t-size) * 0.82); }
.kit-editorial .sl-li-n { background: none; color: var(--s-accent); font-family: 'Fraunces', serif; font-style: italic; font-size: 44px; font-weight: 500; border-radius: 0; min-width: 64px; justify-content: start; }
.kit-editorial .sl-list li { padding-bottom: 22px; border-bottom: 1px solid var(--s-line); }
.kit-editorial .sl-list li:last-child { border-bottom: 0; }
.kit-editorial .sl-num { font-family: 'Fraunces', serif; font-style: italic; font-weight: 400; font-size: 240px; }
.kit-editorial .sl-col { border-radius: 0; padding: 30px 0 0; background: none; border-top: 2px solid var(--s-fg); }
.kit-editorial .sl-col-b { color: var(--s-fg); }
.kit-editorial .sl-col-b .sl-col-l { color: var(--s-accent); }
.kit-editorial .sl-col-b p { font-family: var(--f-display); font-size: calc(var(--b-size) * 1.3); font-weight: 500; line-height: 1.2; letter-spacing: -0.02em; }
.kit-editorial.lay-quote .sl-title { font-style: italic; font-weight: 400; }
.kit-editorial.lay-quote .sl-title em { font-style: normal; }
.kit-editorial.bg-ink .sl-top, .kit-editorial.bg-ink .sl-foot, .kit-editorial.bg-accent .sl-top, .kit-editorial.bg-accent .sl-foot { border-color: var(--s-line); }
.kit-editorial .sl-cta-card { border-radius: 0; background: none; padding: 0; }

/* ==========================================================================
   MANIFESTO — condensada, caixa alta, blocos de cor
   ========================================================================== */
.kit-manifesto .sl-title { text-transform: uppercase; font-weight: 400; letter-spacing: 0; line-height: 0.98; }
.kit-manifesto .sl-title em { font-style: normal; background: var(--s-accent); color: var(--s-on-accent); padding: 0 0.12em; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.kit-manifesto.bg-accent .sl-title em { background: var(--s-fg); color: var(--s-bg); }
.kit-manifesto .sl-kicker { font-family: var(--f-display); font-weight: 400; font-size: 30px; letter-spacing: 0.04em; padding: 10px 18px 8px; background: var(--s-accent); color: var(--s-on-accent); }
.kit-manifesto.bg-accent .sl-kicker { background: var(--s-fg); color: var(--s-bg); }
.kit-manifesto .sl-folio { font-family: var(--f-display); font-size: 36px; color: var(--s-fg); letter-spacing: 0.02em; }
.kit-manifesto .sl-handle { font-family: var(--f-display); font-weight: 400; font-size: 30px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--s-fg); }
.kit-manifesto .sl-body { font-size: calc(var(--b-size) * 1.02); color: var(--s-soft); font-weight: 500; max-width: 34ch; }
.kit-manifesto .sl-deco { border-bottom: 18px solid var(--s-accent); }
.kit-manifesto.bg-accent .sl-deco { border-color: var(--s-fg); }
.kit-manifesto .sl-arrow { border-radius: 0; border-width: 4px; }
.kit-manifesto.has-media .sl-media img, .kit-manifesto.has-media .sl-media video { filter: grayscale(1) contrast(1.1); }
.kit-manifesto.has-media .sl-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, color-mix(in srgb, var(--s-bg) 30%, transparent) 0%, color-mix(in srgb, var(--s-bg) 55%, transparent) 45%, var(--s-bg) 88%); }
.kit-manifesto .sl-num { font-weight: 400; font-size: 300px; color: transparent; -webkit-text-stroke: 5px var(--s-accent); line-height: 0.8; }
.kit-manifesto .sl-li-n { border-radius: 0; font-family: var(--f-display); font-weight: 400; font-size: 34px; }
.kit-manifesto .sl-list li { font-weight: 600; }
.kit-manifesto .sl-col { border-radius: 0; }
.kit-manifesto .sl-col-l { font-family: var(--f-display); font-weight: 400; font-size: 30px; letter-spacing: 0.04em; }
.kit-manifesto .sl-col-b p { font-family: var(--f-display); font-weight: 400; text-transform: uppercase; font-size: calc(var(--b-size) * 1.4); line-height: 1.05; }
.kit-manifesto .sl-qmark { font-family: var(--f-display); font-size: 300px; height: 130px; color: var(--s-fg); }
.kit-manifesto .sl-cta-card { border-radius: 0; }
.kit-manifesto .sl-cta-follow { border-radius: 0; font-family: var(--f-display); font-weight: 400; text-transform: uppercase; letter-spacing: 0.04em; }

/* ==========================================================================
   CLÍNICO — limpo, arredondado, suave
   ========================================================================== */
.kit-clinico .sl-title { font-weight: 800; letter-spacing: -0.035em; line-height: 1.06; }
.kit-clinico .sl-title em { font-style: normal; color: var(--s-accent); }
.kit-clinico .sl-kicker { display: inline-flex; align-items: center; gap: 12px; padding: 14px 24px; border-radius: 999px; background: var(--s-tint); color: var(--s-fg); font-size: 22px; letter-spacing: 0.08em; font-weight: 700; }
.kit-clinico .sl-kicker::before { content: ""; width: 12px; height: 12px; border-radius: 50%; background: var(--s-accent); }
.kit-clinico .sl-folio { padding: 12px 20px; border-radius: 999px; border: 2px solid var(--s-line); font-size: 22px; font-weight: 700; }
.kit-clinico .sl-body { font-weight: 500; max-width: 33ch; }
.kit-clinico .sl-deco { background: radial-gradient(60% 45% at 100% 0%, var(--s-tint), transparent 70%); }
.kit-clinico.has-media .sl-media { top: 190px; left: 84px; right: 84px; height: 46%; border-radius: 48px; bottom: auto; }
.kit-clinico.has-media .sl-top { margin-bottom: calc(var(--h) * 0.46 + 30px); }
.fmt-1x1.kit-clinico.has-media .sl-media { top: 160px; height: 40%; }
.fmt-1x1.kit-clinico.has-media .sl-top { margin-bottom: calc(var(--h) * 0.4 + 30px); }
.fmt-9x16.kit-clinico.has-media .sl-top { margin-bottom: calc(var(--h) * 0.4 + 56px); }
.fmt-9x16.kit-clinico.has-media .sl-media { top: 340px; height: 40%; }
.kit-clinico.has-media.lay-cover .sl-title { font-size: calc(var(--t-size) * 0.8); }
.kit-clinico .sl-list li { padding: 24px 28px; border-radius: 28px; background: var(--s-card); align-items: center; }
.kit-clinico .sl-num { width: 150px; height: 150px; border-radius: 50%; display: grid; place-items: center; background: var(--s-accent); color: var(--s-on-accent); font-size: 64px; font-weight: 800; letter-spacing: -0.03em; }
.kit-clinico .sl-col-a { background: var(--s-card); }
.kit-clinico.lay-quote .sl-content { padding: 56px; border-radius: 44px; background: var(--s-card); margin: 30px 0; }
.kit-clinico.bg-accent.lay-quote .sl-content { background: color-mix(in srgb, var(--s-fg) 10%, transparent); }
.kit-clinico .sl-qmark { font-family: var(--f-display); font-size: 180px; height: 80px; font-weight: 800; }
.kit-clinico .sl-arrow { background: var(--s-accent); color: var(--s-on-accent); border: 0; }

/* ==========================================================================
   CADERNO — papel pautado, letra à mão, marca-texto
   ========================================================================== */
.kit-caderno .sl-deco {
  background:
    linear-gradient(90deg, transparent 118px, color-mix(in srgb, var(--s-accent) 45%, transparent) 118px, color-mix(in srgb, var(--s-accent) 45%, transparent) 121px, transparent 121px),
    repeating-linear-gradient(180deg, transparent 0 63px, var(--s-line) 63px 65px);
  opacity: 0.9;
}
.kit-caderno .sl-inner { padding-left: 160px; }
.kit-caderno .sl-title { font-weight: 700; letter-spacing: -0.03em; line-height: 1.08; }
.kit-caderno .sl-title em { font-style: normal; background: linear-gradient(180deg, transparent 52%, color-mix(in srgb, var(--s-accent) 45%, transparent) 52%, color-mix(in srgb, var(--s-accent) 45%, transparent) 92%, transparent 92%); padding: 0 6px; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.kit-caderno .sl-kicker { font-family: var(--f-hand); font-size: 58px; letter-spacing: 0; text-transform: none; color: var(--s-accent); font-weight: 700; transform: rotate(-2deg); transform-origin: left center; display: inline-block; }
.kit-caderno .sl-folio { font-family: var(--f-hand); font-size: 48px; color: var(--s-fg); letter-spacing: 0; }
.kit-caderno .sl-handle { font-family: var(--f-hand); font-size: 44px; font-weight: 700; color: var(--s-fg); }
.kit-caderno .sl-body { font-weight: 500; }
.kit-caderno.has-media .sl-media { top: 170px; left: 190px; right: 110px; height: 44%; bottom: auto; overflow: visible; transform: rotate(2deg); background: #fff; padding: 20px 20px 70px; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.35); }
.kit-caderno.has-media .sl-media-in { position: relative; width: 100%; height: 100%; overflow: hidden; }
.kit-caderno.has-media .sl-media::before { content: ""; position: absolute; top: -26px; left: 50%; width: 180px; height: 54px; transform: translateX(-50%) rotate(-4deg); background: color-mix(in srgb, var(--s-accent) 35%, rgba(255, 255, 255, 0.5)); z-index: 2; }
.fmt-9x16.kit-caderno.has-media .sl-media { top: 330px; height: 40%; }
.kit-caderno.has-media .sl-top { margin-bottom: calc(var(--h) * 0.44 + 40px); }
.fmt-1x1.kit-caderno.has-media .sl-media { top: 150px; height: 40%; }
.fmt-1x1.kit-caderno.has-media .sl-top { margin-bottom: calc(var(--h) * 0.4 + 34px); }
.fmt-9x16.kit-caderno.has-media .sl-top { margin-bottom: calc(var(--h) * 0.4 + 60px); }
.kit-caderno.has-media.lay-cover .sl-title { font-size: calc(var(--t-size) * 0.8); }
.kit-caderno .sl-li-n { background: none; color: var(--s-accent); min-width: 44px; }
.kit-caderno .sl-li-n svg { width: 42px; height: 42px; stroke-width: 3; }
.kit-caderno .sl-num { font-family: var(--f-hand); font-size: 170px; width: 220px; height: 190px; display: grid; place-items: center; border: 6px solid var(--s-accent); border-radius: 58% 42% 55% 45% / 48% 55% 45% 52%; color: var(--s-fg); transform: rotate(-3deg); }
.kit-caderno .sl-col { border-radius: 6px; }
.kit-caderno .sl-col-a { background: transparent; border: 3px dashed var(--s-line); }
.kit-caderno .sl-col-b { background: color-mix(in srgb, var(--s-accent) 22%, var(--s-bg)); color: var(--s-fg); transform: rotate(-1deg); box-shadow: 0 20px 40px -18px rgba(0, 0, 0, 0.3); }
.kit-caderno.lay-quote .sl-content { background: color-mix(in srgb, var(--sup) 70%, #fff); color: #1b1b1b; padding: 60px; margin: 40px 20px 40px 0; transform: rotate(-1.5deg); box-shadow: 0 30px 50px -20px rgba(0, 0, 0, 0.35); }
.kit-caderno.lay-quote .sl-body { color: #444; }
.kit-caderno .sl-qmark { font-family: var(--f-hand); font-size: 200px; height: 70px; }
.kit-caderno .sl-arrow { border: 0; }
.kit-caderno .sl-arrow svg { width: 56px; height: 56px; }

/* ==========================================================================
   OPINIÃO — card de post
   ========================================================================== */
.kit-opiniao { display: flex; align-items: center; justify-content: center; padding: 84px 72px; }
.fmt-9x16.kit-opiniao { padding: 240px 64px; }
.op-card { position: relative; width: 100%; max-height: 100%; display: flex; flex-direction: column; gap: 30px; padding: 56px 56px 44px; border-radius: 44px; background: var(--s-card); color: var(--s-fg); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.35), 0 0 0 1px var(--s-line); }
.is-light.kit-opiniao .op-card { background: color-mix(in srgb, var(--s-bg) 25%, #fff); }
.op-head { display: flex; align-items: center; gap: 22px; }
.op-id { flex: 1; min-width: 0; }
.op-id strong { display: flex; align-items: center; gap: 10px; font-size: 32px; font-weight: 700; letter-spacing: -0.01em; }
.op-id small { display: block; font-size: 26px; color: var(--s-muted); margin-top: 2px; }
.op-ver { display: inline-grid; width: 32px; height: 32px; color: var(--s-accent); }
.op-ver svg { width: 32px; height: 32px; }
.op-folio { font-size: 24px; font-weight: 600; color: var(--s-muted); }
.kit-opiniao .sl-kicker { font-size: 22px; color: var(--s-accent); font-weight: 700; margin-bottom: -10px; }
.kit-opiniao .sl-content { padding: 0; gap: 26px; justify-content: flex-start; flex: 0 1 auto; }
.kit-opiniao .sl-title { font-weight: 600; letter-spacing: -0.02em; line-height: 1.22; font-size: calc(var(--t-size) * 0.92); }
.kit-opiniao .sl-title em { font-style: normal; color: var(--s-accent); }
.kit-opiniao .sl-body { max-width: none; color: var(--s-muted); }
.kit-opiniao .sl-media { position: relative; inset: auto; height: 380px; border-radius: 28px; flex: none; }
.fmt-1x1.kit-opiniao .sl-media { height: 260px; }
.kit-opiniao .sl-deco { display: none; }
.op-foot { display: flex; justify-content: flex-end; align-items: center; gap: 16px; font-size: 24px; font-weight: 600; color: var(--s-muted); padding-top: 22px; border-top: 1px solid var(--s-line); }
.op-foot:empty, .op-foot:has(span:empty:only-child) { display: none; }
.kit-opiniao .sl-arrow { width: 52px; height: 52px; border: 0; background: var(--s-accent); color: var(--s-on-accent); }
.kit-opiniao .sl-arrow svg { width: 26px; height: 26px; }
.kit-opiniao .sl-li-n { min-width: 48px; height: 48px; font-size: 22px; }
.kit-opiniao .sl-list li { font-size: var(--b-size); }
.kit-opiniao .sl-num { font-size: 120px; }
.kit-opiniao .sl-qmark { display: none; }
.kit-opiniao .sl-cta-card { background: var(--s-tint); }
.kit-opiniao.lay-cta .sl-cta-card { display: none; }

/* ==========================================================================
   CONTRASTE — foto em tela cheia, grotesca forte
   ========================================================================== */
.kit-contraste .sl-title { font-weight: 700; letter-spacing: -0.045em; line-height: 0.98; }
.kit-contraste .sl-title em { font-style: normal; color: var(--s-accent); }
.kit-contraste.bg-accent .sl-title em { color: var(--s-fg); text-decoration: underline; text-decoration-thickness: 0.07em; text-underline-offset: 0.1em; }
.kit-contraste .sl-kicker { display: inline-flex; align-items: center; gap: 18px; font-size: 24px; letter-spacing: 0.14em; }
.kit-contraste .sl-kicker::before { content: ""; width: 64px; height: 6px; background: var(--s-accent); }
.kit-contraste.bg-accent .sl-kicker::before { background: var(--s-fg); }
.kit-contraste .sl-folio { font-family: var(--f-display); font-weight: 700; font-size: 28px; color: var(--s-fg); }
.kit-contraste.no-media .sl-deco { background: radial-gradient(70% 50% at 110% -10%, color-mix(in srgb, var(--s-accent) 55%, transparent), transparent 60%), radial-gradient(50% 40% at -10% 110%, color-mix(in srgb, var(--s-accent) 25%, transparent), transparent 70%); }
.kit-contraste.bg-accent.no-media .sl-deco { background: radial-gradient(60% 50% at 110% -10%, rgba(255, 255, 255, 0.25), transparent 60%); }
.kit-contraste.has-media .sl-deco { background: linear-gradient(180deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 25%, rgba(0, 0, 0, 0.15) 45%, color-mix(in srgb, var(--s-bg) 92%, #000) 88%); }
.kit-contraste .sl-num { font-size: 280px; color: transparent; -webkit-text-stroke: 4px var(--s-accent); letter-spacing: -0.06em; }
.kit-contraste .sl-list li { padding-bottom: 22px; border-bottom: 2px solid var(--s-line); }
.kit-contraste .sl-li-n { border-radius: 14px; }
.kit-contraste .sl-col { border-radius: 20px; }
.kit-contraste .sl-arrow { border: 0; background: var(--s-accent); color: var(--s-on-accent); }
.kit-contraste.bg-accent .sl-arrow { background: var(--s-fg); color: var(--s-bg); }

/* Miniaturas (lista de slides, biblioteca) */
.mini-slide { overflow: hidden; }
.mini-slide .slide-frame { border-radius: inherit; }

/* Escurecer foto (controle do Estúdio) */
.sl-dim { position: absolute; inset: 0; background: #000; pointer-events: none; z-index: 1; }

/* ==========================================================================
   EDITORIAL 2 — cabeçalho de revista, capitular e fólio
   ========================================================================== */
.kit-editorial .ed-mast { padding-bottom: 18px; border-bottom: 7px double var(--s-fg); }
.kit-editorial .ed-brand { font-family: 'Fraunces', Georgia, serif; font-size: 30px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.kit-editorial.is-cover .ed-brand { font-size: 40px; letter-spacing: 0.12em; }
.kit-editorial .ed-issue { font-family: 'Fraunces', Georgia, serif; font-style: italic; font-size: 28px; }
.kit-editorial .sl-content > .sl-kicker { color: var(--s-accent); font-size: 22px; font-weight: 700; letter-spacing: 0.2em; margin-bottom: -8px; }
.kit-editorial.bg-accent .sl-content > .sl-kicker, .kit-editorial.bg-ink .sl-content > .sl-kicker { color: var(--s-muted); }
.kit-editorial.lay-text .sl-body::first-letter, .kit-editorial.lay-step .sl-body::first-letter, .kit-revista.lay-text .sl-body::first-letter {
  float: left; font-family: 'Fraunces', Georgia, serif; font-size: 3.15em; line-height: 0.82; font-weight: 600; color: var(--s-accent); margin: 8px 16px 0 0;
}
.kit-editorial.lay-text .sl-body, .kit-revista.lay-text .sl-body { max-width: none; color: var(--s-fg); }
.kit-editorial .sl-foot .sl-folio { font-size: 28px; }

/* ==========================================================================
   REVISTA — capa com logotipo e chamadas
   ========================================================================== */
.kit-revista .sl-inner { padding: 60px 70px 64px; }
.fmt-9x16.kit-revista .sl-inner { padding: 200px 70px 230px; }
.rv-mast { flex: none; width: 100%; font-family: 'Bodoni Moda', 'Fraunces', serif; font-weight: 900; font-size: 260px; line-height: 0.84; letter-spacing: -0.03em; text-align: center; white-space: nowrap; overflow: hidden; color: var(--s-fg); font-variation-settings: "opsz" 96; padding-top: 6px; }
.rv-issue { flex: none; display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 14px; padding: 12px 0; border-top: 2px solid var(--s-fg); border-bottom: 2px solid var(--s-fg); font-size: 21px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; }
.rv-issue .sl-kicker { font-size: 21px; color: var(--s-accent); letter-spacing: 0.18em; }
.kit-revista.has-media.is-cover .rv-issue .sl-kicker { color: var(--s-fg); }
.kit-revista .sl-title { font-weight: 700; letter-spacing: -0.02em; line-height: 1.02; font-variation-settings: "opsz" 96; }
.kit-revista.is-cover .sl-title { font-style: italic; font-weight: 600; font-size: calc(var(--t-size) * 0.95); }
.kit-revista .sl-title em { font-style: italic; color: var(--s-accent); }
.kit-revista.is-cover .sl-title em { font-style: normal; font-weight: 800; }
.kit-revista.is-cover .sl-body { font-size: calc(var(--b-size) * 0.95); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--s-fg); max-width: 34ch; }
.kit-revista.has-media .sl-deco { background: linear-gradient(180deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 28%, rgba(0, 0, 0, 0) 45%, color-mix(in srgb, var(--s-bg) 90%, #000) 94%); }
.kit-revista .rv-run { padding-bottom: 18px; border-bottom: 2px solid var(--s-fg); font-family: 'Bodoni Moda', serif; font-size: 30px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.kit-revista .rv-run .sl-kicker { font-family: var(--f-body); color: var(--s-accent); font-size: 20px; letter-spacing: 0.16em; }
.kit-revista .sl-foot { padding-top: 18px; border-top: 1px solid var(--s-line); }
.kit-revista .sl-folio { font-family: 'Bodoni Moda', serif; font-style: italic; font-size: 30px; color: var(--s-fg); letter-spacing: 0; }
.kit-revista .sl-num { font-family: 'Bodoni Moda', serif; font-style: italic; font-weight: 500; font-size: 250px; }
.kit-revista .sl-qmark { font-family: 'Bodoni Moda', serif; }
.kit-revista.lay-quote .sl-title { font-style: italic; font-weight: 500; }
.kit-revista .sl-li-n { background: none; color: var(--s-accent); font-family: 'Bodoni Moda', serif; font-style: italic; font-size: 46px; font-weight: 600; min-width: 64px; border-radius: 0; justify-content: start; }
.kit-revista .sl-list li { padding-bottom: 20px; border-bottom: 1px solid var(--s-line); }
.kit-revista .sl-col { border-radius: 0; background: none; padding: 26px 0 0; border-top: 2px solid var(--s-fg); color: var(--s-fg); }
.kit-revista .sl-col-b .sl-col-l { color: var(--s-accent); }
.kit-revista .sl-col-b p { font-family: var(--f-display); font-style: italic; font-size: calc(var(--b-size) * 1.3); line-height: 1.2; }
.kit-revista.has-media:not(.is-cover) .sl-media { top: 170px; left: 70px; right: 70px; bottom: auto; height: 46%; }
.kit-revista.has-media:not(.is-cover) .sl-top { margin-bottom: calc(var(--h) * 0.46 + 30px); }
.kit-revista .sl-arrow { border-radius: 0; border: 0; }

/* ==========================================================================
   GRADE — estilo suíço
   ========================================================================== */
.kit-grade .sl-deco {
  background:
    linear-gradient(180deg, transparent calc(38% - 1px), var(--s-line) calc(38% - 1px), var(--s-line) 38%, transparent 38%),
    repeating-linear-gradient(90deg, transparent 0 calc(25% - 1px), var(--s-line) calc(25% - 1px) 25%);
}
.gr-sq { position: absolute; right: 0; top: calc(38% - 84px); width: 84px; height: 84px; background: var(--s-accent); }
.kit-grade.bg-accent .gr-sq { background: var(--s-fg); }
.kit-grade.has-media .gr-sq { display: none; }
.kit-grade .sl-top { align-items: flex-start; }
.gr-index { font-family: 'Inter', sans-serif; font-weight: 800; font-size: 200px; line-height: 0.78; letter-spacing: -0.07em; color: var(--s-fg); margin-left: -8px; }
.kit-grade .sl-kicker { font-family: 'JetBrains Mono', monospace; font-weight: 500; font-size: 22px; letter-spacing: 0.04em; text-transform: uppercase; padding-top: 8px; max-width: 48%; text-align: right; }
.kit-grade .sl-content > :last-child { margin-bottom: 0; }
.kit-grade .sl-content { gap: 28px; }
.kit-grade .sl-title { font-weight: 800; letter-spacing: -0.055em; line-height: 0.97; }
.kit-grade .sl-title em { font-style: normal; color: var(--s-accent); }
.kit-grade.bg-accent .sl-title em { color: var(--s-fg); text-decoration: underline; text-decoration-thickness: 0.06em; text-underline-offset: 0.08em; }
.kit-grade .sl-body { max-width: 30ch; border-left: 5px solid var(--s-accent); padding-left: 24px; color: var(--s-fg); }
.kit-grade .sl-foot { padding-top: 18px; border-top: 3px solid var(--s-fg); }
.kit-grade .sl-handle, .kit-grade .sl-folio { font-family: 'JetBrains Mono', monospace; font-size: 22px; font-weight: 500; letter-spacing: 0.02em; color: var(--s-fg); }
.kit-grade .sl-li-n { border-radius: 0; font-family: 'JetBrains Mono', monospace; font-size: 22px; font-weight: 500; }
.kit-grade .sl-list li { border-top: 2px solid var(--s-fg); padding-top: 18px; font-weight: 600; }
.kit-grade .sl-col { border-radius: 0; }
.kit-grade .sl-col-l { font-family: 'JetBrains Mono', monospace; font-weight: 500; }
.kit-grade .sl-num { font-family: 'Inter', sans-serif; font-weight: 800; letter-spacing: -0.07em; font-size: 240px; }
.kit-grade .sl-qmark { font-family: 'Inter', sans-serif; font-weight: 800; }
.kit-grade .sl-cta-card, .kit-grade .sl-cta-follow { border-radius: 0; }
.kit-grade.has-media .sl-media { top: 84px; right: 84px; left: 50%; bottom: auto; height: 38%; }
.kit-grade.has-media .sl-top { margin-bottom: calc(var(--h) * 0.38 - 110px); }

/* ==========================================================================
   NOTAS — bloco de notas do celular
   ========================================================================== */
.nt { position: absolute; inset: 0; display: flex; flex-direction: column; padding: 58px 66px 46px; }
.fmt-9x16 .nt { padding: 150px 66px 170px; }
.nt-bar { flex: none; display: flex; justify-content: space-between; align-items: center; color: var(--s-accent); font-size: 36px; font-weight: 500; }
.nt-back { display: inline-flex; align-items: center; gap: 2px; }
.nt-back svg { width: 46px; height: 46px; margin-left: -12px; }
.nt-icons { display: flex; gap: 28px; }
.nt-icons svg { width: 46px; height: 46px; }
.nt-date { flex: none; text-align: center; font-size: 23px; color: var(--s-muted); margin: 30px 0 8px; font-weight: 500; }
.nt-kicker { flex: none; margin-top: 12px; }
.nt-kicker .sl-kicker { color: var(--s-accent); font-size: 22px; letter-spacing: 0.1em; font-weight: 700; }
.kit-notas .sl-content { padding: 24px 0; gap: 26px; }
.kit-notas .sl-content > :first-child { margin-top: 0; }
.kit-notas .sl-title { font-weight: 800; letter-spacing: -0.025em; line-height: 1.12; }
.kit-notas .sl-title em { font-style: normal; background: color-mix(in srgb, var(--s-accent) 30%, transparent); border-radius: 8px; padding: 0 8px; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.kit-notas .sl-body { max-width: none; color: var(--s-fg); font-size: calc(var(--b-size) * 1.06); line-height: 1.5; }
.kit-notas .sl-list li { font-weight: 400; align-items: center; }
.kit-notas .sl-li-n { width: 50px; height: 50px; min-width: 50px; }
.kit-notas .sl-li-n svg { width: 26px; height: 26px; }
.kit-notas .sl-col { background: none; padding: 0; border-radius: 0; color: var(--s-fg); }
.kit-notas .sl-col-a p { color: var(--s-muted); }
.kit-notas .sl-col-l { color: var(--s-muted); }
.kit-notas .sl-col-b .sl-col-l { color: var(--s-accent); }
.kit-notas .sl-col-b p { font-weight: 600; }
.kit-notas .sl-num { font-size: 130px; font-weight: 800; letter-spacing: -0.04em; }
.kit-notas .sl-qmark { display: none; }
.kit-notas.lay-quote .sl-title { border-left: 8px solid var(--s-accent); padding-left: 32px; font-weight: 700; font-size: calc(var(--t-size) * 1.05); }
.kit-notas .sl-media { position: relative; inset: auto; flex: none; height: 440px; border-radius: 22px; margin-bottom: 20px; }
.fmt-1x1 .nt .sl-media, .fmt-1x1.kit-notas .sl-media { height: 300px; }
.nt-tools { flex: none; display: flex; justify-content: space-between; align-items: center; color: var(--s-accent); padding-top: 16px; }
.nt-tools svg { width: 46px; height: 46px; }
.nt-folio { font-size: 22px; font-weight: 600; color: var(--s-muted); }
.kit-notas .sl-deco { display: none; }

/* ==========================================================================
   TWEET — print de post do X
   ========================================================================== */
.tw { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; gap: 30px; padding: 88px 84px; }
.fmt-9x16 .tw { padding: 240px 74px; }
.fmt-1x1 .tw { padding: 64px 76px; gap: 24px; }
.tw-head { flex: none; display: flex; align-items: center; gap: 22px; }
.tw-av { width: 104px; height: 104px; }
.tw-id { flex: 1; min-width: 0; }
.tw-id strong { display: flex; align-items: center; gap: 10px; font-size: 36px; font-weight: 700; letter-spacing: -0.01em; }
.tw-id small { display: block; font-size: 30px; color: var(--s-muted); margin-top: 2px; }
.tw-id .op-ver { width: 36px; height: 36px; }
.tw-id .op-ver svg { width: 36px; height: 36px; }
.tw-more { color: var(--s-muted); font-size: 24px; font-weight: 600; }
.tw-more svg { width: 42px; height: 42px; }
.tw-kicker { flex: none; margin-bottom: -10px; }
.tw-kicker .sl-kicker { color: var(--s-accent); font-size: 22px; letter-spacing: 0.1em; font-weight: 700; }
.kit-tweet .sl-content { flex: 0 1 auto; padding: 0; gap: 24px; }
.kit-tweet .sl-content > :first-child { margin-top: 0; }
.kit-tweet .sl-content > :last-child { margin-bottom: 0; }
.kit-tweet .sl-title { font-weight: 400; letter-spacing: -0.012em; line-height: 1.3; }
.kit-tweet.is-cover .sl-title, .kit-tweet.lay-quote .sl-title { font-weight: 500; }
.kit-tweet .sl-title em { font-style: normal; color: var(--s-accent); }
.kit-tweet .sl-body { max-width: none; color: var(--s-fg); font-size: calc(var(--b-size) * 1.06); line-height: 1.45; }
.kit-tweet .sl-media { position: relative; inset: auto; flex: none; height: 460px; border-radius: 30px; border: 1px solid var(--s-line); }
.fmt-1x1.kit-tweet .sl-media { height: 280px; }
.tw-time { flex: none; font-size: 27px; color: var(--s-muted); padding-bottom: 26px; border-bottom: 1px solid var(--s-line); }
.tw-actions { flex: none; display: flex; justify-content: space-between; color: var(--s-muted); padding: 0 12px; }
.tw-actions svg { width: 42px; height: 42px; }
.kit-tweet .sl-list li { font-weight: 400; }
.kit-tweet .sl-li-n { background: none; color: var(--s-accent); font-weight: 700; min-width: 48px; height: auto; justify-content: start; }
.kit-tweet .sl-col { padding: 24px 28px; border-radius: 22px; }
.kit-tweet .sl-col-b { background: var(--s-tint); color: var(--s-fg); }
.kit-tweet .sl-num { font-size: 110px; font-weight: 800; letter-spacing: -0.04em; }
.kit-tweet .sl-qmark, .kit-tweet .sl-deco { display: none; }

/* ==========================================================================
   CONVERSA — print de direct
   ========================================================================== */
.cv { position: absolute; inset: 0; display: flex; flex-direction: column; }
.cv-head { flex: none; display: flex; align-items: center; gap: 18px; padding: 54px 44px 24px; background: var(--s-card); border-bottom: 1px solid var(--s-line); }
.is-light.kit-conversa .cv-head, .is-light.kit-conversa .cv-input { background: color-mix(in srgb, var(--s-bg) 35%, #fff); }
.fmt-9x16 .cv-head { padding-top: 190px; }
.cv-back { color: var(--s-accent); display: grid; }
.cv-back svg { width: 46px; height: 46px; }
.cv-av { width: 84px; height: 84px; }
.cv-id { flex: 1; min-width: 0; }
.cv-id strong { display: block; font-size: 32px; font-weight: 700; }
.cv-id small { display: block; font-size: 24px; color: var(--s-muted); margin-top: 2px; }
.cv-icons { display: flex; gap: 30px; color: var(--s-accent); }
.cv-icons svg { width: 44px; height: 44px; }
.kit-conversa .cv-body { flex: 1 1 auto; padding: 34px 44px; gap: 18px; background-image: radial-gradient(circle at 2px 2px, var(--s-line) 2px, transparent 0); background-size: 38px 38px; }
.cv-date { align-self: center; font-size: 22px; font-weight: 600; color: var(--s-muted); background: var(--s-card); padding: 8px 20px; border-radius: 999px; }
.cv-date:empty { display: none; }
.cv-b { max-width: 82%; padding: 24px 30px; border-radius: 36px; font-size: calc(var(--b-size) * 1.14); line-height: 1.38; overflow-wrap: break-word; }
.cv-me { align-self: flex-end; background: var(--s-accent); color: var(--s-on-accent); border-bottom-right-radius: 10px; font-size: calc(var(--t-size) * 0.56); line-height: 1.28; font-weight: 500; }
.cv-them { align-self: flex-start; background: var(--s-card); color: var(--s-fg); border-bottom-left-radius: 10px; box-shadow: 0 2px 0 var(--s-line); }
.is-light.kit-conversa .cv-them { background: #fff; }
.cv-big { font-size: calc(var(--t-size) * 0.6); font-weight: 600; line-height: 1.24; }
.cv-b strong { font-weight: 800; }
.cv-n { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--s-accent); color: var(--s-on-accent); font-size: 21px; font-weight: 700; margin-right: 14px; vertical-align: 3px; }
.cv-step { display: block; font-size: 72px; font-weight: 800; color: var(--s-accent); line-height: 1; margin-bottom: 10px; letter-spacing: -0.04em; }
.cv-typing { display: flex; gap: 9px; padding: 26px 30px; }
.cv-typing i { width: 15px; height: 15px; border-radius: 50%; background: var(--s-muted); opacity: 0.55; }
.cv-b .sl-need { font-size: 28px; padding: 0; border: 0; }
.cv-input { flex: none; display: flex; align-items: center; gap: 18px; padding: 22px 36px 44px; background: var(--s-card); border-top: 1px solid var(--s-line); color: var(--s-muted); }
.fmt-9x16 .cv-input { padding-bottom: 210px; }
.cv-plus { width: 60px; height: 60px; border-radius: 50%; display: grid; place-items: center; background: var(--s-tint); color: var(--s-accent); flex: none; }
.cv-plus svg { width: 32px; height: 32px; }
.cv-field { flex: 1; padding: 16px 26px; border-radius: 999px; border: 2px solid var(--s-line); font-size: 26px; }
.cv-input > svg { width: 42px; height: 42px; flex: none; }
.cv-folio { font-size: 22px; font-weight: 600; }
.kit-conversa .sl-media { position: relative; inset: auto; flex: none; height: 300px; margin: 0 44px 18px; border-radius: 28px; }
.kit-conversa .sl-deco { display: none; }

/* ==========================================================================
   Ajustes de legibilidade (revisão com prints)
   ========================================================================== */
/* Texto sobre foto: sombra suave e destaque mais claro para não sumir nos tons médios */
.kit-contraste.has-media .sl-title, .kit-manifesto.has-media .sl-title, .kit-revista.has-media.is-cover .sl-title { text-shadow: 0 2px 28px rgba(0, 0, 0, 0.35); }
.kit-contraste.has-media .sl-title em { color: color-mix(in srgb, var(--s-accent) 45%, #fff); }
.kit-contraste.has-media .sl-deco { background: linear-gradient(180deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 22%, rgba(0, 0, 0, 0.25) 42%, color-mix(in srgb, var(--s-bg) 94%, #000) 82%); }
/* Manifesto: o bloco de destaque não corta mais o topo da linha de baixo */
.kit-manifesto .sl-title { line-height: 1.1; }
.kit-manifesto .sl-title em { padding: 0.02em 0.12em; }
/* Revista: logotipo com traço firme e capa legível sobre a foto */
.rv-mast { font-weight: 800; letter-spacing: 0; font-variation-settings: "opsz" 11; line-height: 0.9; }
.kit-revista .sl-title { font-variation-settings: "opsz" 11; }
.kit-revista.has-media.is-cover .sl-title { color: #fff; font-weight: 700; }
.kit-revista.has-media.is-cover .sl-title em { color: color-mix(in srgb, var(--s-accent) 40%, #fff); font-style: italic; font-weight: 700; }
.kit-revista.has-media .sl-deco { background: linear-gradient(180deg, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.05) 26%, rgba(0, 0, 0, 0.1) 42%, rgba(0, 0, 0, 0.82) 88%); }
/* Grade: a foto desce e não cobre mais o rótulo do canto */
.kit-grade.has-media .sl-media { top: 200px; }
.kit-grade.has-media .sl-top { margin-bottom: calc(var(--h) * 0.38 - 10px); }
.fmt-9x16.kit-grade.has-media .sl-media { top: 380px; }
.fmt-9x16.kit-grade.has-media .sl-top { margin-bottom: calc(var(--h) * 0.38 + 30px); }
/* Notas: a foto vem logo depois do texto; a barra de ferramentas fica no rodapé */
.kit-notas .sl-content { flex: 0 1 auto; }
.kit-notas .nt-tools { margin-top: auto; }

/* Texto animado (só na prévia do Estúdio; o vídeo exportado reproduz o mesmo efeito) */
@keyframes sl-anim-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes sl-anim-slide { from { opacity: 0; transform: translateY(5%); } to { opacity: 1; transform: none; } }
@keyframes sl-anim-type { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
.slide.anim-fade [data-edit]:not([data-edit="media"]) { animation: sl-anim-fade .9s cubic-bezier(.33, 1, .68, 1) .25s both; }
.slide.anim-slide [data-edit]:not([data-edit="media"]) { animation: sl-anim-slide .9s cubic-bezier(.33, 1, .68, 1) .25s both; }
.slide.anim-type [data-edit]:not([data-edit="media"]) { animation: sl-anim-type 1.6s steps(28, end) .25s both; }
@media (prefers-reduced-motion: reduce) { .slide[class*="anim-"] [data-edit] { animation: none !important; } }
