@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');
:root{--ink:#172923;--green:#295b45;--lime:#d0ea8a;--paper:#f5f6f2;--rule:#c7cec3;--height:100vh}
@supports(height:100svh){:root{--height:100svh}}
*{box-sizing:border-box;letter-spacing:0}
html{scroll-behavior:smooth;scroll-snap-type:y mandatory}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:30px}
button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}
button:focus-visible,a:focus-visible{outline:3px solid var(--lime);outline-offset:5px}button:disabled{opacity:.3;cursor:default}[hidden]{display:none!important}
/* Keep only the information needed by the audience on the TV. */
.edition,.cover .eyebrow,.cover-bottom,.ledger-row small,.equation,.available-rule,.available>p:last-of-type:not(.big-number),.goal .section-heading .eyebrow,.goal-note,.footer-brand{display:none}
.masthead{position:fixed;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:0 5%;background:var(--ink);color:white}
.masthead{top:0;height:106px;background:linear-gradient(#07131080,transparent)}.brand{display:flex;width:290px;height:82px;align-items:center}.brand img{width:100%;height:100%;object-fit:contain;object-position:left center}
.compact-header .masthead{display:none}.compact-header .slide{padding-top:80px}
.fullscreen{background:transparent;border:1px solid #ffffff70;color:inherit;font-size:32px;width:48px;height:48px;border-radius:50%;display:grid;place-content:center}
.slide{height:var(--height);min-height:var(--height);max-height:var(--height);position:relative;scroll-snap-align:start;scroll-snap-stop:always;overflow-y:auto;overflow-x:hidden;padding:138px 6% 92px;display:flex;align-items:center}
.section-content{width:100%;max-width:1600px;margin:auto;position:relative}.backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cover{color:white;align-items:flex-end;padding-bottom:130px}.cover .backdrop{object-position:center 42%}.cover-shade{position:absolute;inset:0;background:linear-gradient(0deg,#071310f5,#071310b0 30%,#07131000 75%)}.cover-copy{position:relative;width:100%}
h1,h2,.big-number,.target-number{font-family:Manrope,Arial,sans-serif}h1{font-size:96px;font-weight:700;line-height:1.1;margin:0 0 26px}h1>span,h2>span{color:#91b16c}.cover-subtitle{font-size:36px;margin:0}.cover-subtitle span{padding:0 12px;color:var(--lime)}
.section-heading{margin-bottom:42px}h2{font-size:58px;font-weight:700;line-height:1.15;margin:0}.eyebrow{font-size:30px;font-weight:600;line-height:1.4;margin:0 0 20px}
.slide-logo{position:absolute;right:0;top:-8px;width:210px;height:64px;object-fit:contain;object-position:right center}.slide-logo+.section-heading{padding-right:240px}
.balance-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:6%;align-items:center}.ledger-row{display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:2px solid var(--rule);padding:32px 0;font-size:30px;line-height:1.35}.ledger-row strong{font-family:Manrope,Arial,sans-serif;font-size:42px;white-space:nowrap;font-weight:700}.outgoing strong{color:#984532}.incoming strong{color:var(--green)}
.available{border-left:2px solid var(--rule);padding:35px 0 35px 10%}.available>.eyebrow{color:var(--green)}.big-number{font-size:88px;line-height:1.1;font-weight:800;margin:0;white-space:nowrap}.big-number span{font-size:40px;font-weight:500}.detail-image{height:170px;margin-top:34px;border-radius:4px;overflow:hidden}.detail-image img{width:100%;height:100%;object-fit:cover}
.costs{background:#fff}.costs .section-heading{margin-bottom:24px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}th,td{padding:15px 18px;border-bottom:1px solid var(--rule)}tr>:first-child{text-align:left;padding-left:0}tr>:last-child{background:#eef3e7;color:var(--green);font-weight:700}thead th{font-size:26px;font-weight:600}tbody th{font-size:30px;font-weight:500}tbody td{font-size:30px}tbody small{font-size:26px;font-weight:400}tfoot th,tfoot td{font-size:34px;font-weight:800;border-bottom:0;padding-top:20px;padding-bottom:20px}tfoot tr>:last-child{background:var(--green);color:white}.correction{font-size:26px;margin:22px 0 0;color:var(--green)}
.goal{color:white}.goal-shade{position:absolute;inset:0;background:linear-gradient(90deg,#11251af5,#14271deb 58%,#132b21a6)}.goal-layout{max-width:1050px}.goal-layout.has-pix{max-width:none;display:grid;grid-template-columns:1.6fr 1fr;gap:6%;align-items:center}.goal-calculation{border-bottom:2px solid #ffffff60;padding-bottom:15px}.goal-calculation p{display:flex;justify-content:space-between;gap:24px;font-size:32px;margin:0 0 20px}.goal-calculation strong{white-space:nowrap;font-size:40px}.target-label{color:var(--lime);margin:26px 0 5px;font-size:32px}.target-number{font-size:128px;font-weight:800;line-height:1.1;margin:0;white-space:nowrap;color:var(--lime)}.target-number span{font-size:52px;font-weight:500}.together{font-size:38px;margin:25px 0 0}
.donation{text-align:center;border-left:1px solid #ffffff60;padding-left:10%}.pix-placeholder{width:280px;max-width:100%;aspect-ratio:1;margin:0 auto;background:white;color:var(--ink);display:grid;place-items:center;border-radius:4px}.pix-placeholder img{width:100%;height:100%;object-fit:contain;padding:10px}.donation>p{font-size:26px;overflow-wrap:anywhere}.donation button{border:0;background:var(--lime);color:var(--ink);border-radius:4px;padding:12px 16px;font-size:24px}
.navigation{display:none}
@media(max-width:1400px){h1{font-size:76px}h2{font-size:48px}.ledger-row{font-size:26px}.ledger-row strong{font-size:34px}.big-number{font-size:68px}.big-number span{font-size:32px}.target-number{font-size:106px}.goal-calculation p{font-size:28px}.goal-calculation strong{font-size:34px}}
@media(max-height:800px) and (min-width:901px){.masthead{height:84px}.brand{height:65px;width:240px}.slide{padding-top:108px;padding-bottom:82px}.section-heading{margin-bottom:24px}h2{font-size:42px}.ledger-row{padding:23px 0}.costs .section-heading{margin-bottom:14px}th,td{padding-top:9px;padding-bottom:9px}tbody th,tbody td{font-size:26px}thead th,tbody small{font-size:24px}tfoot th,tfoot td{font-size:28px;padding-top:12px;padding-bottom:12px}.correction{font-size:24px;margin-top:14px}.target-number{font-size:92px}.goal-calculation p{margin-bottom:14px}.target-label{margin-top:18px}.together{font-size:30px;margin-top:16px}}
@media(max-width:900px){.masthead{height:80px}.brand{width:220px;height:62px}.slide{padding:106px 5% 90px}.balance-layout{grid-template-columns:1fr}.available{border-left:0;padding:25px 0 0}.ledger-row{padding:18px 0}.section-heading{margin-bottom:22px}.slide-logo{width:170px;height:52px;top:0}.slide-logo+.section-heading{padding-right:190px}h1{font-size:60px}h2{font-size:38px}.cover-subtitle{font-size:28px}.eyebrow{font-size:26px}.goal-layout.has-pix{grid-template-columns:1fr}.donation{border:0;padding:30px 0 0}.pix-placeholder{width:220px}.goal-calculation p{font-size:26px}.goal-calculation strong{font-size:30px}th,td{padding:13px 10px}tbody th,tbody td,thead th,tbody small{font-size:24px}tfoot th,tfoot td{font-size:26px}.correction{font-size:24px}.target-number{font-size:86px}.target-number span{font-size:38px}.together{font-size:30px}}
@media(max-width:550px){.slide{display:block}.cover{display:flex;padding-bottom:125px}h1{font-size:46px}h2{font-size:32px}.cover-subtitle{font-size:24px}.cover-subtitle span{padding:0 3px}.ledger-row{font-size:23px;gap:14px}.ledger-row strong{font-size:27px}.big-number{font-size:62px}.goal-calculation p{font-size:23px;gap:12px}.goal-calculation strong{font-size:26px}.target-number{font-size:65px}.target-number span{font-size:30px}.together{font-size:26px}.table-wrap{margin-right:-3%}table{min-width:650px}.navigation{height:65px}.paging{font-size:22px;gap:12px}}
/* Slide 2: movement summary and a single photo / balance composition. */
#saldo{padding:64px 6%;background:#f7f8f5}
#saldo .section-heading{margin-bottom:40px}
#saldo .balance-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7%;align-items:stretch}
#saldo .ledger{display:grid;grid-template-rows:repeat(3,1fr);min-width:0}
#saldo .ledger-row{justify-content:flex-start;padding:20px 0;gap:24px;border-bottom:1px solid #d8dfd4}
#saldo .ledger-row:last-child{border-bottom:0}
#saldo .movement-mark{width:56px;height:56px;flex:0 0 56px;display:grid;place-items:center;border-radius:50%;font-size:32px;font-weight:500;color:#485e66;background:#e5ebed}
#saldo .outgoing .movement-mark{color:#984532;background:#f3e7e0}
#saldo .incoming .movement-mark{color:#295b45;background:#e4eddb}
#saldo .movement-copy{display:flex;flex-direction:column;gap:6px;min-width:0}
#saldo .movement-copy>span{font-size:28px;line-height:1.3;color:#4e5c54}
#saldo .ledger-row strong{font-size:44px;line-height:1.15;font-weight:700;font-variant-numeric:tabular-nums}
#saldo .available{padding:0;border:0;display:grid;grid-template-rows:180px auto;min-width:0}
#saldo .detail-image{margin:0;height:100%;border-radius:0;overflow:hidden}
#saldo .detail-image img{display:block;object-position:center 58%}
#saldo .balance-total{background:#204638;color:white;padding:30px 36px 34px;border-bottom:5px solid #bcd582}
#saldo .balance-total .eyebrow{color:#edf3e7;font-size:28px;font-weight:500;margin:0 0 14px}
#saldo .big-number{font-size:82px;line-height:1.05;color:#d0ea8a;display:flex;gap:14px;align-items:baseline}
#saldo .big-number>span{font-size:36px;color:white}
@media(min-width:1600px) and (min-height:900px){#saldo .available{grid-template-rows:230px auto}#saldo .balance-total{padding:36px 44px 40px}#saldo .big-number{font-size:104px}#saldo .movement-copy>span{font-size:32px}#saldo .ledger-row strong{font-size:52px}}
@media(max-width:1150px){#saldo .balance-layout{gap:5%}#saldo .movement-mark{width:44px;height:44px;flex-basis:44px}#saldo .ledger-row{gap:16px}#saldo .movement-copy>span{font-size:24px}#saldo .ledger-row strong{font-size:36px}#saldo .balance-total{padding:26px}#saldo .big-number{font-size:66px}#saldo .balance-total .eyebrow{font-size:26px}}
@media(max-height:720px) and (min-width:901px){#saldo{padding:40px 6%}#saldo .section-heading{margin-bottom:28px}#saldo .available{grid-template-rows:140px auto}#saldo .ledger-row{padding:14px 0}#saldo .balance-total{padding-top:24px;padding-bottom:26px}}
@media(max-width:900px){#saldo .balance-layout{grid-template-columns:1fr;gap:24px}#saldo .available{grid-template-rows:170px auto}#saldo .slide-logo{position:static;width:200px;height:52px;object-position:left;margin-bottom:24px}#saldo .section-heading{padding-right:0;margin-bottom:20px}#saldo .ledger-row{padding:18px 0}#saldo .movement-copy>span{font-size:24px}#saldo .big-number{font-size:64px}#saldo .balance-total{padding:26px}#saldo .big-number>span{font-size:30px}}
/* Totals share the same column tracks and alignment as the cost detail. */
#custos{padding:48px 6%;background:#f7f8f5}
#custos .section-heading{margin-bottom:30px}
#custos table{table-layout:fixed;background:#fff}
#custos tr>:first-child{width:34%;padding-left:22px}
#custos tr>:not(:first-child){width:22%}
#custos th,#custos td{padding:13px 22px;border-bottom:1px solid #e1e5dd}
#custos thead th{background:#e7ece6;color:#45594b;font-size:26px;font-weight:600;border-bottom:2px solid #bdcbb6}
#custos tbody th{font-size:30px;font-weight:600}
#custos tbody td{font-size:30px}
#custos tbody tr:nth-child(even){background:#f4f6f2}
#custos tr>:last-child{background:#eaf0e2;color:#204638;font-weight:700}
#custos tbody tr:nth-child(even)>:last-child{background:#e2ead8}
#custos tbody td:nth-child(3){color:#486b58}
#custos tbody small{font-size:24px;color:#57665b}
#custos tbody tr:last-child>*{border-bottom:0}
#custos th,#custos td{vertical-align:middle}
#custos tr>:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
#custos tfoot th,#custos tfoot td{padding-top:24px;padding-bottom:24px;font-size:32px;font-weight:700;border-top:3px solid #b8c6b0;border-bottom:0;background:#e6ebed}
#custos tfoot td:nth-child(3){color:#295b45;background:#e9efdf}
#custos tfoot td:last-child{color:#d0ea8a;background:#204638}
@media(max-width:1250px){#custos th,#custos td{padding-left:16px;padding-right:16px}#custos tr>:first-child{padding-left:16px}#custos tfoot th,#custos tfoot td{font-size:28px}}
@media(max-height:800px) and (min-width:901px){#custos{padding:36px 6%}#custos .section-heading{margin-bottom:22px}#custos th,#custos td{padding-top:9px;padding-bottom:9px}#custos tbody th,#custos tbody td{font-size:26px}#custos thead th,#custos tbody small{font-size:24px}#custos tfoot th,#custos tfoot td{padding-top:20px;padding-bottom:20px;font-size:28px}}
@media(max-width:900px){#custos .slide-logo{position:static;width:200px;height:52px;object-position:left;margin-bottom:24px}#custos .section-heading{padding-right:0}#custos .table-wrap{margin:0}#custos table{min-width:720px}#custos tbody th,#custos tbody td,#custos tfoot th,#custos tfoot td{font-size:24px}#custos thead th,#custos tbody small{font-size:24px}}
/* Closing slide: target first, calculation second, architecture in view. */
#meta{padding:134px 6% 58px;align-items:center;background:#11221b}
#meta .backdrop{object-position:65% center}
#meta .goal-shade{background:linear-gradient(90deg,#0d201af5 0%,#0d201aee 32%,#0d201abc 58%,#0d201a35 100%)}
#meta .goal-content{padding-right:35%}
#meta .section-heading{margin-bottom:42px}
#meta h2{font-size:48px;font-weight:600}
#meta .goal-layout{max-width:none}
#meta .target-label{margin:0 0 12px;font-size:30px;font-weight:500;color:#eef3e8}
#meta .target-number{display:flex;align-items:baseline;gap:18px;font-size:132px;line-height:1.06;font-weight:800;color:#d0ea8a;margin:0 0 32px;font-variant-numeric:tabular-nums}
#meta .target-number>span{font-size:46px;color:#fff;font-weight:500}
#meta .goal-calculation{display:grid;grid-template-columns:1fr 1fr;gap:26px;padding:24px 0 0;border-top:1px solid #d0ea8a70;border-bottom:0;max-width:700px}
#meta .goal-calculation p{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin:0;font-size:26px;line-height:1.25;color:#edf1e9}
#meta .goal-calculation p+p{border-left:1px solid #ffffff40;padding-left:26px}
#meta .goal-calculation strong{font-size:38px;font-weight:600}
#meta .together{margin:42px 0 0;padding-left:20px;border-left:4px solid #d0ea8a;font-size:30px;line-height:1.3;color:#edf1e9}
#meta .together strong{font-weight:700;color:white}
@media(min-width:1600px) and (min-height:900px){#meta h2{font-size:56px}#meta .target-number{font-size:158px}#meta .goal-calculation strong{font-size:44px}#meta .together{font-size:36px}}
@media(max-width:1200px){#meta .goal-content{padding-right:28%}#meta h2{font-size:42px}#meta .target-number{font-size:104px}#meta .goal-calculation strong{font-size:34px}}
@media(max-height:800px) and (min-width:901px){#meta{padding-top:112px;padding-bottom:40px}#meta .section-heading{margin-bottom:26px}#meta h2{font-size:40px}#meta .target-label{font-size:28px}#meta .target-number{font-size:108px;margin-bottom:24px}#meta .goal-calculation{padding-top:18px}#meta .goal-calculation strong{font-size:34px}#meta .together{font-size:28px;margin-top:30px}}
@media(max-width:900px){#meta{padding-top:110px;padding-bottom:40px}#meta .goal-content{padding-right:0}#meta .goal-shade{background:linear-gradient(90deg,#0d201aee,#0d201abb)}#meta .section-heading{margin-bottom:32px}#meta .target-number{font-size:98px}#meta .together{margin-top:32px}}
@media(max-width:550px){#meta h2{font-size:32px}#meta .target-label{font-size:24px}#meta .target-number{font-size:64px;gap:10px;margin-bottom:26px}#meta .target-number>span{font-size:28px}#meta .goal-calculation{grid-template-columns:1fr;gap:18px}#meta .goal-calculation p{flex-direction:row;justify-content:space-between;align-items:center;gap:10px;font-size:23px}#meta .goal-calculation p+p{padding-left:0;border-left:0}#meta .goal-calculation strong{font-size:26px}#meta .together{font-size:26px;padding-left:14px}}

/* ==========================================================================
   SISTEMA DE ANIMAÇÕES CINEMÁTICAS: IN & OUT, ZOOM E COMPOSIÇÃO
   ========================================================================== */

:root {
  --ease-expo-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-soft: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-exit: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Base states: When JS is ready and slide is NOT active (OUT state) */
.js-ready .slide .backdrop {
  transform: scale(1.12) translateZ(0);
  opacity: 0.75;
  filter: blur(3px);
  transition: transform 0.55s var(--ease-exit), opacity 0.45s ease, filter 0.45s ease;
  will-change: transform, opacity;
}

.js-ready .slide.is-active .backdrop {
  transform: scale(1.00) translateZ(0);
  opacity: 1;
  filter: blur(0);
  transition: transform 3s var(--ease-expo-out), opacity 1.2s ease, filter 1.2s ease;
}

/* Animação constante de respiração (zoom in/out sutil) na capa do hero */
.js-ready .cover.is-active .backdrop {
  opacity: 1;
  filter: blur(0);
  animation: heroBreathingZoom 16s ease-in-out infinite alternate;
}

@keyframes heroBreathingZoom {
  0% {
    transform: scale(1.00) translateZ(0);
  }
  100% {
    transform: scale(1.06) translateZ(0);
  }
}

/* Slide 1 - Cover */
.js-ready .cover .cover-copy #title {
  opacity: 0;
  transform: translateY(40px) scale(0.92) translateZ(0);
  filter: blur(8px);
  transition: transform 0.45s var(--ease-exit), opacity 0.35s ease, filter 0.35s ease;
  will-change: transform, opacity;
}
.js-ready .cover.is-active .cover-copy #title {
  opacity: 1;
  transform: translateY(0) scale(1) translateZ(0);
  filter: blur(0);
  transition: transform 0.95s var(--ease-expo-out) 0.15s, opacity 0.8s ease 0.15s, filter 0.8s ease 0.15s;
}

.js-ready .cover .cover-copy #title > span {
  display: inline-block;
  transform: scale(0);
  opacity: 0;
  transition: transform 0.35s var(--ease-exit), opacity 0.3s ease;
}
.js-ready .cover.is-active .cover-copy #title > span {
  transform: scale(1);
  opacity: 1;
  transition: transform 0.7s var(--ease-spring) 0.65s, opacity 0.5s ease 0.65s;
}

.js-ready .cover .cover-subtitle {
  opacity: 0;
  transform: translateY(28px) scale(0.95);
  filter: blur(5px);
  transition: transform 0.4s var(--ease-exit), opacity 0.35s ease, filter 0.35s ease;
}
.js-ready .cover.is-active .cover-subtitle {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
  transition: transform 0.85s var(--ease-expo-out) 0.35s, opacity 0.8s ease 0.35s, filter 0.8s ease 0.35s;
}

.js-ready .cover .cover-subtitle span {
  display: inline-block;
  transform: scale(0.7);
  transition: transform 0.3s ease;
}
.js-ready .cover.is-active .cover-subtitle span {
  transform: scale(1);
  transition: transform 0.6s var(--ease-spring) 0.55s;
}

/* Slide Logo & Section Headings */
.js-ready .slide .slide-logo {
  opacity: 0;
  transform: translateY(-25px) scale(0.9);
  transition: transform 0.4s var(--ease-exit), opacity 0.35s ease;
}
.js-ready .slide.is-active .slide-logo {
  opacity: 1;
  transform: translateY(0) scale(1);
  transition: transform 0.75s var(--ease-expo-out) 0.08s, opacity 0.6s ease 0.08s;
}

.js-ready .slide .section-heading {
  opacity: 0;
  transform: translateY(-24px) scale(0.94);
  filter: blur(5px);
  transition: transform 0.4s var(--ease-exit), opacity 0.35s ease, filter 0.35s ease;
}
.js-ready .slide.is-active .section-heading {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
  transition: transform 0.85s var(--ease-expo-out) 0.12s, opacity 0.7s ease 0.12s, filter 0.7s ease 0.12s;
}
.js-ready .slide.is-active .section-heading h2 > span {
  display: inline-block;
  animation: popDot 0.6s var(--ease-spring) 0.5s both;
}
@keyframes popDot {
  0% { transform: scale(0); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}

/* Slide 2 - Balance (Ledger Rows Cascade) */
.js-ready #saldo .ledger-row {
  opacity: 0;
  transform: translateX(-40px) scale(0.95);
  filter: blur(5px);
  transition: transform 0.4s var(--ease-exit), opacity 0.35s ease, filter 0.35s ease;
}
.js-ready #saldo.is-active .ledger-row {
  opacity: 1;
  transform: translateX(0) scale(1);
  filter: blur(0);
}
.js-ready #saldo.is-active .ledger-row.opening {
  transition: transform 0.8s var(--ease-expo-out) 0.20s, opacity 0.7s ease 0.20s, filter 0.7s ease 0.20s;
}
.js-ready #saldo.is-active .ledger-row.outgoing {
  transition: transform 0.8s var(--ease-expo-out) 0.32s, opacity 0.7s ease 0.32s, filter 0.7s ease 0.32s;
}
.js-ready #saldo.is-active .ledger-row.incoming {
  transition: transform 0.8s var(--ease-expo-out) 0.44s, opacity 0.7s ease 0.44s, filter 0.7s ease 0.44s;
}

.js-ready #saldo .movement-mark {
  opacity: 0;
  transform: scale(0.2) rotate(-60deg);
  transition: transform 0.35s var(--ease-exit), opacity 0.3s ease;
}
.js-ready #saldo.is-active .ledger-row.opening .movement-mark {
  opacity: 1;
  transform: scale(1) rotate(0deg);
  transition: transform 0.7s var(--ease-spring) 0.24s, opacity 0.5s ease 0.24s;
}
.js-ready #saldo.is-active .ledger-row.outgoing .movement-mark {
  opacity: 1;
  transform: scale(1) rotate(0deg);
  transition: transform 0.7s var(--ease-spring) 0.36s, opacity 0.5s ease 0.36s;
}
.js-ready #saldo.is-active .ledger-row.incoming .movement-mark {
  opacity: 1;
  transform: scale(1) rotate(0deg);
  transition: transform 0.7s var(--ease-spring) 0.48s, opacity 0.5s ease 0.48s;
}

.js-ready #saldo .ledger-row strong {
  display: inline-block;
  transition: transform 0.4s ease;
}
.js-ready #saldo.is-active .ledger-row strong {
  animation: numberSwell 0.7s var(--ease-soft) 0.45s both;
}
@keyframes numberSwell {
  0% { transform: scale(0.92); }
  60% { transform: scale(1.03); }
  100% { transform: scale(1); }
}

/* Slide 2 - Available (Composition Block) */
.js-ready #saldo .available .detail-image {
  opacity: 0;
  transform: translateY(25px) scale(0.94);
  filter: blur(5px);
  transition: transform 0.4s var(--ease-exit), opacity 0.35s ease, filter 0.35s ease;
  position: relative;
  overflow: hidden;
}
.js-ready #saldo .available .detail-image img {
  transform: scale(1.12);
  transition: transform 0.5s var(--ease-exit);
}
.js-ready #saldo.is-active .available .detail-image {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
  transition: transform 0.85s var(--ease-expo-out) 0.28s, opacity 0.7s ease 0.28s, filter 0.7s ease 0.28s;
}
.js-ready #saldo.is-active .available .detail-image img {
  transform: scale(1);
  transition: transform 2s var(--ease-expo-out) 0.28s;
}

.js-ready #saldo .balance-total {
  opacity: 0;
  transform: translateY(45px) scale(0.94);
  filter: blur(6px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0);
  transition: transform 0.4s var(--ease-exit), opacity 0.35s ease, filter 0.35s ease, box-shadow 0.4s ease;
}
.js-ready #saldo.is-active .balance-total {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
  box-shadow: 0 16px 36px rgba(32, 70, 56, 0.22);
  transition: transform 0.9s var(--ease-expo-out) 0.42s, opacity 0.75s ease 0.42s, filter 0.75s ease 0.42s, box-shadow 1s ease 0.42s;
}

.js-ready #saldo .balance-total .eyebrow {
  opacity: 0;
  transform: translateY(15px);
  transition: transform 0.35s ease, opacity 0.35s ease;
}
.js-ready #saldo.is-active .balance-total .eyebrow {
  opacity: 1;
  transform: translateY(0);
  transition: transform 0.7s var(--ease-expo-out) 0.52s, opacity 0.6s ease 0.52s;
}

.js-ready #saldo .balance-total .big-number {
  opacity: 0;
  transform: scale(0.82);
  transition: transform 0.4s var(--ease-exit), opacity 0.35s ease;
}
.js-ready #saldo.is-active .balance-total .big-number {
  opacity: 1;
  transform: scale(1);
  transition: transform 0.85s var(--ease-spring) 0.58s, opacity 0.6s ease 0.58s;
}

/* Slide 3 - Costs Table Stagger */
.js-ready #custos .table-wrap {
  opacity: 0;
  transform: translateY(30px) scale(0.97);
  filter: blur(6px);
  transition: transform 0.4s var(--ease-exit), opacity 0.35s ease, filter 0.35s ease;
}
.js-ready #custos.is-active .table-wrap {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
  transition: transform 0.85s var(--ease-expo-out) 0.16s, opacity 0.7s ease 0.16s, filter 0.7s ease 0.16s;
}

.js-ready #custos table thead tr {
  opacity: 0;
  transform: translateY(-16px);
  transition: transform 0.35s var(--ease-exit), opacity 0.3s ease;
}
.js-ready #custos.is-active table thead tr {
  opacity: 1;
  transform: translateY(0);
  transition: transform 0.7s var(--ease-expo-out) 0.22s, opacity 0.6s ease 0.22s;
}

.js-ready #custos table tbody tr {
  opacity: 0;
  transform: translateY(22px) scale(0.98);
  filter: blur(4px);
  transition: transform 0.35s var(--ease-exit), opacity 0.3s ease, filter 0.3s ease;
}
.js-ready #custos.is-active table tbody tr {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}
.js-ready #custos.is-active table tbody tr:nth-child(1) {
  transition: transform 0.65s var(--ease-expo-out) 0.26s, opacity 0.55s ease 0.26s, filter 0.55s ease 0.26s;
}
.js-ready #custos.is-active table tbody tr:nth-child(2) {
  transition: transform 0.65s var(--ease-expo-out) 0.33s, opacity 0.55s ease 0.33s, filter 0.55s ease 0.33s;
}
.js-ready #custos.is-active table tbody tr:nth-child(3) {
  transition: transform 0.65s var(--ease-expo-out) 0.40s, opacity 0.55s ease 0.40s, filter 0.55s ease 0.40s;
}
.js-ready #custos.is-active table tbody tr:nth-child(4) {
  transition: transform 0.65s var(--ease-expo-out) 0.47s, opacity 0.55s ease 0.47s, filter 0.55s ease 0.47s;
}
.js-ready #custos.is-active table tbody tr:nth-child(5) {
  transition: transform 0.65s var(--ease-expo-out) 0.54s, opacity 0.55s ease 0.54s, filter 0.55s ease 0.54s;
}
.js-ready #custos.is-active table tbody tr:nth-child(6) {
  transition: transform 0.65s var(--ease-expo-out) 0.61s, opacity 0.55s ease 0.61s, filter 0.55s ease 0.61s;
}

.js-ready #custos table tfoot tr {
  opacity: 0;
  transform: translateY(26px) scale(0.94);
  filter: blur(6px);
  transition: transform 0.4s var(--ease-exit), opacity 0.35s ease, filter 0.35s ease;
}
.js-ready #custos.is-active table tfoot tr {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
  transition: transform 0.8s var(--ease-spring) 0.70s, opacity 0.65s ease 0.70s, filter 0.65s ease 0.70s;
}

/* Slide 4 - Goal (Meta) */
.js-ready #meta .target-label {
  opacity: 0;
  transform: translateY(20px) scale(0.96);
  transition: transform 0.35s var(--ease-exit), opacity 0.3s ease;
}
.js-ready #meta.is-active .target-label {
  opacity: 1;
  transform: translateY(0) scale(1);
  transition: transform 0.75s var(--ease-expo-out) 0.22s, opacity 0.65s ease 0.22s;
}

.js-ready #meta .target-number {
  opacity: 0;
  transform: scale(0.68) translateY(35px);
  filter: blur(8px);
  text-shadow: 0 0 0 rgba(208, 234, 138, 0);
  transition: transform 0.45s var(--ease-exit), opacity 0.35s ease, filter 0.35s ease, text-shadow 0.4s ease;
  will-change: transform, opacity, filter;
}
.js-ready #meta.is-active .target-number {
  opacity: 1;
  transform: scale(1) translateY(0);
  filter: blur(0);
  text-shadow: 0 0 45px rgba(208, 234, 138, 0.45), 0 0 15px rgba(208, 234, 138, 0.25);
  transition: transform 1s var(--ease-spring) 0.34s, opacity 0.8s ease 0.34s, filter 0.8s ease 0.34s, text-shadow 1.2s ease 0.4s;
}

.js-ready #meta .goal-calculation {
  opacity: 0;
  transform: translateY(28px) scale(0.95);
  filter: blur(5px);
  transition: transform 0.4s var(--ease-exit), opacity 0.35s ease, filter 0.35s ease;
}
.js-ready #meta.is-active .goal-calculation {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
  transition: transform 0.85s var(--ease-expo-out) 0.52s, opacity 0.7s ease 0.52s, filter 0.7s ease 0.52s;
}

.js-ready #meta .goal-calculation p {
  transition: transform 0.4s ease;
}
.js-ready #meta.is-active .goal-calculation p:first-child {
  animation: slideInLeft 0.8s var(--ease-expo-out) 0.56s both;
}
.js-ready #meta.is-active .goal-calculation p:last-child {
  animation: slideInRight 0.8s var(--ease-expo-out) 0.62s both;
}
@keyframes slideInLeft {
  0% { transform: translateX(-20px); opacity: 0; }
  100% { transform: translateX(0); opacity: 1; }
}
@keyframes slideInRight {
  0% { transform: translateX(20px); opacity: 0; }
  100% { transform: translateX(0); opacity: 1; }
}

.js-ready #meta .together {
  opacity: 0;
  transform: translateX(-30px) scale(0.95);
  filter: blur(5px);
  border-left-width: 0px;
  transition: transform 0.4s var(--ease-exit), opacity 0.35s ease, filter 0.35s ease, border-left-width 0.4s ease;
}
.js-ready #meta.is-active .together {
  opacity: 1;
  transform: translateX(0) scale(1);
  filter: blur(0);
  border-left-width: 4px;
  transition: transform 0.85s var(--ease-expo-out) 0.72s, opacity 0.75s ease 0.72s, filter 0.75s ease 0.72s, border-left-width 0.7s var(--ease-expo-out) 0.72s;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js-ready .slide .backdrop,
  .js-ready .cover .cover-copy #title,
  .js-ready .cover.is-active .cover-copy #title,
  .js-ready .cover .cover-subtitle,
  .js-ready .cover.is-active .cover-subtitle,
  .js-ready .slide .slide-logo,
  .js-ready .slide .section-heading,
  .js-ready #saldo .ledger-row,
  .js-ready #saldo .movement-mark,
  .js-ready #saldo .available .detail-image,
  .js-ready #saldo .balance-total,
  .js-ready #saldo .balance-total .big-number,
  .js-ready #custos .table-wrap,
  .js-ready #custos table thead tr,
  .js-ready #custos table tbody tr,
  .js-ready #custos table tfoot tr,
  .js-ready #meta .target-label,
  .js-ready #meta .target-number,
  .js-ready #meta .goal-calculation,
  .js-ready #meta .together {
    transition: opacity 0.3s ease !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
  }
}

@media print{.masthead,.navigation{display:none}.slide{height:100vh;min-height:100vh;max-height:none;break-after:page;padding:40px;overflow:visible;print-color-adjust:exact;-webkit-print-color-adjust:exact}}

