/* CENAS — cada ambiente com personalidade própria, mesma identidade. Coordenadas no palco 1920×1080. */

/* ================= 1 · O CONVITE ================= */
.scene--convite { background: radial-gradient(ellipse at 50% 55%, #0a2456 0%, #031F4A 32%, #010B1F 76%); }
.cv-feixe { position: absolute; left: 50%; top: -260px; width: 1100px; height: 1500px; margin-left: -550px; opacity: .25;
  background: radial-gradient(ellipse at 50% 0%, rgba(110, 147, 222, .42), rgba(11, 57, 117, .12) 45%, transparent 68%); transition: opacity 2s ease; }
.scene--convite.s1 .cv-feixe { opacity: .9; }
.cv-vinheta { position: absolute; inset: 0; box-shadow: inset 0 0 320px 140px rgba(0, 0, 0, .7); pointer-events: none; }
.cv-dica { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; margin: 0; }
.cv-dica span { font-size: 46px; color: var(--silver); animation: pulsar 3s ease-in-out infinite; text-shadow: 0 0 30px rgba(212, 208, 207, .8); }
@keyframes pulsar { 0%, 100% { opacity: .25; transform: scale(.85); } 50% { opacity: 1; transform: scale(1.1); } }
.cv-frase { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; margin: 0;
  font: 400 68px/1.35 var(--serif); color: var(--ivory); letter-spacing: .005em; }
.cv-frase em { color: var(--champ); }
.cv-logo { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; transition: transform 1.3s var(--ease); }
.cv-logo-img { position: relative; width: 780px; opacity: 0; clip-path: inset(0 0 100% 0); transform: translateY(70px) scale(.95);
  transition: opacity 1.4s ease, clip-path 2.2s cubic-bezier(.6, .05, .2, 1), transform 1.6s var(--ease);
  filter: drop-shadow(0 0 34px rgba(110, 147, 222, .28)); }
.cv-logo-img img { display: block; width: 100%; }
.scene--convite.s2 .cv-logo-img { opacity: 1; clip-path: inset(0 0 24% 0); transform: translateY(80px); }
.scene--convite.s3 .cv-logo-img { clip-path: inset(0 0 0 0); transform: none; }
.scene--convite.s4 .cv-logo { transform: translateY(-120px) scale(.8); }
.cv-brilho { position: absolute; left: 68.5%; top: 14.5%; width: 220px; height: 220px; margin: -110px 0 0 -110px; opacity: 0; mix-blend-mode: screen;
  background: radial-gradient(circle, rgba(255, 255, 255, .95) 0%, rgba(200, 215, 255, .45) 12%, transparent 45%); }
.scene--convite.s2 .cv-brilho { animation: brilho 3.6s ease-in-out .9s infinite; }
@keyframes brilho { 0%, 100% { opacity: 0; transform: scale(.4) rotate(0); } 18% { opacity: 1; transform: scale(1) rotate(25deg); } 40% { opacity: 0; transform: scale(.6) rotate(45deg); } }
.cv-slogan { font: italic 400 36px var(--serif); color: var(--silver); margin: 26px 0 0; }
.cv-convite { position: absolute; left: 0; right: 0; bottom: 150px; text-align: center; }
.cv-convite .linha { display: block; width: 140px; height: 1px; margin: 0 auto 26px; background: linear-gradient(90deg, transparent, var(--silver), transparent); }
.cv-convite .k { font: 500 17px var(--sans); letter-spacing: .4em; text-transform: uppercase; color: var(--champ); margin: 0; }
.cv-convite .t { font: 400 34px var(--serif); margin: 18px 0 8px; }
.cv-convite .c { font: 400 19px var(--sans); color: rgba(212, 208, 207, .72); letter-spacing: .08em; margin: 0; }

/* ================= 2 · A RECEPÇÃO ================= */
.bg-recepcao { background-image: url(../assets/img/recepcao-interna.png); filter: blur(3px) brightness(.5) saturate(.75); }
.veu-esq { background: linear-gradient(90deg, rgba(1, 11, 31, .97) 0%, rgba(1, 11, 31, .86) 34%, rgba(3, 31, 74, .55) 100%); }
.rc-intro { position: absolute; left: 120px; top: 150px; width: 520px; }
.rc-intro .titulo { font-size: 70px; }
.rc-cards { position: absolute; left: 700px; right: 100px; top: 140px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.rc-card { position: relative; height: 610px; padding: 46px 34px 34px; display: flex; flex-direction: column; text-align: center;
  background: linear-gradient(180deg, rgba(5, 40, 92, .72), rgba(3, 31, 74, .55)); border: 1px solid rgba(212, 208, 207, .24);
  border-radius: 6px; backdrop-filter: blur(10px); box-shadow: 0 30px 70px rgba(0, 0, 0, .45); }
.rc-card::before { content: ''; position: absolute; inset: 10px; border: 1px solid rgba(212, 208, 207, .08); border-radius: 3px; pointer-events: none; }
.rc-retrato { width: 168px; height: 168px; margin: 0 auto 28px; border-radius: 50%; display: grid; place-items: center;
  background: radial-gradient(circle at 35% 30%, #0e4590, #031F4A 70%); border: 1.5px solid rgba(212, 208, 207, .7);
  box-shadow: 0 0 0 8px rgba(212, 208, 207, .06), 0 0 40px rgba(110, 147, 222, .3); }
.rc-retrato span { font: 700 56px var(--serif-d); color: var(--ivory); }
.rc-card h3 { font: 400 29px var(--serif); margin: 0; color: var(--ivory); }
.rc-card .cargo { font: 600 14px/1.5 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--champ); margin: 14px 0 18px; min-height: 42px; }
.rc-card .papel { font: 400 19px/1.6 var(--serif); color: rgba(245, 244, 240, .8); margin: 0; }
.rc-quota { margin-top: auto; padding-top: 22px; border-top: 1px solid rgba(212, 208, 207, .16); }
.rc-quota b { display: block; font: 300 66px/1 var(--sans); color: var(--silver); }
.rc-quota span { font: 500 20px var(--sans); color: rgba(245, 244, 240, .75); }
.rc-capital { position: absolute; left: 700px; right: 100px; top: 790px; display: flex; gap: 40px; align-items: center; }
.rc-cap-txt span { display: block; font: 500 15px var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--champ); }
.rc-cap-txt b { display: block; font: 600 54px/1.15 var(--sans); color: var(--ivory); }
.rc-cap-txt small { font: italic 18px var(--serif); color: rgba(212, 208, 207, .75); }
.rc-barra { flex: 1; display: flex; gap: 4px; height: 70px; }
.rc-barra i { position: relative; border-radius: 3px; background: linear-gradient(180deg, #2f5aa8, #0B3975); display: flex; align-items: center; justify-content: center; }
.rc-barra i:first-child { background: linear-gradient(180deg, #e3d2ad, #b99f6b); }
.rc-barra i:first-child em { color: var(--navy); }
.rc-barra em { font: 600 18px var(--sans); font-style: normal; color: var(--ivory); letter-spacing: .04em; }

.bg-marmore { background: radial-gradient(ellipse at 50% 26%, #0c2f6a 0%, #031F4A 42%, #010B1F 100%); }
.og-intro { position: absolute; left: 120px; top: 110px; }
.og-intro .titulo { font-size: 62px; }
.og-linhas { position: absolute; inset: 0; width: 1920px; height: 1080px; }
.og-linhas path { fill: none; stroke: rgba(212, 208, 207, .55); stroke-width: 2; transform: none; }
.og-linhas .ln { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.3s ease .1s, opacity .4s; }
.og-linhas .ln.on { stroke-dashoffset: 0; }
.og-linhas .pont { stroke-dasharray: 6 8; }
.og-no { position: absolute; translate: -50% -50%; width: 400px; padding: 22px 30px; border-radius: 999px; text-align: center;
  background: linear-gradient(180deg, #0d3f80, #031F4A); border: 1px solid rgba(212, 208, 207, .5);
  font: 600 20px/1.3 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ivory);
  box-shadow: 0 12px 40px rgba(0, 0, 0, .45), 0 0 30px rgba(110, 147, 222, .16); }
.og-no small { display: block; margin-top: 6px; font: 400 16px var(--sans); letter-spacing: .02em; text-transform: none; color: rgba(245, 244, 240, .72); }
.og-no.topo { background: linear-gradient(180deg, #ead9b4, #b99f6b); color: var(--navy); border-color: rgba(255, 255, 255, .5); width: 360px; }
.og-no.socio { font-size: 18px; width: 420px; }
.og-no.equipe { width: 400px; border-radius: 14px; font-size: 18px; }
.og-no.terc { background: rgba(1, 11, 31, .6); border-style: dashed; width: 300px; }
.og-terc { position: absolute; left: 1080px; right: 120px; top: 620px; }
.og-terc p { font: 500 15px var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--champ); margin: 0 0 18px; }
.og-terc span { display: inline-block; margin: 0 12px 14px 0; padding: 12px 22px; border-radius: 30px; border: 1px solid rgba(212, 208, 207, .3);
  font: 400 20px var(--serif); background: rgba(3, 31, 74, .5); }
.og-equipe { position: absolute; left: 1080px; top: 840px; display: flex; align-items: center; gap: 24px; }
.og-equipe b { font: 200 120px/1 var(--sans); color: var(--champ); }
.og-equipe span { font: 400 26px/1.4 var(--serif); } .og-equipe small { font: 400 18px var(--sans); color: rgba(212, 208, 207, .75); }

/* ================= 3 · O GRANDE SALÃO ================= */
.bg-colacao { background-image: url(../assets/img/formatura-colacao.png); filter: blur(2px) brightness(.62) saturate(.95); transform: scale(1.06); transition: opacity 1.8s ease; }
.bg-baile { background-image: url(../assets/img/gala-turma.png); opacity: 0; filter: brightness(.6) saturate(1.1); transition: opacity 2s ease, transform 8s linear; transform: scale(1.04); }
.scene--formaturas.s2 .bg-baile { opacity: 1; transform: scale(1.1); }
.scene--formaturas.s2 .bg-colacao { opacity: 0; }
.luzes { position: absolute; inset: 0; opacity: 0; mix-blend-mode: screen; transition: opacity 1.6s ease .3s; pointer-events: none; }
.luzes i { position: absolute; top: -120px; width: 240px; height: 1400px; transform-origin: 50% 0;
  background: linear-gradient(180deg, rgba(120, 150, 255, .5), rgba(120, 150, 255, .08) 55%, transparent 75%); animation: varrer 7s ease-in-out infinite alternate; filter: blur(6px); }
.luzes i:nth-child(1) { left: 40%; animation-delay: -1s; }
.luzes i:nth-child(2) { left: 55%; background: linear-gradient(180deg, rgba(175, 120, 255, .45), transparent 70%); animation-delay: -3s; }
.luzes i:nth-child(3) { left: 70%; animation-delay: -5s; }
.luzes i:nth-child(4) { left: 84%; background: linear-gradient(180deg, rgba(216, 196, 155, .4), transparent 70%); animation-delay: -2s; }
.luzes i:nth-child(5) { left: 96%; background: linear-gradient(180deg, rgba(175, 120, 255, .4), transparent 70%); animation-delay: -4s; }
@keyframes varrer { 0% { transform: rotate(-16deg); } 100% { transform: rotate(16deg); } }
.scene--formaturas.s2 .luzes { opacity: .75; }
.veu-salao { background: linear-gradient(90deg, rgba(1, 11, 31, .94) 0%, rgba(1, 11, 31, .72) 44%, rgba(1, 11, 31, .12) 100%),
  linear-gradient(0deg, rgba(1, 11, 31, .8) 0%, transparent 30%); }
.fm-topo { position: absolute; left: 120px; top: 100px; width: 820px; }
.fm-topo .titulo { font-size: 74px; }
.fm-sub { margin-top: 14px; font-size: 25px; transition: opacity .6s; }
.scene--formaturas.s1 .fm-sub { opacity: 0; }
.fm-painel { position: absolute; left: 120px; top: 290px; width: 740px; padding: 40px 46px 34px;
  background: rgba(3, 31, 74, .6); border: 1px solid rgba(212, 208, 207, .26); border-radius: 6px; backdrop-filter: blur(14px);
  box-shadow: 0 30px 80px rgba(0, 0, 0, .45); }
.fm-tag { font: 500 15px var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--champ); margin: 0; }
.fm-painel h2 { font: 700 42px var(--serif-d); margin: 12px 0 18px; color: var(--ivory); }
.fm-painel.baile h2 { color: #f1e6cc; text-shadow: 0 0 30px rgba(216, 196, 155, .35); }
.fm-painel ul { list-style: none; padding: 0; margin: 0 0 24px; }
.fm-painel li { font: 400 22px/1.75 var(--serif); color: rgba(245, 244, 240, .9); padding-left: 34px; position: relative; }
.fm-painel li::before { content: '✦'; position: absolute; left: 0; color: var(--silver); font-size: 15px; top: 3px; }
.fm-painel.baile li:first-child { color: var(--champ); }
.fm-preco { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding-top: 22px; border-top: 1px solid rgba(212, 208, 207, .2); }
.fm-preco b { display: block; font: 600 44px/1.1 var(--sans); color: var(--ivory); }
.fm-preco span { font: 500 15px var(--sans); letter-spacing: .14em; text-transform: uppercase; color: rgba(212, 208, 207, .7); }
.fm-comp { position: absolute; right: 110px; bottom: 120px; width: 820px; padding: 32px 38px; background: rgba(1, 11, 31, .72);
  border: 1px solid rgba(212, 208, 207, .26); border-radius: 6px; backdrop-filter: blur(12px); }
.fm-comp-t { font: 500 15px var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--champ); margin: 0 0 18px; }
.fm-bar { display: grid; grid-template-columns: 210px 1fr 200px; gap: 18px; align-items: center; margin-bottom: 14px; }
.fm-bar span { font: 400 21px var(--serif); }
.fm-bar i { display: block; height: 24px; border-radius: 3px; background: linear-gradient(90deg, #3A5DA6, #7E9FE6); transform-origin: left; transform: scaleX(0); transition: transform 1.2s var(--ease) .3s; }
.fm-bar.baile i { background: linear-gradient(90deg, #b99f6b, #ead9b4); }
.fm-comp.on .fm-bar i { transform: scaleX(1); }
.fm-bar b { font: 600 28px var(--sans); text-align: right; }
.fm-nota { font: italic 18px/1.55 var(--serif); color: rgba(245, 244, 240, .78); margin: 14px 0 0; }

/* ================= 4 · OS BASTIDORES ================= */
.bg-blueprint { background-color: var(--night);
  background-image: linear-gradient(rgba(110, 147, 222, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(110, 147, 222, .07) 1px, transparent 1px),
  linear-gradient(rgba(110, 147, 222, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(110, 147, 222, .035) 1px, transparent 1px);
  background-size: 192px 192px, 192px 192px, 48px 48px, 48px 48px; }
.bs-luz { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 0%, rgba(11, 57, 117, .55), transparent 60%), radial-gradient(ellipse at 50% 120%, rgba(1, 11, 31, 1), transparent 60%); }
.bs-kicker { position: absolute; left: 0; right: 0; top: 64px; text-align: center; }
.bs-frase { position: absolute; left: 0; right: 0; top: 0; height: 1080px; margin: 0; display: flex; align-items: center; justify-content: center; text-align: center;
  font: 400 60px/1.4 var(--serif); color: var(--ivory); transition: transform 1.3s var(--ease); }
.bs-frase em { color: var(--champ); }
.scene--fluxograma.s1 .bs-frase { transform: translateY(-388px) scale(.56); }
.bs-trilho { position: absolute; left: 150px; right: 150px; top: 300px; height: 2px; background: rgba(212, 208, 207, .14); opacity: 0; transition: opacity .8s; }
.scene--fluxograma.s1 .bs-trilho { opacity: 1; }
.bs-trilho-luz { height: 100%; width: 0; background: linear-gradient(90deg, var(--beam), var(--champ)); box-shadow: 0 0 18px rgba(216, 196, 155, .7); transition: width 1.3s var(--ease); }
.scene--fluxograma.s1 .bs-trilho-luz { width: 12%; } .scene--fluxograma.s2 .bs-trilho-luz { width: 38%; }
.scene--fluxograma.s3 .bs-trilho-luz { width: 63%; } .scene--fluxograma.s4 .bs-trilho-luz { width: 100%; }
.bs-atos { position: absolute; left: 120px; right: 120px; top: 270px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 34px; }
.bs-ato-cab { display: flex; align-items: center; gap: 16px; height: 60px; }
.bs-ato-cab .num { width: 60px; height: 60px; border-radius: 50%; display: grid; place-items: center; background: var(--night);
  border: 1.5px solid var(--champ); font: 700 26px var(--serif-d); color: var(--champ); box-shadow: 0 0 24px rgba(216, 196, 155, .35); }
.bs-ato-cab .nome { font: 600 19px var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--ivory); background: var(--night); padding-right: 14px; }
.bs-no { display: flex; gap: 18px; margin-top: 20px; padding: 18px 22px; border-radius: 4px; background: rgba(3, 31, 74, .62);
  border: 1px solid rgba(212, 208, 207, .13); border-left: 3px solid var(--beam);
  opacity: 0; transform: translateX(-16px); transition: opacity .7s ease, transform .8s var(--ease); }
.bs-ato.on .bs-no { opacity: 1; transform: none; }
.bs-no b { font: 200 30px/1 var(--sans); color: rgba(212, 208, 207, .55); padding-top: 2px; }
.bs-no h4 { font: 400 22px/1.3 var(--serif); margin: 0 0 6px; color: var(--ivory); }
.bs-no p { font: 400 16px/1.45 var(--sans); margin: 0; color: rgba(245, 244, 240, .68); }
.bs-qualidade { position: absolute; left: 120px; right: 120px; bottom: 96px; display: flex; align-items: center; gap: 22px; }
.bs-qualidade b { font: 700 34px var(--serif-d); color: var(--champ); }
.bs-qualidade span { font: 400 22px var(--serif); }
.bs-qualidade i { flex: 1; height: 1px; background: linear-gradient(90deg, rgba(212, 208, 207, .4), transparent); }
.bs-qualidade .q { font: 400 18px var(--sans); color: rgba(245, 244, 240, .75); }

/* ================= 6 · SALA FINANCEIRA ================= */
.bg-executiva { background: radial-gradient(ellipse at 68% 42%, rgba(11, 57, 117, .6), transparent 58%), linear-gradient(180deg, #021232, #010B1F);
  inset: 0; }
.bg-executiva::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgba(212, 208, 207, .025) 0 1px, transparent 1px 120px); }
.fi-topo, .fc-topo { position: absolute; left: 120px; top: 90px; }
.fi-topo .titulo, .fc-topo .titulo { font-size: 62px; }
.fi-total { position: absolute; left: 120px; width: 1680px; top: 410px; text-align: center; transform-origin: 50% 50%; transition: transform 1.3s var(--ease); }
.fi-total .rot { display: block; font: 500 18px var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--champ); }
.fi-total .v { display: block; font: 300 172px/1.05 var(--sans); letter-spacing: -.02em; color: var(--ivory); text-shadow: 0 0 60px rgba(110, 147, 222, .35); }
.scene--investimento.s1 .fi-total { transform: translate(-555px, -66px) scale(.48); }
.fi-donut { position: absolute; left: 880px; top: 250px; width: 560px; height: 560px; }
.fi-donut .donut { width: 100%; height: 100%; }
.donut-seg { transition: stroke-dasharray 1.1s cubic-bezier(.6, .1, .2, 1); }
.fi-centro { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.fi-centro b { font: 200 96px/1 var(--sans); color: var(--ivory); }
.fi-centro span { font: 400 20px/1.4 var(--serif); color: rgba(245, 244, 240, .75); }
.fi-leg { position: absolute; left: 1480px; top: 280px; width: 390px; list-style: none; margin: 0; padding: 0; }
.fi-leg li { display: grid; grid-template-columns: 22px 1fr auto; column-gap: 14px; margin-bottom: 26px; opacity: 0; transform: translateX(14px); transition: opacity .6s ease, transform .7s var(--ease); }
.fi-leg.on li { opacity: 1; transform: none; }
.fi-leg i { width: 16px; height: 16px; border-radius: 3px; margin-top: 6px; grid-row: span 2; }
.fi-leg .n { grid-column: 2 / 4; font: 400 20px var(--serif); color: var(--ivory); }
.fi-leg .v { font: 600 22px var(--sans); } .fi-leg .p { font: 400 18px var(--sans); color: rgba(212, 208, 207, .7); }
.fi-leg li.giro .n { color: var(--champ); }
.fi-dest { position: absolute; left: 120px; top: 520px; width: 660px; display: grid; gap: 30px; }
.fi-dest span { display: block; font: 500 15px var(--sans); letter-spacing: .26em; text-transform: uppercase; color: rgba(212, 208, 207, .75); }
.fi-dest b { display: block; font: 600 50px/1.2 var(--sans); color: var(--ivory); }
.fi-dest .giro b { color: var(--champ); }
.fi-dest small { font: italic 19px var(--serif); color: rgba(245, 244, 240, .72); }
.fi-selo { position: absolute; left: 120px; bottom: 100px; width: 740px; padding: 24px 30px; border: 1px solid rgba(216, 196, 155, .6); border-radius: 6px; background: rgba(216, 196, 155, .06); }
.fi-selo b { display: block; font: 700 30px var(--serif-d); color: var(--champ); }
.fi-selo span { font: 400 20px var(--serif); color: rgba(245, 244, 240, .85); }

.fc-topo .lead { font-size: 23px; margin-top: 16px; }
.fc-prem { position: absolute; left: 120px; right: 120px; top: 318px; list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.fc-prem li { padding: 10px 18px; border-radius: 30px; border: 1px solid rgba(212, 208, 207, .26); background: rgba(3, 31, 74, .55);
  font: 400 17px var(--sans); color: rgba(245, 244, 240, .86); opacity: 0; transform: translateY(8px); transition: opacity .5s, transform .6s var(--ease); }
.fc-prem.on li { opacity: 1; transform: none; }
.fc-graf { position: absolute; left: 120px; top: 432px; width: 1680px; }
.fc-graf svg { display: block; width: 100%; height: auto; overflow: visible; }
.cash-axis text { fill: rgba(212, 208, 207, .6); font: 400 19px var(--sans); }
.cash-axis .grid { stroke: rgba(212, 208, 207, .08); } .cash-axis .zero { stroke: rgba(212, 208, 207, .4); stroke-width: 1.5; }
.cash-axis .mes { font-size: 20px; fill: rgba(245, 244, 240, .75); }
.cash-bars rect { transform: scaleY(0); transition: transform .9s var(--ease); }
.fc-graf.on .cash-bars rect { transform: scaleY(1); }
.cash-bars .pos { fill: #6E93DE; opacity: .82; } .cash-bars .neg { fill: var(--alert); opacity: .9; }
.cash-line { fill: none; stroke: #EFEBE8; stroke-width: 4; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.2s ease; filter: drop-shadow(0 0 8px rgba(239, 235, 232, .45)); }
.scene--fluxocaixa.linha .cash-line { stroke-dashoffset: 0; }
.cash-area { opacity: 0; transition: opacity 1.4s ease 1s; } .scene--fluxocaixa.linha .cash-area { opacity: 1; }
.cash-dots circle { fill: var(--night); stroke: #EFEBE8; stroke-width: 3; opacity: 0; transition: opacity .35s; }
.scene--fluxocaixa.linha .cash-dots circle { opacity: 1; }
.cash-note { opacity: 0; transition: opacity .8s ease 1.8s; } .scene--fluxocaixa.linha .cash-note { opacity: 1; }
.cash-note .guia { stroke: rgba(212, 208, 207, .45); stroke-dasharray: 4 5; }
.cash-note .v { fill: var(--ivory); font: 600 26px var(--sans); } .cash-note .l { fill: var(--champ); font: 400 17px var(--sans); letter-spacing: .06em; }
.cash-note.final .v { fill: var(--champ); }
.fc-leg { position: absolute; right: 120px; top: 120px; display: flex; align-items: center; gap: 12px; font: 400 16px var(--sans); color: rgba(245, 244, 240, .75); }
.fc-leg .b { width: 14px; height: 14px; border-radius: 2px; margin-left: 16px; } .fc-leg .pos { background: #6E93DE; } .fc-leg .neg { background: var(--alert); }
.fc-leg .l { width: 26px; height: 3px; margin-left: 16px; background: #EFEBE8; }
.fc-res { position: absolute; left: 120px; right: 120px; top: 300px; display: grid; grid-template-columns: repeat(3, auto) 1fr; gap: 0 56px; align-items: end; }
.fc-res span { display: block; font: 500 14px var(--sans); letter-spacing: .26em; text-transform: uppercase; color: rgba(212, 208, 207, .7); }
.fc-res b { font: 600 42px var(--sans); } .fc-res .dest b { color: var(--champ); }
.fc-res p { font: italic 19px/1.5 var(--serif); color: rgba(245, 244, 240, .78); margin: 0; align-self: center; }
.scene--fluxocaixa.s4 .fc-prem { opacity: 0; }

/* ================= 7 · ENCERRAMENTO ================= */
.bg-final { background-image: url(../assets/img/mesa-velas.png); filter: blur(5px) brightness(.1) saturate(.6); transform: scale(1.14); transition: filter 4s ease, transform 14s linear; }
.scene--encerramento.active .bg-final { filter: blur(4px) brightness(1.05) saturate(1.1); transform: scale(1.04); }
.en-calor { position: absolute; inset: 0; opacity: 0; transition: opacity 4s ease; background: radial-gradient(ellipse at 50% 60%, rgba(216, 196, 155, .35), transparent 60%); mix-blend-mode: screen; }
.scene--encerramento.active .en-calor { opacity: 1; }
.veu-final { background: radial-gradient(ellipse at 50% 45%, rgba(1, 11, 31, .45) 0%, rgba(1, 11, 31, .62) 45%, rgba(1, 11, 31, .9) 100%); }
.en-frase { position: absolute; inset: 0; margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  font: 400 58px/1.45 var(--serif); color: var(--ivory); }
.en-frase em { color: var(--champ); }
.en-marca { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  transition: opacity 1s ease, transform 1s var(--ease), translate 1.3s var(--ease), scale 1.3s var(--ease); }
.en-marca::before { content: ''; position: absolute; left: 50%; top: 50%; width: 1100px; height: 760px; margin: -380px 0 0 -550px;
  background: radial-gradient(ellipse, rgba(1, 11, 31, .78) 0%, rgba(1, 11, 31, .45) 45%, transparent 70%); z-index: -1; }
.en-marca img { width: 700px; filter: drop-shadow(0 2px 18px rgba(1, 11, 31, .9)) drop-shadow(0 0 40px rgba(216, 196, 155, .2)); }
.en-marca p { font: italic 400 36px var(--serif); color: var(--silver); margin: 26px 0 0; }
.scene--encerramento.s3 .en-marca { translate: 0 -190px; scale: .7; }
.en-creditos { position: absolute; left: 0; right: 0; bottom: 140px; text-align: center; }
.en-creditos .obg { font: 700 54px var(--serif-d); color: var(--champ); margin: 0 0 18px; }
.en-creditos .eq { font: 400 30px var(--serif); margin: 0 0 16px; } .en-creditos .eq i { color: var(--champ); margin: 0 22px; font-style: normal; font-size: 20px; vertical-align: middle; }
.en-creditos .or { font: 400 19px var(--sans); color: rgba(245, 244, 240, .78); margin: 0 0 8px; }
.en-creditos .cu { font: 500 15px var(--sans); letter-spacing: .24em; text-transform: uppercase; color: rgba(212, 208, 207, .6); margin: 0; }
