/* ==========================================================================
   Oráculo Estrela Cigana — camada cinematográfica (páginas públicas)
   Carregada depois de style.css; não é usada no /admin.
   ========================================================================== */
html, body { overflow-x: clip; }
:focus-visible { outline: 3px solid var(--ouro2); outline-offset: 3px; border-radius: 6px; }
.pular-conteudo { position: absolute; left: .8rem; top: .6rem; z-index: 2000; padding: .5rem .9rem; border-radius: 8px;
  background: var(--ouro2); color: #1b1030; font-weight: 700; text-decoration: none; transform: translateY(-300%); }
.pular-conteudo:focus { transform: none; }
.conteudo:focus { outline: none; }
.marca { display: inline-flex; align-items: center; gap: .45rem; }
.marca-emblema { width: 36px; height: 36px; filter: drop-shadow(0 0 6px rgba(243,217,139,.45)); }
img { max-width: 100%; }
picture { display: block; }
.sangria { width: 100vw; margin-left: calc(50% - 50vw); }

/* ---------- partículas e fumaça (reutilizáveis) ---------- */
.particulas { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 3; }
.particulas i { position: absolute; left: var(--x); bottom: -12px; width: var(--s); height: var(--s); border-radius: 50%;
  background: #ffe7a3; box-shadow: 0 0 8px 2px rgba(243,217,139,.7); opacity: 0;
  animation: subir var(--t) linear infinite; animation-delay: calc(var(--d) * -1); }
@keyframes subir { 0% { transform: translate(0, 0); opacity: 0; } 12% { opacity: .9; } 70% { opacity: .55; }
  100% { transform: translate(24px, -105vh); opacity: 0; } }
.fumaca { position: absolute; inset: 0; pointer-events: none; z-index: 2; overflow: hidden; mix-blend-mode: screen; }
.fumaca i { position: absolute; width: 70vw; height: 45vh; border-radius: 50%; filter: blur(30px); opacity: .55;
  background: radial-gradient(closest-side, rgba(170,120,255,.35), rgba(120,60,200,.12) 60%, transparent); animation: fumaca 22s ease-in-out infinite alternate; }
.fumaca i:nth-child(1) { left: -20vw; bottom: 0; }
.fumaca i:nth-child(2) { right: -25vw; bottom: 15vh; animation-duration: 28s; background: radial-gradient(closest-side, rgba(243,217,139,.22), transparent); }
.fumaca i:nth-child(3) { left: 20vw; bottom: -18vh; animation-duration: 34s; }
@keyframes fumaca { from { transform: translate(0, 0) scale(1); } to { transform: translate(12vw, -8vh) scale(1.25); } }

/* ---------- HOME: cena de abertura ---------- */
.pg-home .topo { position: absolute; left: 0; right: 0; top: 0; background: linear-gradient(rgba(10,5,18,.85), rgba(10,5,18,0)); border-bottom: 0; backdrop-filter: none; z-index: 20; }
.pg-home .topo:has(#menu-toggle:checked) { background: rgba(14,8,26,.96); }
.pg-home .conteudo { padding-top: 0; }
.cena-hero { position: relative; width: 100vw; margin-left: calc(50% - 50vw); min-height: 100vh; min-height: 100svh; overflow: hidden;
  display: flex; align-items: flex-end; background: #0d0616; isolation: isolate; }
.cena-fundo { position: absolute; inset: 0; z-index: 0; }
.cena-fundo .fundo-desktop { display: none; }
.cena-fundo img { width: 100%; height: 100%; object-fit: cover; }
.cena-rosa { position: absolute; inset: 0; margin: 0; z-index: 1; }
.cena-rosa picture, .cena-rosa img { width: 100%; height: 100%; }
.cena-rosa img { object-fit: cover; object-position: 46% 12%; animation: respirar-luz 9s ease-in-out infinite alternate; }
@keyframes respirar-luz { from { filter: brightness(.96) saturate(1); } to { filter: brightness(1.06) saturate(1.06); } }
.cena-hero::after { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(180deg, rgba(13,6,22,.55) 0%, rgba(13,6,22,0) 16%, rgba(13,6,22,0) 44%, rgba(13,6,22,.82) 66%, #0d0616 92%); }
.cortina { position: absolute; top: 0; bottom: 0; width: 6vw; z-index: 4; pointer-events: none; transform-origin: top center;
  background: repeating-linear-gradient(90deg, #2a0410 0, #7d1328 1.4vw, #4a0a1c 2.4vw, #2a0410 3vw);
  box-shadow: inset -10px 0 18px rgba(0,0,0,.6); animation: cortina 11s ease-in-out infinite alternate; }
.cortina-esq { left: 0; -webkit-mask-image: linear-gradient(90deg, #000 55%, transparent); mask-image: linear-gradient(90deg, #000 55%, transparent); }
.cortina-dir { right: 0; transform: scaleX(-1); -webkit-mask-image: linear-gradient(90deg, #000 55%, transparent); mask-image: linear-gradient(90deg, #000 55%, transparent); }
@keyframes cortina { from { transform: skewX(0deg); } to { transform: skewX(1.2deg); } }
.cortina-dir { animation-name: cortina-dir; }
@keyframes cortina-dir { from { transform: scaleX(-1) skewX(0deg); } to { transform: scaleX(-1) skewX(1.2deg); } }
.cena-texto { position: relative; z-index: 5; width: 100%; text-align: center; padding: 0 1.4rem calc(1.6rem + env(safe-area-inset-bottom)); }
.estrela-ouro { width: 64px; height: 64px; display: block; margin: 0 auto .3rem; animation: estrela 4.5s ease-in-out infinite; }
@keyframes estrela { 0%, 100% { filter: drop-shadow(0 0 6px rgba(243,217,139,.5)); transform: scale(1); }
  50% { filter: drop-shadow(0 0 22px rgba(255,214,120,.95)); transform: scale(1.05); } }
.cena-titulo { margin: .1em auto .25em; font-size: clamp(1.65rem, 7.4vw, 3.7rem); letter-spacing: .08em; line-height: 1.15; font-weight: 700;
  color: var(--ouro2); background: linear-gradient(180deg, #fff3c9 10%, #f3d98b 45%, #c9953e 90%); -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; filter: drop-shadow(0 2px 10px rgba(0,0,0,.85)); overflow-wrap: anywhere; }
.cena-sub { margin: 0 auto 1.1rem; max-width: 30em; font-size: clamp(1rem, 4.2vw, 1.25rem); color: #f6efff; text-shadow: 0 2px 10px #000, 0 0 2px #000; }
.btn-entrar { letter-spacing: .12em; font-family: Cinzel, serif; padding: 1rem 1.8rem; max-width: 100%;
  box-shadow: 0 0 0 1px rgba(255,240,200,.5), 0 0 26px rgba(243,217,139,.55); animation: chamar 3.2s ease-in-out infinite; }
@keyframes chamar { 0%, 100% { box-shadow: 0 0 0 1px rgba(255,240,200,.5), 0 0 18px rgba(243,217,139,.4); } 50% { box-shadow: 0 0 0 1px rgba(255,240,200,.8), 0 0 38px rgba(243,217,139,.85); } }
.cena-descer { display: block; margin-top: .9rem; font-size: .9rem; color: var(--suave); text-decoration: none; }
.cena-descer:hover { color: var(--ouro2); }
@media (max-height: 600px) and (max-width: 899px) { .estrela-ouro { width: 46px; height: 46px; } .cena-descer { display: none; } .cena-sub { margin-bottom: .7rem; } }

@media (min-width: 900px) {
  .cena-hero { align-items: center; min-height: 100vh; }
  .cena-fundo .fundo-desktop { display: block; height: 100%; }
  .cena-fundo .fundo-desktop img { object-position: 60% center; filter: brightness(.82); }
  .cena-hero::after { background: linear-gradient(90deg, rgba(13,6,22,.88) 0%, rgba(13,6,22,.55) 40%, rgba(13,6,22,.15) 62%, rgba(13,6,22,.35) 100%),
    linear-gradient(180deg, rgba(13,6,22,.6) 0%, transparent 18%, transparent 80%, #120a1f 100%); }
  .cena-rosa { inset: auto 7vw 0 auto; height: min(88vh, 64vw); aspect-ratio: 2 / 3; z-index: 3;
    border-radius: 50% 50% 0 0 / 28% 28% 0 0; overflow: hidden; border: 2px solid rgba(243,217,139,.75); border-bottom: 0;
    box-shadow: 0 0 0 6px rgba(20,8,30,.6), 0 0 0 7px rgba(243,217,139,.35), 0 0 60px rgba(243,217,139,.35); }
  .cena-rosa img { object-position: center top; -webkit-mask-image: linear-gradient(180deg, #000 78%, transparent); mask-image: linear-gradient(180deg, #000 78%, transparent); }
  .cena-texto { position: relative; width: auto; max-width: min(560px, 46vw); margin-left: 9vw; text-align: left; padding: 6rem 0 3rem; }
  .estrela-ouro { margin: 0 0 .6rem; width: 96px; height: 96px; }
  .cena-titulo { font-size: clamp(2.4rem, 3.9vw, 3.8rem); margin-left: 0; }
  .cena-sub { margin-left: 0; font-size: 1.3rem; }
  .cortina { width: 7vw; }
}

/* transição da porta */
.porta-transicao { position: fixed; inset: 0; z-index: 1500; background: #050208; opacity: 0; transition: opacity .25s ease; overflow: hidden; }
.porta-transicao[hidden] { display: block; visibility: hidden; pointer-events: none; }
.porta-transicao.ativa { visibility: visible; opacity: 1; pointer-events: auto; }
.porta-transicao picture { position: absolute; inset: 0; }
.porta-transicao img { width: 100%; height: 100%; object-fit: cover; transform-origin: 50% 58%; }
.porta-fechada img { transition: filter .55s ease, transform 1.2s cubic-bezier(.5,0,.2,1); }
.porta-aberta { opacity: 0; transition: opacity .5s ease .4s; }
.porta-aberta img { transition: transform 1.1s cubic-bezier(.55,0,.2,1) .4s; }
.porta-transicao.abrindo .porta-fechada img { filter: brightness(1.45) saturate(1.1); transform: scale(1.12); }
.porta-transicao.abrindo .porta-aberta { opacity: 1; }
.porta-transicao.abrindo .porta-aberta img { transform: scale(1.6); }
.porta-luz { position: absolute; left: 50%; top: 58%; width: 40vmax; height: 40vmax; margin: -20vmax 0 0 -20vmax; border-radius: 50%;
  background: radial-gradient(closest-side, #fff8e0, rgba(255,214,120,.85) 35%, rgba(255,190,90,0)); opacity: 0; transform: scale(.2);
  transition: transform .9s ease .65s, opacity .5s ease .6s; }
.porta-transicao.abrindo .porta-luz { opacity: 1; transform: scale(4.5); }
.porta-msg { position: absolute; left: 0; right: 0; bottom: 12%; text-align: center; font-family: Cinzel, serif; color: var(--ouro2); text-shadow: 0 2px 10px #000; margin: 0; }
.porta-pular { position: absolute; right: 1rem; top: 1rem; z-index: 2; background: rgba(10,5,18,.6) !important; }

/* boas-vindas com o salão do 03 */
#boas-vindas { margin-top: 1.5rem; border-radius: 22px; padding: 2.6rem 1.2rem 2rem; border: 1px solid var(--borda); overflow: hidden;
  background: linear-gradient(rgba(18,10,31,.82), rgba(18,10,31,.9)),
    image-set(url(/img/hero-mobile-768.avif) type("image/avif"), url(/img/hero-mobile-768.webp) type("image/webp")) center 30% / cover; }
#boas-vindas .hero-h { font-size: clamp(1.5rem, 5.6vw, 2.5rem); max-width: 760px; margin: .3em auto; }
.oraculo.com-arte { padding-top: 0; overflow: hidden; }
.oraculo-arte { margin: 0 -1.2rem .9rem; }
.oraculo-arte img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.faixa-artes { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; margin-bottom: 1.6rem; }
.faixa-artes img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 16px; border: 1px solid rgba(217,180,90,.35);
  box-shadow: var(--sombra); opacity: .92; transition: transform .4s ease, opacity .4s ease; }
.faixa-artes img:hover { transform: translateY(-3px); opacity: 1; }
@media (min-width: 700px) { .faixa-artes { grid-template-columns: repeat(4, 1fr); } }
.incluso-ceu { background: linear-gradient(rgba(20,10,40,.55), rgba(20,10,40,.75)),
  image-set(url(/img/ceu-mapa-480.avif) type("image/avif"), url(/img/ceu-mapa-480.webp) type("image/webp")) center 35% / cover; }
.secao-final .arte-identidade img { width: min(320px, 70vw); height: auto; margin: 0 auto 1.2rem; display: block; border-radius: 20px; border: 1px solid rgba(217,180,90,.4); box-shadow: 0 0 40px rgba(217,180,90,.2); }

/* ---------- SALA DE CONSULTAS ---------- */
.sala-luz { position: fixed; inset: 0; z-index: 1400; pointer-events: none; background: radial-gradient(circle at 50% 58%, #fff6d8, #ffcf73 45%, #3a1d05);
  animation: sala-luz .8s ease-out forwards; }
@keyframes sala-luz { from { opacity: 1; } to { opacity: 0; visibility: hidden; } }
.sala { position: relative; width: 100vw; margin-left: calc(50% - 50vw); margin-top: -1rem; padding: 2rem 1rem 2.5rem; isolation: isolate; overflow: hidden; }
.sala-fundo { position: absolute; inset: 0; z-index: -1; }
.sala-fundo img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.45) saturate(1.05); }
.sala-fundo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18,10,31,.35), rgba(18,10,31,.7) 70%, var(--fundo)); }
.sala-cabecalho { text-align: center; max-width: 720px; margin: 0 auto 1.4rem; }
.sala-cabecalho h1 { font-size: clamp(1.7rem, 6vw, 2.7rem); margin-bottom: .2em; }
.sala-cabecalho .lead { color: #efe6ff; text-shadow: 0 1px 6px #000; }
.sala-palco { max-width: 1080px; margin: 0 auto; display: grid; gap: 1.2rem; }
.guia-painel { display: grid; gap: 0; border-radius: 22px; overflow: hidden; border: 1px solid rgba(217,180,90,.5);
  background: rgba(18,10,31,.82); box-shadow: 0 0 40px rgba(217,180,90,.18), var(--sombra); }
.guia-painel[hidden] { display: none; }
.guia-painel.entrando { animation: guia-entra .5s cubic-bezier(.2,.7,.2,1); }
@keyframes guia-entra { from { opacity: 0; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: none; } }
.guia-retrato img { width: 100%; height: min(58vh, 120vw); object-fit: cover; object-position: center 14%; display: block; }
.guia-info { padding: 1rem 1.2rem 1.4rem; text-align: center; }
.guia-info h2 { margin: .1em 0 .3em; font-size: 1.5rem; }
.guia-info p { margin: 0 0 1rem; }
.selo-destaque { display: inline-block; margin: 0 0 .3rem !important; padding: .15rem .7rem; border-radius: 999px; font-size: .78rem; letter-spacing: .1em;
  text-transform: uppercase; color: #1b1030; background: linear-gradient(135deg, var(--ouro2), var(--ouro)); }
.guias-lista { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; }
.guia-btn { display: flex; flex-direction: column; align-items: center; gap: .35rem; padding: .6rem .3rem; border-radius: 16px; cursor: pointer;
  background: rgba(18,10,31,.7); border: 1px solid var(--borda); color: var(--texto); font: 600 .82rem/1.25 Lato, sans-serif; text-align: center;
  transition: border-color .25s, transform .25s, box-shadow .25s; }
.guia-btn img { width: 74px; height: 74px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(217,180,90,.45); }
.guia-btn:hover { transform: translateY(-2px); border-color: var(--ouro); }
.guia-btn[aria-pressed="true"] { border-color: var(--ouro2); box-shadow: 0 0 0 1px var(--ouro2), 0 0 22px rgba(243,217,139,.35); background: rgba(60,30,80,.75); }
.guia-btn.destaque img { border-color: var(--ouro2); box-shadow: 0 0 14px rgba(243,217,139,.6); }
.guia-btn.destaque span::before { content: "✦ "; color: var(--ouro2); }
@media (min-width: 900px) {
  .sala { padding: 3rem 2rem 3.5rem; }
  .sala-palco { grid-template-columns: 1.5fr 1fr; align-items: start; }
  .guia-painel { grid-template-columns: 1.05fr 1fr; align-items: stretch; }
  .guia-retrato img { height: 100%; min-height: 520px; max-height: 70vh; }
  .guia-info { display: flex; flex-direction: column; justify-content: center; text-align: left; padding: 1.6rem; }
  .guia-info .btn { align-self: flex-start; }
  .guias-lista { grid-template-columns: repeat(2, 1fr); gap: .9rem; }
  .guia-btn { flex-direction: row; justify-content: flex-start; text-align: left; padding: .6rem .8rem; font-size: .95rem; }
  .guia-btn img { width: 84px; height: 84px; }
}

/* ---------- NOVA CONSULTA: baralhos e embaralhar ---------- */
.opcao-arte img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 9px; margin-bottom: .55rem; display: block; }
.embaralhar { position: fixed; inset: 0; z-index: 1500; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem;
  padding: 1rem; text-align: center; background: #0b0512; }
.embaralhar[hidden] { display: none; }
.embaralhar-fundo { position: absolute; inset: 0; z-index: -1; }
.embaralhar-fundo img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.5); }
.embaralhar-pilha { position: relative; width: 96px; height: 144px; }
.embaralhar-pilha img { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 8px; box-shadow: 0 6px 18px rgba(0,0,0,.6); }
.embaralhar.ativo .embaralhar-pilha img:nth-child(odd) { animation: corte-a .45s ease-in-out 3 alternate; }
.embaralhar.ativo .embaralhar-pilha img:nth-child(even) { animation: corte-b .45s ease-in-out 3 alternate; }
@keyframes corte-a { to { transform: translateX(-62px) rotate(-8deg); } }
@keyframes corte-b { to { transform: translateX(62px) rotate(8deg); } }
.embaralhar-mesa { display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem; max-width: 560px; min-height: 80px; }
.embaralhar-mesa img { width: 46px; height: 69px; border-radius: 5px; box-shadow: 0 4px 10px rgba(0,0,0,.6); animation: dar .5s cubic-bezier(.2,.8,.2,1) both; }
@keyframes dar { from { opacity: 0; transform: translateY(-30vh) scale(.6) rotate(-20deg); } to { opacity: 1; transform: none; } }
.embaralhar-msg { font-family: Cinzel, serif; color: var(--ouro2); font-size: 1.2rem; margin: 0; text-shadow: 0 2px 8px #000; }
.embaralhar-nota { color: #efe6ff; margin: 0; max-width: 28em; text-shadow: 0 1px 6px #000; }
.cartas-guardadas { display: flex; align-items: center; gap: .8rem; margin: .6rem 0 1rem; padding: .6rem .8rem; border-radius: 12px; border: 1px dashed rgba(217,180,90,.45); background: #0003; }
.cartas-guardadas .versos { display: flex; flex-shrink: 0; }
.cartas-guardadas .versos img { width: 26px; height: 39px; border-radius: 3px; margin-left: -12px; box-shadow: 0 2px 6px #000; }
.cartas-guardadas .versos img:first-child { margin-left: 0; }
.cartas-guardadas p { margin: 0; }

/* ---------- LEITURA: ritual, mesa, fechamento ---------- */
.ritual { position: fixed; inset: 0; z-index: 1500; display: flex; align-items: center; justify-content: center; text-align: center; padding: 1.2rem; overflow-y: auto; background: #0b0512; }
.ritual[hidden] { display: none; }
.ritual.saindo { animation: sumir .6s ease forwards; }
@keyframes sumir { to { opacity: 0; } }
.ritual-fundo { position: fixed; inset: 0; z-index: -1; }
.ritual-fundo img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.6); }
.ritual-conteudo { max-width: 34rem; }
.ritual-conteudo h2 { font-size: clamp(1.3rem, 5.4vw, 2rem); text-shadow: 0 2px 10px #000; }
.ritual-respiro { width: min(52vw, 220px); aspect-ratio: 1; margin: .6rem auto; display: grid; place-items: center; }
.ritual-luz { width: 100%; height: 100%; border-radius: 50%; transform: scale(.55);
  background: radial-gradient(circle, rgba(255,243,200,.95) 0%, rgba(243,190,90,.65) 35%, rgba(150,90,230,.35) 62%, transparent 72%);
  box-shadow: 0 0 60px rgba(243,217,139,.5); animation: respiro 10s ease-in-out infinite; }
@keyframes respiro { 0% { transform: scale(.55); } 40% { transform: scale(1); } 60% { transform: scale(1); } 100% { transform: scale(.55); } }
.ritual-fase { font-family: Cinzel, serif; font-size: 1.35rem; color: var(--ouro2); margin: .3rem 0; min-height: 1.6em; }
.ritual-txt { color: #f1e9ff; text-shadow: 0 1px 6px #000; }
.ritual-acoes { display: flex; flex-direction: column; align-items: center; gap: .8rem; margin-top: 1rem; }
.ritual-pular { color: #e6dcf7; font-size: .95rem; padding: .4rem; }
@media (max-height: 640px) { .ritual-respiro { width: min(40vw, 150px); } .ritual-txt { font-size: .92rem; } }

.mesa-cartas { position: relative; border-radius: 22px; overflow: hidden; margin: 1rem 0; border: 1px solid rgba(217,180,90,.45); isolation: isolate; box-shadow: var(--sombra); }
.mesa-fundo { position: absolute; inset: 0; z-index: -1; }
.mesa-fundo img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.5); }
.mesa-conteudo { padding: 1.1rem .9rem 1.4rem; background: linear-gradient(rgba(18,10,31,.35), rgba(18,10,31,.6)); }
.mesa-conteudo > .mini { color: #e6dcf7; }
.mesa-pergunta { position: relative; padding: .8rem 0 .4rem; border-top: 1px solid rgba(217,180,90,.25); }
.mesa-pergunta:first-of-type { border-top: 0; }
.mesa-pergunta h3 { text-align: center; text-shadow: 0 1px 6px #000; margin-bottom: .8rem; overflow-wrap: anywhere; }
.mesa-pilha { display: none; }
.js .mesa-pilha { display: block; position: absolute; left: 50%; top: 5.5rem; width: 64px; height: 96px; margin-left: -32px; z-index: 4; transition: opacity .4s; }
.mesa-pilha img { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.7); }
.mesa-pilha img:nth-child(2) { transform: translate(2px, -2px); } .mesa-pilha img:nth-child(3) { transform: translate(4px, -4px); }
.mesa-pilha.embaralhando img:nth-child(1) { animation: corte-a .35s ease-in-out 2 alternate; }
.mesa-pilha.embaralhando img:nth-child(3) { animation: corte-b .35s ease-in-out 2 alternate; }
.mesa-pilha.vazia { opacity: 0; }
.mesa-linha { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.carta-mesa { text-align: center; transition: opacity .4s ease; }
.js .carta-mesa:not(.dada) { opacity: 0; transform: translate(var(--dx, 0), var(--dy, 0)) scale(.7) rotate(var(--r, 0deg)); }
.js .carta-mesa.dada { transition: transform .6s cubic-bezier(.2,.8,.2,1), opacity .35s ease; }
.carta3d { position: relative; display: block; width: 100%; aspect-ratio: 2 / 3; padding: 0; border: 0; background: none; cursor: pointer;
  transform-style: preserve-3d; transition: transform .75s cubic-bezier(.3,.7,.2,1), box-shadow .3s; border-radius: 10px; }
.carta-face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; border-radius: 10px; overflow: hidden;
  box-shadow: 0 6px 16px rgba(0,0,0,.6); border: 1px solid rgba(217,180,90,.6); background: #1a0d24; }
.carta-face img { width: 100%; height: 100%; object-fit: cover; display: block; }
.carta-frente img { object-fit: contain; background: #f4ecd8; }
.carta-frente.invertida img { transform: rotate(180deg); }
.carta-verso { transform: rotateY(180deg); }
.js .carta-mesa:not(.revelada) .carta3d { transform: rotateY(180deg); }
.carta-sem-imagem { display: grid; place-items: center; height: 100%; padding: .4rem; font: 700 .8rem Cinzel, serif; color: var(--ouro2); }
.carta-rotulo { margin: .45rem 0 0; font-size: .8rem; line-height: 1.3; transition: opacity .4s ease .3s; overflow-wrap: anywhere; }
.carta-rotulo span, .carta-rotulo strong, .carta-rotulo em { display: block; }
.carta-pos { color: var(--suave); text-transform: uppercase; letter-spacing: .06em; font-size: .7rem; }
.carta-rotulo strong { color: var(--ouro2); font-family: Cinzel, serif; font-size: .86rem; }
.carta-rotulo em { color: #ffb4c0; font-size: .74rem; }
.js .carta-mesa:not(.revelada) .carta-rotulo { opacity: 0; }
.carta-mesa.destacada .carta3d { transform: translateY(-6px) scale(1.05); box-shadow: 0 0 0 2px var(--ouro2), 0 0 30px rgba(243,217,139,.75); }
.mesa-pergunta.tem-destaque .carta-mesa.revelada:not(.destacada) { opacity: .62; }
.mesa-revelar { margin-top: .9rem; }
.mesa-pergunta.completa .mesa-revelar { visibility: hidden; }
@media (min-width: 700px) { .mesa-conteudo { padding: 1.6rem 2rem 2rem; } .mesa-linha { gap: 1.4rem; max-width: 540px; margin: 0 auto; } .carta-rotulo { font-size: .9rem; } }

.fechamento { position: relative; width: 100vw; margin-left: calc(50% - 50vw); margin-top: 1.5rem; margin-bottom: -1rem; min-height: 88vh; min-height: 88svh;
  display: flex; align-items: flex-end; justify-content: center; overflow: hidden; isolation: isolate; text-align: center; }
.fechamento-fundo { position: absolute; inset: 0; z-index: -2; }
.fechamento-fundo img { width: 100%; height: 100%; object-fit: cover; object-position: 30% center; }
.fechamento::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, var(--fundo) 0%, rgba(18,10,31,0) 22%, rgba(18,10,31,.1) 45%, rgba(13,6,22,.86) 74%, #0d0616 100%); }
.vela-brilho { position: absolute; left: 17%; top: 22%; width: 34vmin; height: 34vmin; margin: -17vmin 0 0 -17vmin; border-radius: 50%; z-index: -1; pointer-events: none;
  background: radial-gradient(closest-side, rgba(255,214,140,.55), rgba(255,170,80,.18) 55%, transparent); mix-blend-mode: screen; animation: chama 2.6s ease-in-out infinite; }
@keyframes chama { 0%, 100% { opacity: .75; transform: scale(1); } 30% { opacity: 1; transform: scale(1.06); } 55% { opacity: .82; transform: scale(.97); } 80% { opacity: .95; transform: scale(1.03); } }
.fechamento-texto { position: relative; z-index: 4; max-width: 40rem; padding: 0 1.2rem 2.6rem; }
.fechamento-texto h2 { font-size: clamp(1.5rem, 6vw, 2.4rem); text-shadow: 0 2px 10px #000; }
.fechamento-texto p { color: #f1e9ff; text-shadow: 0 1px 6px #000; }
.fechamento .acoes { justify-content: center; flex-direction: column; align-items: stretch; }
@media (min-width: 640px) { .fechamento .acoes { flex-direction: row; align-items: center; } }
.pg-leitura .rodape { position: relative; z-index: 1; background: #0d0616; }
body.finalizando { animation: sumir .7s ease forwards; }

/* ---------- MINHAS CONSULTAS: mapa no céu ---------- */
.mapa-ceu { border-radius: 16px; overflow: hidden; border: 1px solid rgba(217,180,90,.35); padding: .6rem .8rem;
  background: linear-gradient(rgba(14,8,30,.55), rgba(14,8,30,.78)), image-set(url(/img/ceu-mapa-768.avif) type("image/avif"), url(/img/ceu-mapa-768.webp) type("image/webp")) center 40% / cover; }
.mapa-ceu summary { cursor: pointer; font-family: Cinzel, serif; color: var(--ouro2); }
.mapa-ceu[open] .mapa-grade { animation: guia-entra .6s ease; }
.mapa-ceu .mapa-grade > div { background: rgba(12,6,26,.62); backdrop-filter: blur(3px); border-color: rgba(217,180,90,.3); }
.mapa-ceu .mapa-grade b { text-shadow: 0 0 14px rgba(243,217,139,.8); }

/* ---------- movimento reduzido ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
  .particulas, .fumaca { display: none; }
  .sala-luz { display: none; }
}

/* ajustes pós-revisão visual */
.ritual-fundo picture, .mesa-fundo picture, .sala-fundo picture, .fechamento-fundo picture, .embaralhar-fundo picture, .cena-fundo picture { height: 100%; }
.carta-pos { text-transform: none; letter-spacing: .02em; font-size: .72rem; overflow-wrap: normal; word-break: normal; hyphens: auto; }
.carta-rotulo { overflow-wrap: break-word; }
.selo-destaque { align-self: center; }
.guia-btn picture { flex-shrink: 0; }
.guia-btn img { flex-shrink: 0; aspect-ratio: 1; }
@media (max-width: 899px) { .guias-lista { order: -1; } }
@media (min-width: 900px) { .selo-destaque { align-self: flex-start; } }
@media (max-height: 700px) and (max-width: 899px) { .estrela-ouro { width: 42px; height: 42px; margin-bottom: 0; } .cena-titulo { margin-top: 0; } }
