/* Casthink: home v3 "mesa de casting" (2026-10-27).
   Usa os mesmos tokens, fontes e componentes das páginas internas (casthink.css).
   Tudo aqui vale só dentro de body.home. */

/* Abertura: texto à esquerda, folha de contato à direita */
.home .abertura { padding-block: clamp(40px, 6vw, 88px) clamp(56px, 7vw, 96px); }
.home .abertura .wrap { display: grid; gap: clamp(40px, 5vw, 72px); align-items: center; }
@media (min-width: 960px) { .home .abertura .wrap { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); } }
.home .abertura__texto { display: grid; gap: 24px; align-content: start; }
.home .abertura h1 { font-size: clamp(34px, 5vw, 66px); max-width: 15ch; }
.home .definicao { font-size: clamp(17px, 1.4vw, 19px); max-width: 52ch; }
.home .fatos { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.home .fatos li { background: var(--branco-gelo); border-radius: 6px; padding: 12px 14px; display: grid; gap: 2px; font-size: 14.5px; line-height: 1.4; }
.home .fatos b { font-family: var(--mono); font-weight: 500; font-size: 11.5px; letter-spacing: .04em; text-transform: uppercase; color: var(--violet); }

.home .folha--mesa { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: clamp(26px, 3vw, 40px); padding-bottom: 8px; }
.home .folha--mesa .quadro img { aspect-ratio: 3 / 4; }
.home .folha--mesa > .quadro { margin-top: 0; }
.home .folha--mesa > .quadro:nth-child(3n) { margin-top: 18px; }
.home .folha--mesa .quadro figcaption { display: flex; justify-content: space-between; gap: 6px; }
.home .folha--mesa .quadro figcaption span + span { color: var(--tinta); }
.home .quadro--barrado img { filter: grayscale(1); opacity: .55; }
.home .quadro--barrado figcaption span + span { color: var(--aco); }
.home .folha--mesa .nota { top: calc(100% + 10px); }
.home .folha__cabeca { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 12px; font-family: var(--mono); font-size: 11.5px; letter-spacing: .04em; text-transform: uppercase; color: var(--aco); border-bottom: 1px solid var(--linha-forte); padding-bottom: 10px; }
@media (max-width: 559.98px) { .home .folha--mesa .quadro figcaption span + span { display: none; } .home .folha--mesa > .quadro:nth-child(3n) { margin-top: 0; } }
@media (prefers-reduced-motion: no-preference) {
  .home .folha--mesa .quadro--marcado > .traco path { stroke-dasharray: 1; stroke-dashoffset: 1; animation: home-desenha 1.1s .6s cubic-bezier(.6, .1, .3, 1) forwards; }
}
@keyframes home-desenha { to { stroke-dashoffset: 0; } }

/* Rótulo curto acima dos títulos, igual em todas as seções da home */
.home .rotulo { font-family: var(--mono); font-size: 12.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--aco); }

/* A campanha rodando: cinco movimentos e a tela do sistema */
.home .campanha { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: start; }
.home .movs { list-style: none; margin: 0; padding: 4px 4px 10px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px, 1fr); gap: 10px; overflow-x: auto; scroll-snap-type: x proximity; }
.home .mov { scroll-snap-align: start; border-radius: 6px; background: var(--branco-gelo); border-top: 3px solid transparent; transition: background .2s ease, border-color .2s ease, box-shadow .2s ease; }
.home .mov label { position: relative; box-sizing: border-box; display: grid; grid-template-columns: auto minmax(0, 1fr); align-content: start; gap: 6px 10px; width: 100%; height: 100%; padding: 14px 16px; cursor: pointer; }
.home .mov input, .home .caminhos--abas input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.home .mov:has(input:focus-visible) { outline: 2px solid var(--violet); outline-offset: 2px; }
.home .mov__n { font-family: var(--mono); font-size: 13px; color: var(--aco); padding-top: 3px; }
.home .mov__t { font-family: var(--display); font-weight: 800; font-stretch: 125%; font-variation-settings: "wdth" 125; font-size: 17px; line-height: 1.25; letter-spacing: -.01em; }
.home .mov__q { grid-column: 1 / -1; display: grid; gap: 4px; font-size: 14.5px; line-height: 1.45; color: var(--aco); }
.home .mov__q b { font-family: var(--mono); font-weight: 500; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; margin-right: 6px; }
.home .mov__q .ia b { color: var(--violet); }
.home .mov__q .gente b { color: var(--tinta); }
.home .mov:has(input:checked) { background: var(--branco); border-top-color: var(--violet); box-shadow: var(--sombra); }
.home .mov:has(input:checked) .mov__n { color: var(--violet); }
.home .tela { margin: 0; display: grid; gap: 12px; }
.home .tela__palco { position: relative; aspect-ratio: 16 / 10; }
.home .tela__palco video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top left; opacity: 0; transition: opacity .4s ease; }
.home .tela__palco video:first-child { opacity: 1; }
.home .campanha:has(.mov input:checked:not([value="1"])) .tela__palco video:first-child { opacity: 0; }
.home .campanha:has(input[value="2"]:checked) .tela__palco video:nth-child(2),
.home .campanha:has(input[value="3"]:checked) .tela__palco video:nth-child(3),
.home .campanha:has(input[value="4"]:checked) .tela__palco video:nth-child(4),
.home .campanha:has(input[value="5"]:checked) .tela__palco video:nth-child(5) { opacity: 1; }
.home .tela__nome > span { display: none; }
.home .tela__nome > span:first-child { display: inline; }
.home .campanha:has(.mov input:checked:not([value="1"])) .tela__nome > span:first-child { display: none; }
.home .campanha:has(input[value="2"]:checked) .tela__nome > span:nth-child(2),
.home .campanha:has(input[value="3"]:checked) .tela__nome > span:nth-child(3),
.home .campanha:has(input[value="4"]:checked) .tela__nome > span:nth-child(4),
.home .campanha:has(input[value="5"]:checked) .tela__nome > span:nth-child(5) { display: inline; }
.home .tela__acoes { flex-basis: 100%; margin-top: 4px; font-family: var(--texto); }
.home .tela figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; font-family: var(--mono); font-size: 12px; color: var(--aco); }
.home .tela__nome { color: var(--tinta); }

/* Memória */
.home .memoria { display: grid; gap: clamp(28px, 4vw, 56px); align-items: start; }
@media (min-width: 900px) { .home .memoria { grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); } }
.home .memoria .foto { max-width: 420px; }
.home .memoria__texto { display: grid; gap: 22px; align-content: start; }
.home .memoria__listas { display: grid; gap: 16px; }
@media (min-width: 640px) { .home .memoria__listas { grid-template-columns: 1fr 1fr; } }
.home .memoria__listas ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.home .sobra li { color: var(--aco); text-decoration: line-through; text-decoration-color: var(--linha-forte); }
.home .fica { border-top: 4px solid var(--violet); box-shadow: var(--sombra); }
.home .fica li { font-weight: 500; padding-left: 22px; position: relative; }
.home .fica li::before { content: ""; position: absolute; left: 0; top: .5em; width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--violet); }

/* Fronteira com a foto do bastidor */
@media (min-width: 1100px) { .home .fronteira--home { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, .75fr); align-items: start; } }
.home .fronteira--home .foto { align-self: start; max-width: 360px; }
.home .fronteira--home .foto .nota { position: static; margin-top: 10px; width: auto; max-width: none; box-shadow: none; }

/* Corvos */
.home .nome-casthink { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 16px; align-items: baseline; margin: 6px 0 0; padding-top: 18px; border-top: 1px solid var(--linha); }
.home .nome-casthink dt { font-family: var(--display); font-weight: 800; font-stretch: 125%; font-variation-settings: "wdth" 125; font-size: 24px; line-height: 1.1; }
.home .nome-casthink dt.think { font-style: italic; font-weight: 700; color: var(--violet); }
.home .nome-casthink dd { margin: 0; font-family: var(--mono); font-size: 13.5px; color: var(--aco); }

/* Qual é o seu momento */
.home .caminhos { display: grid; gap: 16px; }
@media (min-width: 640px) { .home .caminhos { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .home .caminhos { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.home .caminho { background: var(--gelo); border-radius: 6px; padding: 22px; display: grid; grid-template-rows: auto auto 1fr auto; gap: 10px; text-decoration: none; border: 1px solid transparent; transition: border-color .15s ease, box-shadow .15s ease; }
.home .caminho:hover { border-color: var(--violet); box-shadow: var(--sombra); }
.home .caminho__sit { font-family: var(--mono); font-size: 12.5px; line-height: 1.4; color: var(--aco); }
.home .caminho p { font-size: 15.5px; line-height: 1.5; }
.home .caminho__ir { font-weight: 600; color: var(--violet); text-decoration: underline; text-underline-offset: 5px; }

/* Chamada final */
.home .chamada--home .wrap { gap: 18px; }
.home .chamada--home h2 { max-width: 20ch; }

/* Sexta casa da folha: o resumo da lista curta */
.home .ficha { align-self: stretch; display: grid; align-content: start; gap: 10px; padding: 12px; font-family: var(--mono); font-size: 11.5px; line-height: 1.35; color: var(--aco); }
.home .ficha__t { font-family: var(--display); font-weight: 800; font-stretch: 125%; font-variation-settings: "wdth" 125; font-size: 14px; color: var(--tinta); }
.home .ficha dl { margin: 0; display: grid; gap: 6px; }
.home .ficha dl div { display: flex; justify-content: space-between; gap: 6px; border-bottom: 1px dashed var(--linha-forte); padding-bottom: 4px; }
.home .ficha dd { margin: 0; color: var(--tinta); font-weight: 500; }
.home .ficha__p { font-size: 10.5px; }
@media (max-width: 559.98px) { .home .ficha { font-size: 10px; padding: 8px; } .home .ficha__p { display: none; } }
.home .dor h3 { margin-bottom: 4px; }

/* Celular: título antes da imagem, tela antes dos movimentos, fatos empilhados */
@media (max-width: 559.98px) {
  .home .fatos { grid-template-columns: minmax(0, 1fr); }
  .home .fatos li { grid-template-columns: 9.5em minmax(0, 1fr); gap: 10px; align-items: baseline; }
  .home .folha--mesa { row-gap: 52px; }
}
@media (max-width: 899.98px) { .home .memoria__texto { order: -1; } }

/* Diagnóstico: caminhos como abas e um exemplo de devolutiva */
.home .diag { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: start; }

.home .diag__fim { display: grid; gap: 20px; align-items: center; margin-top: 8px; }
@media (min-width: 960px) { .home .diag__fim { grid-template-columns: minmax(0, 1fr) auto; gap: 40px; } }
.home .caminhos--abas { display: grid; gap: 10px; grid-template-columns: minmax(0, 1fr); border: 0; margin: 0; padding: 0; min-width: 0; }
@media (min-width: 560px) { .home .caminhos--abas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .home .caminhos--abas { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.home label.caminho { position: relative; cursor: pointer; grid-template-rows: none; align-content: start; gap: 4px; padding: 14px 16px; border-top: 3px solid transparent; border-left: 0; }
.home label.caminho:has(input:focus-visible) { outline: 2px solid var(--violet); outline-offset: 2px; }
.home label.caminho:has(input:checked) { background: var(--branco); border-color: transparent; border-top-color: var(--violet); box-shadow: var(--sombra); }
.home .caminho__t { font-family: var(--display); font-weight: 800; font-stretch: 125%; font-variation-settings: "wdth" 125; font-size: 17px; line-height: 1.25; letter-spacing: -.01em; }
.home .home-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.home .caminho--link { grid-template-rows: none; align-content: start; gap: 4px; padding: 14px 16px; background: transparent; border: 1px dashed var(--linha-forte); }
.home .diag__passos { list-style: none; counter-reset: p; margin: 0; padding: 0; display: grid; gap: 10px 28px; font-size: 15px; line-height: 1.5; }
@media (min-width: 760px) { .home .diag__passos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.home .diag__passos li { counter-increment: p; position: relative; padding-left: 1.8em; }
.home .diag__passos li::before { content: counter(p); position: absolute; left: 0; top: 2px; font-family: var(--mono); font-size: 13px; color: var(--violet); }
.home .diag__passos strong { font-weight: 600; }

.home .janela { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; min-width: 0; }
.home .janela__barra { display: flex; align-items: center; gap: 6px; background: var(--tinta); border-radius: 8px 8px 0 0; padding: 10px 12px; margin-bottom: -10px; }
.home .janela__barra i { width: 9px; height: 9px; border-radius: 50%; background: rgba(232, 237, 240, .3); }
.home .janela__barra span { margin-left: 8px; font-family: var(--mono); font-size: 11.5px; color: rgba(232, 237, 240, .75); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.home .janela__pagina { display: block; width: 100%; height: clamp(560px, 78vh, 820px); overflow-y: auto; border: 1px solid var(--tinta); border-top: 0; border-radius: 0 0 8px 8px; background: var(--gelo); box-shadow: 0 14px 28px -20px rgba(28, 23, 18, .55); }
.home .janela__pagina:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; }
.home .janela__pagina img { display: block; width: 100%; height: auto; }
.home .dev--campanha, .home .dev--piloto { display: none; }
.home .diag:has(input[value="campanha"]:checked) .dev--campanha,
.home .diag:has(input[value="piloto"]:checked) .dev--piloto { display: block; }
.home .diag:has(input[value="campanha"]:checked) .dev--continua,
.home .diag:has(input[value="piloto"]:checked) .dev--continua { display: none; }
.home .janela__links a.dev--continua { display: inline; }
.home .diag:has(input[value="campanha"]:checked) .janela__links a.dev--campanha,
.home .diag:has(input[value="piloto"]:checked) .janela__links a.dev--piloto { display: inline; }
.home .janela figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; font-family: var(--mono); font-size: 12px; color: var(--aco); }

/* As seções da home usam uma coluna que nunca passa da largura da tela */
:where(.home .secao > .wrap) { grid-template-columns: minmax(0, 1fr); }

/* Botão de pausa dos vídeos da campanha */
.home .tela__pausa { position: absolute; right: 10px; bottom: 10px; z-index: 2; display: inline-flex; align-items: center; gap: 8px; font: 600 13px/1 var(--texto); color: var(--branco); background: rgba(28, 23, 18, .82); border: 0; border-radius: 999px; padding: 9px 14px 9px 12px; cursor: pointer; }
.home .tela__pausa::before { content: ""; width: 10px; height: 11px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; box-sizing: border-box; }
.home .tela__pausa:hover { background: var(--violet); }
.home .tela__pausa:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; }
.home .tela__pausa-c { display: none; }
.home .tela__pausa--parado .tela__pausa-p { display: none; }
.home .tela__pausa--parado .tela__pausa-c { display: inline; }
.home .tela__pausa--parado::before { width: 0; height: 0; border-left: 10px solid currentColor; border-right: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent; }

/* Janela da devolutiva: a página rola normalmente por cima do quadro.
   Para rolar dentro do exemplo, a pessoa clica ou toca no quadro; ao sair dele, a página volta a rolar. */
.home .janela { position: relative; }
.home .janela--controle .janela__pagina { overflow: hidden; cursor: pointer; }
.home .janela--controle .janela__pagina.ativa { overflow-y: auto; cursor: auto; }
.home .janela__ativar { position: absolute; left: 50%; bottom: 52px; transform: translateX(-50%); z-index: 2; font: 600 14px/1 var(--texto); color: var(--branco); background: rgba(28, 23, 18, .86); border: 0; border-radius: 999px; padding: 11px 18px; cursor: pointer; box-shadow: 0 10px 24px -12px rgba(28, 23, 18, .6); white-space: nowrap; }
.home .janela__ativar:hover { background: var(--violet); }
.home .janela__ativar:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; }
/* Safari no celular espremia a coluna dos nomes e quebrava "Cast" e "think" no meio (27/out) */
.home .nome-casthink { grid-template-columns: max-content minmax(0, 1fr); }
.home .nome-casthink dt { white-space: nowrap; overflow-wrap: normal; }
