:root{
  --bg: #0B0F14;
  --panel: rgba(255,255,255,.06);
  --panel-2: rgba(255,255,255,.04);
  --surface: rgba(17,24,39,.55);
  --text: #E5E7EB;
  --muted: rgba(229,231,235,.72);
  --border: rgba(255,255,255,.08);
  --accent: #67e8f9;
  --accent-rgb: 103,232,249;
  --accent-2: #a78bfa;
  --accent-2-rgb: 167,139,250;
  --shadow: 0 14px 40px rgba(0,0,0,.35);
  --radius: 18px;
  --reveal-dy: 60px;

  --nav-bg: rgba(10,14,26,.70);
  --nav-bg-compact: rgba(10,14,26,.86);

  --page-accent: #00e0ff;
  --page-accent-rgb: 0,224,255;
  --page-accent-text: #061014;
}

body{
  background:
    radial-gradient(1000px 600px at 20% 0%, rgba(34,211,238,.12), transparent 60%),
    radial-gradient(900px 540px at 90% 10%, rgba(167,139,250,.10), transparent 55%),
    var(--bg);
}

body::before{
  content:"";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image: url("/assets/img/sites/franca/patterns/fr-pt-noise--512.png");
  background-repeat: repeat;
  opacity: .08;
  z-index: 0;
}

.hero,
.section{
  position: relative;
  z-index: 1;
}

.section--alt::before{
  content:"";
  position:absolute;
  inset:0;
  background-image: url("/assets/img/sites/franca/patterns/fr-pt-radargrid--512.png");
  background-repeat: repeat;
  opacity:.10;
  pointer-events:none;
}

.bg-glow{
  position:absolute;
  width: 520px;
  height: 520px;
  opacity: .28;
  pointer-events:none;
  filter: blur(0px);
}

.icon3d{
  display:block;
  width:72px;
  height:72px;
  object-fit:contain;
  filter:
    drop-shadow(0 10px 22px rgba(0,0,0,.55))
    drop-shadow(0 0 18px rgba(34,211,238,.20));
  transition: transform .18s ease, filter .18s ease, opacity .18s ease;
  opacity:.98;
}

.icon3d:hover{
  transform: translateY(-2px) scale(1.02);
  filter:
    drop-shadow(0 14px 28px rgba(0,0,0,.62))
    drop-shadow(0 0 26px rgba(34,211,238,.28));
  opacity:1;
}

.icon3d--hero{
  width: min(320px, 42vw);
  height: auto;
}

.tag-pill__ic{
  width:22px;
  height:22px;
  object-fit:contain;
  filter: drop-shadow(0 6px 12px rgba(0,0,0,.45));
}

.post-card .tag-pill__ic{
  filter: drop-shadow(0 4px 10px rgba(0,0,0,.35));
}