:root{
  --navy:#00134A;
  --navy-deep:#000A2E;
  --navy-soft:#132868;
  --gold:#FFBC00;
  --gold-soft:#FFD866;
  --green:#00B156;
  --green-deep:#028943;
  --mint:#8DDFBE;
  --paper:#F7F1E6;
  --paper-2:#EFE6D3;
  --ink:#0B1630;
  --ink-muted:#4B5576;
  --line:rgba(11,22,48,0.14);
  --line-strong:rgba(11,22,48,0.24);
  --on-navy:#F7F4EA;
  --on-navy-muted:#B9C2DE;
  --line-navy:rgba(247,244,234,0.16);
  --line-navy-strong:rgba(247,244,234,0.3);
  --shadow:0 24px 50px -24px rgba(0,10,46,0.45);
}
*{box-sizing:border-box;min-width:0;}
html{scroll-behavior:smooth;overflow-x:clip;background:var(--navy-deep);}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
  width:100%;
}
img{max-width:100%;display:block;}
.display{
  font-family:"Arial Black","Arial Bold",Arial,"Helvetica Neue",sans-serif;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:-0.01em;
}
.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem);}
.eyebrow{
  font-size:0.72rem;
  letter-spacing:0.24em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--green-deep);
}
.eyebrow.on-navy{color:var(--mint);}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
}

/* ribbon motif */
.ribbon{
  position:absolute;
  width:56%;
  aspect-ratio:5/1;
  background:linear-gradient(100deg,var(--green) 0%,var(--green) 32%,var(--gold) 32%,var(--gold) 64%,#1651C9 64%,#1651C9 100%);
  transform:rotate(-32deg);
  border-radius:6px;
  box-shadow:0 18px 40px -16px rgba(0,0,0,0.5);
  opacity:0.94;
}

/* nav */
.nav{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb, var(--navy) 88%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-navy);
}
.nav-inner{
  max-width:1200px;margin:0 auto;
  padding:0.7rem clamp(1.25rem,4vw,3rem);
  display:flex;align-items:center;justify-content:space-between;
}
.nav-logo{height:2.1rem;width:auto;}
.nav-badge{
  font-family:"Arial Black",Arial,sans-serif;
  font-weight:900;
  color:var(--navy);
  background:var(--gold);
  font-size:0.85rem;
  letter-spacing:0.02em;
  padding:0.35rem 0.85rem;
  border-radius:999px;
  font-variant-numeric:tabular-nums;
}

/* hero */
.hero{
  position:relative;
  background:radial-gradient(ellipse 90% 70% at 15% -10%, var(--navy-soft), transparent 55%),
             linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
  overflow:hidden;
  border-bottom:1px solid var(--line-navy);
}
.hero .ribbon{top:-6%;left:-14%;}
.hero-grid{
  position:relative;z-index:2;
  max-width:1200px;margin:0 auto;
  padding:clamp(2.75rem,6vw,4.5rem) clamp(1.25rem,4vw,3rem) 0;
  display:grid;grid-template-columns:1.08fr 0.92fr;
  align-items:end;gap:1.5rem;
  min-height:min(96vh,900px);
}
.hero-copy{padding-bottom:clamp(2.25rem,5vw,4rem);color:var(--on-navy);}
.hero-kicker{
  display:inline-flex;align-items:center;gap:0.5rem;
  font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;font-weight:700;
  color:var(--mint);
}
.hero-title{
  margin:0.7rem 0 0;
  font-size:clamp(3rem,7.4vw,5.4rem);
  line-height:0.9;
  color:var(--on-navy);
}
.hero-title .costa{color:var(--gold);}
.hero-slogan{
  margin:1.1rem 0 0;
  font-size:clamp(1.15rem,1.6vw,1.4rem);
  color:var(--on-navy-muted);
  max-width:32ch;
  font-weight:500;
}
.hero-slogan strong{color:var(--on-navy);font-weight:700;}
.ballot-badge{
  display:inline-flex;flex-wrap:wrap;align-items:center;gap:0.4rem 0.75rem;
  max-width:100%;
  margin-top:1.8rem;
  padding:0.6rem 1.1rem 0.6rem 0.6rem;
  border:1px solid var(--line-navy-strong);
  border-radius:1.4rem;
  background:rgba(255,255,255,0.04);
}
.ballot-badge .num{
  font-family:"Arial Black",Arial,sans-serif;
  font-weight:900;
  background:var(--gold);
  color:var(--navy);
  font-size:1.3rem;
  padding:0.25rem 0.7rem;
  border-radius:999px;
  font-variant-numeric:tabular-nums;
  letter-spacing:0.01em;
}
.ballot-badge .lbl{font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--on-navy-muted);}
.hero-ctas{display:flex;flex-wrap:wrap;gap:0.75rem;margin-top:2rem;}
.btn{
  display:inline-flex;align-items:center;gap:0.5rem;
  font-weight:700;font-size:0.92rem;
  padding:0.8rem 1.4rem;border-radius:999px;text-decoration:none;
  border:1px solid transparent;
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease,border-color .25s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-gold{background:var(--gold);color:var(--navy);box-shadow:0 14px 30px -14px rgba(255,188,0,0.6);}
.btn-gold:hover{background:var(--gold-soft);}
.btn-outline-navy{background:transparent;color:var(--on-navy);border-color:var(--line-navy-strong);}
.btn-outline-navy:hover{border-color:var(--mint);color:var(--mint);}
.btn-outline-ink{background:transparent;color:var(--ink);border-color:var(--line-strong);}
.btn-outline-ink:hover{border-color:var(--green-deep);color:var(--green-deep);}
.hero-photo-col{position:relative;height:100%;display:flex;align-items:flex-end;justify-content:center;}
.hero-photo-col img{
  max-height:min(94vh,860px);width:auto;margin:0 auto;
  filter:drop-shadow(0 30px 40px rgba(0,0,0,0.45));
}

/* section shells */
section{position:relative;}
.pad{padding:clamp(3.5rem,8vw,6.5rem) 0;}
.on-navy-bg{background:linear-gradient(180deg,var(--navy-deep),var(--navy));color:var(--on-navy);}
.on-paper-bg{background:var(--paper);}
.on-paper2-bg{background:var(--paper-2);}

.kicker-row{display:flex;align-items:center;gap:0.9rem;margin-bottom:1rem;}
.kicker-row .line{height:1px;width:2.4rem;background:var(--green-deep);}
.kicker-row.on-navy .line{background:var(--mint);}
h2.section-title{
  margin:0 0 1.3rem;font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.08;text-wrap:balance;
}
.prose{max-width:56ch;}
.prose p{margin:0 0 1.05rem;}
.prose p:last-child{margin-bottom:0;}
.muted{color:var(--ink-muted);}
.on-navy .muted{color:var(--on-navy-muted);}

/* justify all running body text for consistent paragraph edges */
p,blockquote.big-quote{
  text-align:justify;
  text-justify:inter-word;
  hyphens:auto;
}

/* pilares */
.pilares-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2.4rem;}
.pilar-card{
  background:var(--navy);
  border-radius:26px 26px 14px 14px;
  padding:2.2rem 1.5rem 1.8rem;
  text-align:center;
  box-shadow:var(--shadow);
  position:relative;
}
.pilar-card .icon-ring{
  width:3.6rem;height:3.6rem;border-radius:50%;
  background:var(--green);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 1.1rem;
  color:var(--navy);
}
.pilar-card .icon-ring svg{width:1.7rem;height:1.7rem;}
.pilar-card h3{color:var(--gold);font-size:1.05rem;letter-spacing:0.02em;margin:0 0 0.5rem;text-transform:uppercase;}
.pilar-card p{color:var(--on-navy-muted);font-size:0.92rem;margin:0;}

/* split media-text */
.split{display:grid;grid-template-columns:0.82fr 1.18fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
.split.reverse{grid-template-columns:1.18fr 0.82fr;}
.split.reverse .split-media{order:2;}
.split.reverse .split-text{order:1;}
.split-media{position:relative;}
.split-media .frame{
  position:relative;overflow:hidden;border-radius:6px;
  background:linear-gradient(160deg,var(--paper-2),var(--paper));
  border:1px solid var(--line);
}
.split-media img{width:100%;height:100%;object-fit:cover;display:block;}
.split-media .tag{
  position:absolute;bottom:-0.9rem;left:1.3rem;
  background:var(--gold);color:var(--navy);
  font-weight:800;font-size:0.85rem;
  padding:0.4rem 0.9rem;border-radius:999px;
}

/* projetos */
.projetos-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:2.2rem;}
.projeto-card{
  background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:1.8rem 1.5rem 2rem;box-shadow:var(--shadow);
}
.projeto-card .num{
  display:inline-flex;align-items:center;justify-content:center;
  width:2.2rem;height:2.2rem;border-radius:50%;
  background:var(--green);color:#fff;font-weight:800;font-size:0.95rem;margin-bottom:1rem;
}
.projeto-card h3{font-size:1.2rem;margin:0 0 0.6rem;}
.projeto-card p{margin:0;color:var(--ink-muted);font-size:0.95rem;}
.projeto-card p + p{margin-top:0.75rem;}
.projeto-card p strong{color:var(--ink);}

/* sonho */
.sonho-grid{display:grid;grid-template-columns:0.8fr 1.2fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
.sonho-grid.flip{grid-template-columns:1.2fr 0.8fr;}
.sonho-photo img{width:100%;max-width:360px;margin:0 auto;border-radius:6px;filter:drop-shadow(0 22px 32px rgba(0,0,0,0.35));}
.sonho-photo.circle{
  width:min(100%,340px);aspect-ratio:1/1;margin:0 auto;border-radius:50%;overflow:hidden;
  background:radial-gradient(circle at 50% 30%,var(--navy-soft),var(--navy-deep));
  border:7px solid var(--gold);
  box-shadow:0 26px 46px -18px rgba(0,0,0,0.55);
}
.sonho-photo.circle img{
  width:100%;height:100%;max-width:none;margin:0;border-radius:0;
  object-fit:cover;object-position:50% 2%;filter:none;
}
blockquote.big-quote{
  margin:0;font-size:clamp(1.5rem,2.5vw,2.1rem);line-height:1.4;text-wrap:balance;font-weight:500;
}
blockquote.big-quote .hl{color:var(--gold);font-weight:800;}
.quote-mark{font-size:3.6rem;line-height:0.4;color:var(--mint);opacity:0.7;display:block;margin-bottom:0.7rem;font-family:Georgia,serif;}

/* galeria */
.galeria-grid{
  display:grid;grid-template-columns:repeat(6,1fr);gap:0.9rem;margin-top:2.4rem;
}
.galeria-item{
  border-radius:8px;overflow:hidden;border:6px solid #fff;box-shadow:var(--shadow);
  aspect-ratio:3/4;
}
.galeria-item img{width:100%;height:100%;object-fit:cover;}
.galeria-item:nth-child(2n){transform:rotate(1.4deg);}
.galeria-item:nth-child(2n+1){transform:rotate(-1.6deg);}
.galeria-item:hover{transform:rotate(0) scale(1.04);z-index:5;position:relative;transition:transform .3s ease;}

/* urna simulator */
.urna-wrap{
  display:grid;grid-template-columns:0.95fr 1.05fr;gap:clamp(2rem,5vw,4rem);align-items:center;
}
.urna-copy{color:var(--on-navy);}
.urna-device{
  background:linear-gradient(160deg,#e8e8ec,#c7c9d1);
  border-radius:22px;padding:1.4rem;
  box-shadow:0 30px 60px -20px rgba(0,0,0,0.6);
  max-width:380px;margin:0 auto;
}
.urna-screen{
  background:#0c1a0f;
  border-radius:8px;
  padding:1.1rem 1rem;
  min-height:9.5rem;
  font-family:ui-monospace,"SF Mono","Courier New",monospace;
  color:#5CFF9E;
  box-shadow:inset 0 0 0 3px #060c07, inset 0 4px 14px rgba(0,0,0,0.6);
  display:flex;flex-direction:column;
  gap:0.5rem;
}
.urna-screen .step-lbl{font-size:0.68rem;letter-spacing:0.14em;color:#8fd9a8;text-transform:uppercase;}
.urna-digits{
  font-size:2rem;letter-spacing:0.35em;font-weight:700;
  min-height:2.4rem;
}
.urna-digits .ph{opacity:0.28;}
.urna-msg{font-size:0.78rem;color:#5CFF9E;min-height:1.1rem;}
.urna-confirm{
  display:none;
  margin-top:0.3rem;
  border-top:1px dashed #1f3a24;
  padding-top:0.55rem;
  font-size:0.78rem;
  color:#eafff1;
  gap:0.6rem;
  align-items:center;
}
.urna-confirm img{width:2.6rem;height:2.6rem;border-radius:4px;object-fit:cover;filter:none;}
.urna-confirm.show{display:flex;}
.urna-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:0.55rem;margin-top:1.1rem;}
.urna-key{
  background:#f4f4f7;border:1px solid #b9bcc6;border-radius:8px;
  padding:0.75rem 0;font-size:1.15rem;font-weight:800;color:#1a1e2b;
  cursor:pointer;transition:background .15s ease,transform .1s ease;
  font-variant-numeric:tabular-nums;
}
.urna-key:active{transform:scale(0.94);}
.urna-key:hover{background:#e9e9ef;}
.urna-key.wide{font-size:0.72rem;letter-spacing:0.03em;}
.urna-key.confirma{background:var(--green);color:#fff;border-color:var(--green-deep);}
.urna-key.confirma:hover{background:var(--green-deep);}
.urna-key.corrige{background:#ffe3e3;color:#8a1f1f;border-color:#e2a5a5;}
.urna-key.corrige:hover{background:#ffd2d2;}
.urna-key:disabled{opacity:0.4;cursor:default;}
.urna-key:disabled:active{transform:none;}
@keyframes pulseWin{
  0%,100%{box-shadow:inset 0 0 0 3px #060c07, inset 0 4px 14px rgba(0,0,0,.6), 0 0 0 0 rgba(92,255,158,.5);}
  50%{box-shadow:inset 0 0 0 3px #060c07, inset 0 4px 14px rgba(0,0,0,.6), 0 0 0 14px rgba(92,255,158,0);}
}
.urna-screen.win{animation:pulseWin 1.1s ease-out 1;}
@media (prefers-reduced-motion:reduce){.urna-screen.win{animation:none;}}

/* footer */
footer{background:var(--navy-deep);color:var(--on-navy-muted);padding:clamp(2.5rem,6vw,3.5rem) 0 2rem;}
.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;}
.footer-logo{height:2.4rem;width:auto;}
.footer-social{
  display:inline-flex;align-items:center;gap:0.5rem;color:var(--on-navy);text-decoration:none;font-weight:700;
  font-size:0.92rem;border:1px solid var(--line-navy-strong);border-radius:999px;padding:0.55rem 1.1rem;
  transition:border-color .25s ease,color .25s ease;
}
.footer-social:hover{border-color:var(--gold);color:var(--gold);}
.footer-legal{margin-top:1.8rem;font-size:0.76rem;line-height:1.7;color:var(--on-navy-muted);opacity:0.75;text-align:justify;}

/* confetti overlay */
#confettiCanvas{
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  pointer-events:none;
  z-index:9999;
}

@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;min-height:auto;padding-top:2.25rem;}
  .hero-photo-col{order:-1;}
  .hero-photo-col img{max-height:56vh;}
  .split,.split.reverse{grid-template-columns:1fr;}
  .split.reverse .split-media,.split.reverse .split-text{order:initial;}
  .pilares-grid,.projetos-grid{grid-template-columns:1fr;}
  .sonho-grid{grid-template-columns:1fr;}
  .sonho-grid.flip{grid-template-columns:1fr;}
  .sonho-photo img{max-width:260px;}
  .galeria-grid{grid-template-columns:repeat(2,1fr);}
  .urna-wrap{grid-template-columns:1fr;}
  .ribbon{width:80%;}
}
