/* ============================================================
   MARANATHA MINISTRIES — INSTITUTIONAL SITE
   Dark-first glassmorphism, Apple-style scroll motion.
   Same DNA (tokens, noise texture, reveal pattern, Mosvita)
   as the Maranatha School reference site — different, richer
   execution: dark canvas, glass panels, 5 arm accent colors.
   ============================================================ */

/* ====== transição suave entre páginas (View Transitions nativas) ====== */
@view-transition{ navigation:auto; }
::view-transition-old(root){ animation:mm-page-out .28s cubic-bezier(.4,0,.2,1) both; }
::view-transition-new(root){ animation:mm-page-in .5s var(--ease) both; }
@keyframes mm-page-out{ to{ opacity:0; } }
@keyframes mm-page-in{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }

/* ====== FONTES (Mosvita Sans — idêntico ao School) ====== */
@font-face { font-family:'Mosvita'; src:url('../fonts/mosvita/mosvita-light.otf') format('opentype'); font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:'Mosvita'; src:url('../fonts/mosvita/mosvita-regular.otf') format('opentype'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Mosvita'; src:url('../fonts/mosvita/mosvita-medium.otf') format('opentype'); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:'Mosvita'; src:url('../fonts/mosvita/mosvita-semibold.otf') format('opentype'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Mosvita'; src:url('../fonts/mosvita/mosvita-bold.otf') format('opentype'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'Mosvita'; src:url('../fonts/mosvita/mosvita-extrabold.otf') format('opentype'); font-weight:800; font-style:normal; font-display:swap; }
@font-face { font-family:'Mosvita'; src:url('../fonts/mosvita/mosvita-black.otf') format('opentype'); font-weight:900; font-style:normal; font-display:swap; }
@font-face { font-family:'MosvitaExpanded'; src:url('../fonts/mosvita/mosvita-semiboldexpanded.otf') format('opentype'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'MosvitaExpanded'; src:url('../fonts/mosvita/mosvita-boldexpanded.otf') format('opentype'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'MosvitaExpanded'; src:url('../fonts/mosvita/mosvita-blackexpanded.otf') format('opentype'); font-weight:900; font-style:normal; font-display:swap; }

/* ====== TOKENS ====== */
:root{
  /* base */
  --dark:#071C16; --dark2:#0a2a1f; --dark3:#0e3328; --dark4:#123d30;
  --mint:#F4FFFA;
  --teal:#30CFA4; --teal2:#45d4ad;

  /* 5 braços */
  --arm-ministries:#30CFA4;
  --arm-school:#30CFA4;
  --arm-music:#C1EE6D;
  --arm-store:#FFBD18;
  --arm-conference:#17A3F2;
  --arm-publishing:#2E8FEF; /* original #0065D0 media contra o fundo escuro (3.18:1) — clareado p/ 5.3:1, mesma família de azul */
  --arm-books:#D39B4A; /* mesma cor do ícone da logo do books.maranathaministries.com.br */

  /* texto sobre fundo escuro (contraste auditado — mín. 4.5:1 no corpo, 3:1 em legendas) */
  --fg:var(--mint);
  --fg2:rgba(244,255,250,0.78);
  --fg3:rgba(244,255,250,0.64);
  --fg4:rgba(244,255,250,0.50);

  /* vidro (reforçado — o glass anterior quase não se distinguia do fundo) */
  --glass-bg:rgba(244,255,250,0.065);
  --glass-bg-strong:rgba(244,255,250,0.115);
  --glass-border:rgba(244,255,250,0.16);
  --glass-border-strong:rgba(244,255,250,0.28);
  --glass-highlight:rgba(244,255,250,0.22);

  /* superfícies sólidas (variedade em relação ao glass — cartões "opacos") */
  --surface:linear-gradient(165deg, var(--dark4), var(--dark3));
  --surface-border:rgba(244,255,250,0.14);

  --maxw:1200px;
  --header-h:84px;
  --ease:cubic-bezier(.16,1,.3,1);
}

/* ====== RESET ====== */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; overflow-x:hidden; }
body{
  background:var(--dark); color:var(--fg);
  font-family:'Mosvita',sans-serif; font-weight:400; line-height:1.6;
  -webkit-font-smoothing:antialiased; min-height:100svh;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
button,input,select,textarea{ font-family:inherit; color:inherit; }
::selection{ background:var(--teal); color:var(--dark); }
svg.icon{ width:1em; height:1em; display:inline-block; vertical-align:middle; flex-shrink:0; }

/* ====== FUNDO: NOISE + GLOWS ANIMADOS ====== */
body::before{
  content:''; position:fixed; inset:0; z-index:0; pointer-events:none; opacity:0.05;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-size:200px 200px;
}
.bg-glow{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.bg-glow span{ position:absolute; border-radius:50%; filter:blur(90px); opacity:0.35; will-change:transform; }
.bg-glow .g1{ width:52vw; height:52vw; max-width:760px; max-height:760px; top:-18vw; left:-10vw; background:radial-gradient(circle,var(--teal) 0%, transparent 70%); animation:driftA 26s ease-in-out infinite; }
.bg-glow .g2{ width:40vw; height:40vw; max-width:620px; max-height:620px; top:30vh; right:-14vw; background:radial-gradient(circle,var(--arm-conference) 0%, transparent 70%); opacity:0.16; animation:driftB 32s ease-in-out infinite; }
.bg-glow .g3{ width:38vw; height:38vw; max-width:560px; max-height:560px; bottom:-12vw; left:8vw; background:radial-gradient(circle,var(--arm-music) 0%, transparent 70%); opacity:0.12; animation:driftC 30s ease-in-out infinite; }
@keyframes driftA{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(4vw,3vh) scale(1.08); } }
@keyframes driftB{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(-3vw,4vh) scale(1.1); } }
@keyframes driftC{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(3vw,-3vh) scale(1.05); } }

/* ====== HELPERS DE LAYOUT ====== */
.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 24px; position:relative; z-index:1; }
.section{ padding:120px 0; position:relative; z-index:1; }
.section-tight{ padding-top:0; }
.section-sm{ padding:72px 0; }
.center{ text-align:center; }
.kicker{ display:inline-flex; align-items:center; gap:10px; font-size:11.5px; font-weight:700; letter-spacing:0.26em; text-transform:uppercase; color:var(--teal); margin-bottom:22px; }
.kicker::before{ content:''; width:22px; height:1.5px; background:var(--teal); }
.kicker.arm-kicker{ color:var(--arm-color, var(--teal)); }
.kicker.arm-kicker::before{ background:var(--arm-color, var(--teal)); }

/* ====== TIPOGRAFIA FLUIDA ====== */
.h-xl{ font-family:'Mosvita',sans-serif; font-weight:900; font-size:clamp(40px,6.8vw,92px); line-height:0.98; letter-spacing:-0.02em; }
.h-lg{ font-family:'Mosvita',sans-serif; font-weight:900; font-size:clamp(32px,4.8vw,58px); line-height:1.04; letter-spacing:-0.015em; }
.h-md{ font-family:'Mosvita',sans-serif; font-weight:800; font-size:clamp(24px,3vw,34px); line-height:1.12; letter-spacing:-0.01em; }
.h-sm{ font-family:'Mosvita',sans-serif; font-weight:700; font-size:clamp(19px,2.1vw,24px); line-height:1.2; }
.lead{ font-size:clamp(16px,1.6vw,19px); color:var(--mint); font-weight:500; line-height:1.8; }
.body-p{ font-size:15.5px; color:var(--mint); font-weight:500; line-height:1.8; }
.body-p + .body-p{ margin-top:16px; }
.letter-terms{ list-style:none; margin:16px 0 0; padding:0; display:flex; flex-direction:column; gap:12px; }
.letter-terms li{ position:relative; padding-left:24px; font-size:15.5px; color:var(--mint); font-weight:500; line-height:1.7; text-align:left; }
.letter-terms li::before{ content:''; position:absolute; left:0; top:9px; width:6px; height:6px; border-radius:50%; background:var(--teal); }
.letter-sign{ margin-top:24px; font-weight:700; color:var(--mint); }

/* ====== CARTA (tratamento próprio — distinto do glass genérico) ====== */
.letter-card{
  max-width:860px; margin:48px auto 0; text-align:left; overflow:hidden; position:relative;
  background:linear-gradient(165deg, var(--dark3), var(--dark2));
  border:1px solid rgba(244,255,250,0.14);
  border-radius:28px;
  box-shadow:0 34px 74px -22px rgba(0,0,0,0.65), inset 0 1px 0 rgba(244,255,250,0.06);
}
.letter-card::before{
  content:''; position:absolute; top:0; left:0; width:4px; height:100%;
  background:linear-gradient(var(--teal) 0%, rgba(48,207,164,0.15) 75%, transparent 100%);
}
.letter-head{ display:flex; align-items:center; gap:14px; padding:clamp(28px,4.5vw,48px) clamp(28px,4.5vw,52px) 0; }
.letter-icon{
  width:46px; height:46px; border-radius:50%; flex-shrink:0;
  background:rgba(48,207,164,0.14); border:1px solid rgba(48,207,164,0.4);
  display:flex; align-items:center; justify-content:center; color:var(--teal);
}
.letter-eyebrow{ font-size:11.5px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--teal); display:block; margin-bottom:3px; }
.letter-from{ font-size:14px; font-weight:700; color:var(--mint); }
.letter-body{ padding:22px clamp(28px,4.5vw,52px) clamp(30px,4.8vw,52px); }
.letter-body .body-p:first-child{ font-size:18px; font-weight:700; color:var(--mint); margin-bottom:18px; }
.letter-body .body-p{ text-align:left; }
.teal{ color:var(--teal); }
.arm-text{ color:var(--arm-color, var(--teal)); }
.max-p{ max-width:640px; }
.center .max-p{ margin-left:auto; margin-right:auto; }

/* ====== BOTÕES (com hover magnético via JS) ====== */
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:'Mosvita',sans-serif; font-weight:700; font-size:15px; letter-spacing:0.01em;
  padding:17px 32px; border-radius:100px; border:none; cursor:pointer;
  background:var(--teal); color:var(--dark); white-space:nowrap;
  transition:background .25s, transform .25s var(--ease), box-shadow .3s;
  box-shadow:0 12px 32px rgba(48,207,164,0.22);
}
.btn:hover{ background:var(--teal2); box-shadow:0 18px 44px rgba(48,207,164,0.32); }
.btn-lg{ padding:20px 42px; font-size:16.5px; }
.btn-ghost{
  background:var(--glass-bg); color:var(--mint); border:1px solid var(--glass-border-strong);
  box-shadow:none; backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
}
.btn-ghost:hover{ background:var(--glass-bg-strong); border-color:var(--teal); color:var(--teal); box-shadow:none; }
.btn-arrow svg{ transition:transform .25s var(--ease); }
.btn:hover .btn-arrow svg{ transform:translateX(4px); }
.btn-block{ width:100%; }
.btn-row{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }

/* ====== VIDRO (glassmorphism base) ====== */
.glass{
  background:linear-gradient(160deg, var(--glass-bg-strong), var(--glass-bg));
  border:1px solid var(--glass-border);
  border-radius:24px;
  backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px);
  box-shadow:0 30px 60px -20px rgba(0,0,0,0.6), inset 0 1px 0 rgba(244,255,250,0.09);
  position:relative;
}
.glass::before{
  content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  background:linear-gradient(140deg, var(--glass-highlight) 0%, transparent 30%);
  opacity:0.6;
}

/* ====== SUPERFÍCIE SÓLIDA (variedade — nem tudo é vidro translúcido) ====== */
.card-solid{
  background:var(--surface);
  border:1px solid var(--surface-border);
  border-radius:24px;
  box-shadow:0 26px 54px -20px rgba(0,0,0,0.65), inset 0 1px 0 rgba(244,255,250,0.05);
  position:relative;
}
.card-solid.arm-top::before{
  content:''; position:absolute; top:0; left:28px; right:28px; height:2px; border-radius:2px;
  background:var(--arm-color, var(--teal));
}

/* ====== DIVISOR DE SEÇÃO (ritmo entre blocos, sem depender só de padding) ====== */
.rule{ height:1px; width:100%; background:linear-gradient(90deg, transparent, var(--glass-border-strong) 50%, transparent); border:none; }
.rule-mark{ display:flex; align-items:center; gap:18px; margin:0 0 36px; }
.rule-mark .rule{ flex:1; }
.rule-mark .rule-dot{ width:7px; height:7px; border-radius:50%; background:var(--arm-color, var(--teal)); flex-shrink:0; }

/* ====== PRELOADER (desenha o símbolo ao entrar no site) ====== */
#preloader{
  position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center;
  background:var(--dark); transition:opacity .6s ease;
}
#preloader.is-hidden{ opacity:0; pointer-events:none; }
.preloader-mark{ position:relative; width:min(170px,40vw); aspect-ratio:139.25/63.15; }
.preloader-mark svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.preloader-stroke .stroke-path{
  fill:none; stroke:var(--teal); stroke-width:14; stroke-miterlimit:10;
  stroke-dasharray:2400; stroke-dashoffset:2400;
  animation:preloaderDraw .9s ease-in-out forwards;
}
.preloader-stroke .stroke-path:nth-child(1){ animation-delay:0s; }
.preloader-stroke .stroke-path:nth-child(2){ animation-delay:.08s; }
.preloader-stroke .stroke-path:nth-child(3){ animation-delay:.16s; }
.preloader-stroke .stroke-path:nth-child(4){ animation-delay:.24s; }
.preloader-stroke .stroke-path:nth-child(5){ animation-delay:.32s; }
.preloader-fill{ fill:var(--teal); opacity:0; animation:preloaderFill .5s ease forwards; animation-delay:1.05s; }
@keyframes preloaderDraw{ to{ stroke-dashoffset:0; } }
@keyframes preloaderFill{ to{ opacity:1; } }
@media (prefers-reduced-motion:reduce){
  .preloader-stroke .stroke-path{ animation:none; stroke-dashoffset:0; }
  .preloader-fill{ animation:none; opacity:1; }
}

/* ====== HEADER STICKY EM VIDRO ====== */
.site-header{
  position:sticky; top:0; z-index:100; width:100%;
  transition:background .35s, backdrop-filter .35s, border-color .35s, padding .35s;
  border-bottom:1px solid transparent;
}
.site-header-inner{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  max-width:var(--maxw); margin:0 auto; padding:22px 24px;
  transition:padding .35s;
}
.site-header.scrolled{ background:rgba(7,28,22,0.72); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-bottom-color:var(--glass-border); }
.site-header.scrolled .site-header-inner{ padding:14px 24px; }
.site-header .logo img{ height:38px; width:auto; display:block; transition:height .35s; }
.site-header.scrolled .logo img{ height:30px; }

.main-nav{ display:flex; align-items:center; gap:36px; }
.main-nav a{ font-size:14px; font-weight:600; color:var(--fg2); transition:color .2s; position:relative; }
.main-nav a::after{ content:''; position:absolute; left:0; right:0; bottom:-6px; height:1.5px; background:var(--teal); transform:scaleX(0); transform-origin:left; transition:transform .25s var(--ease); }
.main-nav a:hover{ color:var(--mint); }
.main-nav a:hover::after{ transform:scaleX(1); }

.header-actions{ display:flex; align-items:center; gap:16px; }
.site-header .btn{ padding:12px 24px; font-size:13.5px; box-shadow:none; }

.hamburger{
  display:none; width:44px; height:44px; border-radius:12px; border:1px solid var(--glass-border);
  background:var(--glass-bg); align-items:center; justify-content:center; cursor:pointer; flex-shrink:0;
}
.hamburger span{ position:relative; width:18px; height:12px; }
.hamburger span::before,.hamburger span::after{
  content:''; position:absolute; left:0; right:0; height:1.5px; background:var(--mint); transition:transform .3s var(--ease), opacity .2s;
}
.hamburger span::before{ top:0; }
.hamburger span::after{ bottom:0; }
.hamburger span::marker{ display:none; }
.hamburger.open span::before{ transform:translateY(5.5px) rotate(45deg); }
.hamburger.open span::after{ transform:translateY(-5.5px) rotate(-45deg); }

.nav-drawer{
  position:fixed; inset:0; z-index:99; background:rgba(7,28,22,0.88);
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  opacity:0; visibility:hidden; transform:translateY(-8px);
  transition:opacity .3s var(--ease), visibility .3s, transform .3s var(--ease);
}
.nav-drawer.open{ opacity:1; visibility:visible; transform:translateY(0); }
.nav-drawer a{ font-family:'Mosvita',sans-serif; font-weight:800; font-size:clamp(26px,7vw,34px); color:var(--mint); padding:14px 0; }
.nav-drawer a:hover{ color:var(--teal); }
.nav-drawer .btn{ margin-top:24px; }

/* ====== HERO ====== */
.hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; z-index:1; }
.hero-media{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.hero-media-fallback{
  position:absolute; inset:-6%; z-index:0;
  background:
    radial-gradient(ellipse 60% 50% at 50% 8%, rgba(48,207,164,0.35) 0%, transparent 65%),
    radial-gradient(ellipse 45% 40% at 85% 70%, rgba(229,119,123,0.16) 0%, transparent 60%),
    radial-gradient(ellipse 45% 40% at 10% 80%, rgba(193,238,109,0.14) 0%, transparent 60%),
    linear-gradient(180deg, var(--dark) 0%, var(--dark3) 55%, var(--dark) 100%);
}
.hero-media-fallback .fallback-icon{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-52%);
  width:min(52vw,420px); height:min(52vw,420px);
  background-color:rgba(244,255,250,0.05);
  -webkit-mask-image:url('../images/logo/maranatha-icon-white.png'); mask-image:url('../images/logo/maranatha-icon-white.png');
  -webkit-mask-size:contain; mask-size:contain; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center;
}
.hero-video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1;
  opacity:0; transition:opacity 1.2s ease; will-change:transform;
}
.hero-video.is-ready{ opacity:1; }
.hero-symbol{
  position:absolute; top:50%; left:50%; z-index:1; width:150%;
  transform:translate(-50%,-50%); mix-blend-mode:overlay; opacity:.6; pointer-events:none;
}
.hero-symbol svg{ width:100%; height:auto; display:block; }
.hero-symbol path, .hero-symbol circle{ fill:none; stroke:var(--mint); stroke-width:5; }
.hero-scrim{
  position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(180deg, rgba(7,28,22,0.15) 0%, rgba(7,28,22,0.35) 55%, var(--dark) 100%);
}
.hero-content{ position:relative; z-index:3; width:100%; padding:calc(var(--header-h) + 40px) 0 120px; }
.hero-badge{
  display:inline-flex; align-items:center; gap:10px; border:1px solid var(--glass-border-strong);
  border-radius:100px; padding:9px 18px 9px 14px; font-size:12px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--fg2); margin-bottom:30px; background:var(--glass-bg); backdrop-filter:blur(14px);
}
.hero-badge .dot{ width:7px; height:7px; border-radius:50%; background:var(--teal); animation:pulse-dot 2.2s ease-in-out infinite; }
@keyframes pulse-dot{ 0%,100%{ opacity:1; transform:scale(1); } 50%{ opacity:0.3; transform:scale(0.6); } }
.hero .h-xl{ max-width:920px; margin-bottom:28px; }
.hero-sub{ max-width:560px; margin-bottom:40px; }
.scroll-cue{
  position:absolute; left:50%; bottom:36px; transform:translateX(-50%); z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:10px; color:var(--fg3); font-size:11px;
  letter-spacing:0.2em; text-transform:uppercase;
}
.scroll-mouse{ width:24px; height:38px; border:2px solid var(--glass-border-strong); border-radius:14px; display:flex; justify-content:center; padding-top:7px; }
.scroll-wheel{ width:4px; height:8px; border-radius:2px; background:var(--teal); animation:scrollwheel 1.6s ease-in-out infinite; }
@keyframes scrollwheel{ 0%{ transform:translateY(0); opacity:1; } 60%{ transform:translateY(10px); opacity:0; } 100%{ transform:translateY(0); opacity:0; } }

/* ====== MANIFESTO ====== */
.manifesto{ text-align:center; }
.manifesto-lines{ max-width:900px; margin:0 auto; display:flex; flex-direction:column; gap:clamp(20px,4vw,36px); }
.manifesto-line{ font-family:'Mosvita',sans-serif; font-weight:800; font-size:clamp(22px,4.2vw,42px); line-height:1.28; color:var(--fg4); letter-spacing:-0.01em; transition:color .6s var(--ease); }
.manifesto-line.in{ color:var(--mint); }
.manifesto-line b{ color:var(--teal); font-weight:800; }
.manifesto-line.final{ color:var(--teal); }

/* ====== SOBRE + PILARES ====== */
.about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.pillars{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:48px; }
.pillar-card{ padding:30px 26px; }
.pillar-ic{ width:46px; height:46px; border-radius:13px; background:rgba(48,207,164,0.14); border:1px solid rgba(48,207,164,0.3); display:flex; align-items:center; justify-content:center; color:var(--teal); margin-bottom:18px; font-size:20px; }
.pillar-card h3{ font-family:'Mosvita',sans-serif; font-weight:800; font-size:17px; color:var(--mint); margin-bottom:8px; }
.pillar-card p{ font-size:13.5px; color:var(--mint); font-weight:500; line-height:1.65; }

/* ====== HUB DIAGRAM ====== */
.hub-wrap{ margin:70px auto 0; max-width:640px; }
.hub-diagram{ position:relative; width:100%; aspect-ratio:1/1; }
.hub-lines{ position:absolute; inset:0; width:100%; height:100%; z-index:0; }
.hub-lines line{ stroke-width:1; opacity:0.45; }
.hub-center{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:2;
  width:clamp(110px,26%,150px); height:clamp(110px,26%,150px); border-radius:50%;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center;
  background:radial-gradient(circle at 35% 25%, rgba(48,207,164,0.28), rgba(10,42,31,0.9));
  border:1px solid rgba(48,207,164,0.5);
  box-shadow:0 0 0 1px rgba(48,207,164,0.08), 0 20px 60px -10px rgba(48,207,164,0.35), inset 0 1px 0 rgba(244,255,250,0.12);
}
.hub-center .hub-icon{ width:34px; height:34px; background-color:var(--teal); -webkit-mask-image:url('../images/logo/maranatha-icon-white.png'); mask-image:url('../images/logo/maranatha-icon-white.png'); -webkit-mask-size:contain; mask-size:contain; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; }
.hub-center span.label{ font-family:'Mosvita',sans-serif; font-weight:800; font-size:clamp(11px,2.4vw,13px); line-height:1.15; color:var(--mint); }
.hub-node{
  position:absolute; transform:translate(-50%,-50%); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; width:96px;
}
.hub-node .node-dot{
  width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(10,42,31,0.85); border:1px solid var(--arm-color); box-shadow:0 10px 30px -6px var(--arm-color);
  transition:transform .3s var(--ease);
}
.hub-node .node-icon{ width:24px; height:24px; background-color:var(--arm-color); -webkit-mask-image:url('../images/logo/maranatha-icon-white.png'); mask-image:url('../images/logo/maranatha-icon-white.png'); -webkit-mask-size:contain; mask-size:contain; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; }
.hub-node:hover .node-dot{ transform:scale(1.1); }
.hub-node span.label{ font-size:11.5px; font-weight:700; color:var(--fg2); line-height:1.2; }
.hub-node[data-pos="school"]{ top:6%; left:50%; }
.hub-node[data-pos="music"]{ top:35%; left:91%; }
.hub-node[data-pos="store"]{ top:86%; left:75%; }
.hub-node[data-pos="conference"]{ top:86%; left:25%; }
.hub-node[data-pos="publishing"]{ top:35%; left:9%; }

/* ====== ARM CARDS (mini-seções por braço) ====== */
.arm-cards{ display:flex; flex-direction:column; gap:20px; margin-top:64px; }
.arm-card{
  display:grid; grid-template-columns:280px 1fr auto; align-items:center; gap:36px;
  padding:38px 44px; overflow:hidden; --glow:var(--arm-color);
}
.arm-card::after{
  content:''; position:absolute; top:-40%; right:-10%; width:50%; height:180%; z-index:0; pointer-events:none;
  background:radial-gradient(circle, var(--glow) 0%, transparent 68%); opacity:0.16;
}
.arm-lockup{ position:relative; z-index:1; display:flex; align-items:center; min-height:56px; }
.arm-lockup img{ max-height:52px; width:auto; }
.arm-wordmark{ display:flex; align-items:center; gap:14px; }
.arm-wordmark-icon{ width:44px; height:44px; background-color:var(--arm-color); -webkit-mask-image:url('../images/logo/maranatha-icon-white.png'); mask-image:url('../images/logo/maranatha-icon-white.png'); -webkit-mask-size:contain; mask-size:contain; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; flex-shrink:0; }
.arm-wordmark-text{ display:flex; flex-direction:column; line-height:1.05; }
.arm-wordmark-brand{ font-family:'Mosvita',sans-serif; font-weight:900; font-size:19px; color:rgba(244,255,250,0.5); }
.arm-wordmark-name{ font-family:'Mosvita',sans-serif; font-weight:900; font-size:22px; color:var(--arm-color); letter-spacing:0.01em; }
.arm-card-body{ position:relative; z-index:1; }
.arm-card-body .arm-tag{ font-size:11px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:var(--arm-color); margin-bottom:10px; }
.arm-card-body p{ font-size:14.5px; color:var(--mint); font-weight:500; line-height:1.7; max-width:480px; }
.arm-card-cta{ position:relative; z-index:1; }
.arm-btn{
  display:inline-flex; align-items:center; gap:8px; padding:13px 24px; border-radius:100px; font-size:13.5px; font-weight:700;
  border:1px solid var(--arm-color); color:var(--arm-color); background:rgba(244,255,250,0.02); transition:background .25s, color .25s;
  white-space:nowrap;
}
.arm-btn:hover{ background:var(--arm-color); color:var(--dark); }
.arm-btn-soon{ opacity:.55; border-style:dashed; cursor:default; }

/* ====== TICKER "ORA, VEM SENHOR" (faixa diagonal em loop) ====== */
.ticker-outer{
  position:relative; width:100%; margin:8px 0; padding:44px 0; overflow:visible; z-index:2;
}
.ticker-band{
  width:120%; margin-left:-10%; background:var(--teal); transform:rotate(-2.5deg); padding:15px 0; overflow:hidden;
  box-shadow:0 10px 48px rgba(48,207,164,0.35), 0 -10px 48px rgba(48,207,164,0.35);
}
.ticker-track{ display:flex; width:max-content; animation:ticker 26s linear infinite; }
.ticker-track span{ font-family:'MosvitaExpanded','Mosvita',sans-serif; font-weight:900; font-size:15px; letter-spacing:0.18em; text-transform:uppercase; color:var(--dark); white-space:nowrap; padding:0 28px; }
.ticker-track .sep{ font-size:16px; opacity:.45; padding:0 4px; }
@keyframes ticker{ from{ transform:translateX(0); } to{ transform:translateX(-25%); } }

/* ====== PAGE HERO (topo com vídeo, pra páginas internas — ex.: Agenda) ====== */
.page-hero{
  position:relative; min-height:56vh; display:flex; align-items:center; justify-content:center;
  overflow:hidden; padding-top:var(--header-h); text-align:center; z-index:1;
}
.page-hero-media{ position:absolute; inset:0; z-index:0; overflow:hidden; background:linear-gradient(180deg, var(--dark3) 0%, var(--dark) 100%); }
.page-hero-video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transition:opacity 1.2s ease;
}
.page-hero-video.is-ready{ opacity:1; }
.page-hero-scrim{
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(7,28,22,0.5) 0%, rgba(7,28,22,0.45) 50%, var(--dark) 100%);
}
.page-hero-content{ position:relative; z-index:2; padding:60px 0; }
.page-hero-tint{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(135deg, var(--arm-color, var(--teal)) 0%, var(--dark3) 75%);
  mix-blend-mode:color; opacity:0.85;
}
.page-hero-scrim-tall{
  background:linear-gradient(180deg, rgba(7,28,22,0.2) 0%, rgba(7,28,22,0.45) 45%, var(--dark) 96%);
}

/* banner de frente (arm-banner) com vídeo de fundo em vez do glow estático */
.arm-banner-video{ overflow:hidden; min-height:88vh; display:flex; align-items:center; }
.arm-banner-video::before{ display:none; }
.arm-banner-video .page-hero-media{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.arm-banner-video .arm-banner-inner{ position:relative; z-index:2; width:100%; }

/* blur progressivo na base do vídeo, pra rosto/corpo na borda não ficar cortado seco */
.page-hero-blur-fade{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.page-hero-blur-fade span{ position:absolute; inset:0; }
.page-hero-blur-fade span:nth-child(1){
  backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
  mask-image:linear-gradient(180deg, transparent 55%, #000 72%, #000 100%);
  -webkit-mask-image:linear-gradient(180deg, transparent 55%, #000 72%, #000 100%);
}
.page-hero-blur-fade span:nth-child(2){
  backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px);
  mask-image:linear-gradient(180deg, transparent 70%, #000 85%, #000 100%);
  -webkit-mask-image:linear-gradient(180deg, transparent 70%, #000 85%, #000 100%);
}
.page-hero-blur-fade span:nth-child(3){
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  mask-image:linear-gradient(180deg, transparent 85%, #000 100%);
  -webkit-mask-image:linear-gradient(180deg, transparent 85%, #000 100%);
}

/* ====== ARM PAGE BANNER (topo das 5 páginas de frente) ====== */
.arm-banner{ position:relative; padding:calc(var(--header-h) + 76px) 0 70px; text-align:center; overflow:hidden; z-index:1; }
.arm-banner::before{
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(ellipse 60% 60% at 50% 0%, var(--arm-color) 0%, transparent 70%); opacity:0.18;
}
.arm-banner-inner{ position:relative; z-index:1; }
.arm-banner .arm-lockup{ justify-content:center; margin-bottom:30px; }
.arm-banner .arm-lockup img{ max-height:64px; width:auto; }
.arm-banner .arm-wordmark-brand{ font-size:22px; }
.arm-banner .arm-wordmark-name{ font-size:26px; }
.arm-banner .arm-wordmark-icon{ width:52px; height:52px; }
.arm-banner .btn-row{ justify-content:center; margin-top:32px; }
.arm-banner-crosslinks{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }

/* ====== GRID DE PRODUTOS/LIVROS PLACEHOLDER (Store, Publishing) ====== */
.product-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:22px; margin-top:48px; }
.product-card{ aspect-ratio:3/4; border-radius:16px; }
.product-grid .ph .ph-ic{ color:var(--arm-color, var(--fg4)); opacity:0.85; }

/* ====== CARROSSEL HORIZONTAL (base compartilhada) ====== */
.hscroll{
  display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; padding:8px 4px 28px;
  scrollbar-width:thin; scrollbar-color:var(--glass-border-strong) transparent;
}
.hscroll::-webkit-scrollbar{ height:6px; }
.hscroll::-webkit-scrollbar-thumb{ background:var(--glass-border-strong); border-radius:10px; }
.hscroll::-webkit-scrollbar-track{ background:transparent; }
.hscroll > *{ scroll-snap-align:start; flex-shrink:0; }

/* ====== DISCOGRAFIA (grid responsivo, sem scroll lateral) ====== */
.discog-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.discog-carousel{ margin-top:48px; display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:28px; }
.album-card{ display:flex; flex-direction:column; gap:14px; }
.album-cover{ width:100%; aspect-ratio:1/1; border-radius:18px; overflow:hidden; position:relative; transition:transform .35s var(--ease), box-shadow .35s var(--ease); }
.album-cover:hover{ transform:scale(1.04); box-shadow:0 20px 44px -12px rgba(0,0,0,0.5); }
.album-title{
  font-family:'Mosvita',sans-serif; font-weight:700; font-size:15px; color:var(--mint); line-height:1.35;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:calc(15px * 1.35 * 2);
}
.album-artist{ font-size:12.5px; color:var(--fg4); }
.album-links{ display:flex; gap:8px; margin-top:2px; }
.platform-link{
  width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--glass-bg); border:1px solid var(--glass-border); color:var(--fg2); transition:color .2s, border-color .2s, background .2s;
}
.platform-link:hover{ color:var(--arm-music); border-color:var(--arm-music); background:rgba(193,238,109,0.1); }

.artist-strip{ margin-top:64px; display:grid; grid-template-columns:180px 1fr; gap:36px; align-items:center; padding:32px; border-left:3px solid var(--arm-color, var(--teal)); }
.artist-photo{ width:180px; height:180px; border-radius:18px; flex-shrink:0; }
.artist-strip h3{ font-family:'Mosvita',sans-serif; font-weight:800; font-size:20px; color:var(--mint); margin-bottom:8px; }
.artist-strip p{ font-size:14px; color:var(--mint); font-weight:500; line-height:1.7; max-width:520px; }

/* ====== LIDERANÇA (sobre.html) ====== */
.leader-photo-wrap{ max-width:832px; margin:0 auto 44px; }
.leader-photo-wrap img{ width:100%; height:auto; display:block; }
.leader-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.leader-card{
  background:var(--surface); border:1px solid var(--surface-border); border-radius:24px;
  padding:32px; border-top:3px solid var(--arm-color, var(--teal));
}
.leader-card h3{ font-family:'Mosvita',sans-serif; font-weight:800; font-size:20px; color:var(--mint); margin-bottom:6px; }
.leader-role{ display:block; font-size:11.5px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--arm-color, var(--teal)); margin-bottom:14px; }
.leader-card p{ font-size:14px; color:var(--mint); font-weight:500; line-height:1.7; margin-bottom:12px; }
.leader-card p:last-child{ margin-bottom:0; }

/* ====== VÍDEOS ====== */
.video-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:48px; }
.video-card{ overflow:hidden; display:flex; flex-direction:column; }
.video-thumb{ aspect-ratio:16/9; position:relative; }
.video-thumb .play-btn{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:54px; height:54px; border-radius:50%;
  background:rgba(244,255,250,0.12); border:1px solid var(--glass-border-strong); backdrop-filter:blur(8px);
  display:flex; align-items:center; justify-content:center; color:var(--mint); transition:background .25s, transform .25s var(--ease);
}
.video-card:hover .play-btn{ background:var(--teal); color:var(--dark); transform:translate(-50%,-50%) scale(1.08); }
.video-info{ padding:18px 20px 22px; }
.video-info h4{ font-family:'Mosvita',sans-serif; font-weight:700; font-size:15px; color:var(--mint); margin-bottom:4px; line-height:1.3; }
.video-info span{ font-size:12px; color:var(--fg4); }
.video-grid-cta{ display:flex; align-items:center; justify-content:center; text-align:center; padding:24px; }
.channel-card-ic{ aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; background:rgba(48,207,164,0.06); transition:background .25s; }
.channel-card-ic svg{ color:var(--teal); }
.channel-card:hover .channel-card-ic{ background:rgba(48,207,164,0.12); }

.stories-carousel{ margin-top:56px; }

/* ── STORIES full-bleed, auto-scroll infinito (mesma técnica do site School) ── */
.stories-full{ width:100vw; margin-left:calc(50% - 50vw); overflow-x:hidden; overflow-y:visible; position:relative; }
.stories-full-track{ display:flex; width:max-content; gap:20px; padding:50px 0; animation:storiesScroll 60s linear infinite; }
.story-tile-full{
  /* JS gera 3 cópias da lista (ver initStoriesCarousel em main.js) — a animação
     precisa andar exatamente 1/3 da largura total (-33.3333%) pra emendar sem
     deixar espaço vazio no reinício do loop. Se o número de cópias mudar lá,
     mude o -33.3333% do @keyframes storiesScroll junto. */
  position:relative; flex-shrink:0; width:230px; aspect-ratio:9/16; border-radius:20px; overflow:hidden;
  display:flex; align-items:flex-end; padding:18px;
}
/* especificidade maior que .ph (que define width/height:100%) para preservar o tamanho fixo do tile */
.story-tile-full.ph{ width:230px; height:auto; }
@keyframes storiesScroll{ from{ transform:translateX(0); } to{ transform:translateX(-33.3333%); } }
@media (max-width:420px){ .story-tile-full{ width:180px; } .story-tile-full.ph{ width:180px; } }

/* Shorts reais (puxados via shorts-latest.php) dentro do tile 9/16 */
.story-tile-full[data-video-id]{
  cursor:pointer; padding:14px; transform-origin:center; will-change:transform;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease);
}
.story-tile-full[data-video-id]::after{
  content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 48%);
}
.story-tile-thumb{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.story-tile-play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) scale(1); width:42px; height:42px; border-radius:50%;
  background:rgba(244,255,250,0.14); border:1px solid var(--glass-border-strong); backdrop-filter:blur(8px);
  display:flex; align-items:center; justify-content:center; color:#fff; transition:background .25s, transform .25s var(--ease); z-index:1;
}
.story-tile-full[data-video-id]:hover .story-tile-play{ background:var(--teal); color:var(--dark); transform:translate(-50%,-50%) scale(1.08); }
.story-tile-caption{
  position:relative; z-index:1; font-size:11.5px; font-weight:600; color:#fff; line-height:1.32;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.story-tile-full.is-hover{ transform:scale(1.4); z-index:5; box-shadow:0 25px 60px -12px rgba(0,0,0,0.65); }
.story-tile-embed{
  position:absolute; inset:0; width:100%; height:100%; border:0; opacity:0; z-index:2; transition:opacity .5s var(--ease);
}
.story-tile-embed.is-ready{ opacity:1; }

/* ====== AGENDA ====== */
.agenda-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:48px; }
.event-card{ padding:32px 28px; display:flex; flex-direction:column; gap:16px; }
.event-date{ display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--arm-color, var(--teal)); }
.event-card h3{ font-family:'Mosvita',sans-serif; font-weight:800; font-size:19px; color:var(--mint); line-height:1.25; }
.event-city{ display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--fg3); }
.event-cover{ width:100%; aspect-ratio:16/10; border-radius:14px; overflow:hidden; margin-bottom:4px; }
.event-cover img{ width:100%; height:100%; object-fit:cover; display:block; }
.event-links{ display:flex; align-items:center; gap:10px; margin-top:6px; }

/* ====== EVENT CARD "FUNZA" (agenda: recorte de ticket, capa grande, data + título) ====== */
.event-card-funza{
  padding:24px; gap:0; text-align:left; align-items:stretch; overflow:visible; position:relative;
  border-radius:26px; display:flex; flex-direction:column;
}
.ev-funza-top{ display:flex; align-items:flex-start; gap:14px; margin-bottom:20px; }
.ev-funza-thumb{ width:72px; height:72px; border-radius:16px; overflow:hidden; flex-shrink:0; }
.ev-funza-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.ev-funza-meta{ flex:1; min-width:0; padding-top:3px; }
.ev-funza-when{
  display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:700; color:var(--arm-color, var(--teal));
}
.ev-funza-meta h3{
  margin-top:8px; font-size:15px; font-weight:700; line-height:1.3;
  display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.ev-funza-event{
  margin-top:3px; font-size:13px; font-weight:500; color:var(--fg3); line-height:1.32;
  display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.ev-funza-divider{
  position:relative; border-top:1.5px dashed var(--glass-border-strong);
  width:calc(100% + 48px); margin:auto -24px 16px;
}
.ev-funza-foot{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; min-height:30px; }
.ev-funza-foot .event-city{ font-size:14px; font-weight:600; color:var(--mint); }
.ev-funza-links{ display:flex; align-items:center; gap:8px; flex-shrink:0; }
.ev-funza-link{
  width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(244,255,250,0.06); color:var(--fg2); border:1px solid var(--glass-border);
  transition:background .2s, color .2s, border-color .2s;
}
.ev-funza-link:hover{ background:var(--arm-color, var(--teal)); color:var(--dark); border-color:var(--arm-color, var(--teal)); }
.event-card .btn{ margin-top:6px; }
.event-card-soon{ align-items:center; text-align:center; opacity:.75; }
.event-card-soon .event-soon-ic{ width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(244,255,250,0.06); color:var(--arm-color, var(--teal)); }
.event-card-soon h3{ color:var(--fg); }
.event-card-soon p{ font-size:13.5px; color:var(--mint); font-weight:500; line-height:1.6; }

/* ====== CONVITE (FORM) ====== */
.invite-panel{ max-width:860px; margin:40px auto 0; padding:clamp(30px,5vw,56px); text-align:left; }
.invite-panel-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:28px; }
.invite-panel-head h2{ font-family:'Mosvita',sans-serif; font-weight:800; font-size:clamp(20px,2.6vw,26px); color:var(--mint); }
.invite-panel-head p{ font-size:13.5px; color:var(--mint); font-weight:500; margin-top:4px; }

/* trilha de progresso: dá "sentido de progresso" às 20 perguntas */
.step-track{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:36px; }
.step-chip{
  display:flex; align-items:center; gap:8px; padding:7px 14px 7px 7px; border-radius:999px;
  border:1px solid var(--glass-border); background:var(--glass-bg);
  font-size:12px; font-weight:700; color:var(--fg3); text-decoration:none;
  transition:border-color .25s, color .25s, background .25s;
}
.step-chip .num{
  width:20px; height:20px; border-radius:50%; background:rgba(244,255,250,0.1); color:var(--fg2);
  display:flex; align-items:center; justify-content:center; font-size:10.5px; flex-shrink:0; transition:background .25s, color .25s;
}
.step-chip.is-active{ border-color:var(--teal); color:var(--mint); background:rgba(48,207,164,0.12); }
.step-chip.is-active .num{ background:var(--teal); color:var(--dark); }

.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field.full{ grid-column:1/-1; }
.field label{ font-size:12.5px; font-weight:700; letter-spacing:0.04em; color:var(--fg2); }
.field .opt{ font-weight:400; color:var(--fg4); text-transform:none; letter-spacing:0; }
.field input, .field select, .field textarea{
  background:rgba(244,255,250,0.045); border:1px solid var(--glass-border-strong); border-radius:12px;
  padding:14px 16px; font-size:14.5px; color:var(--mint); transition:border-color .2s, background .2s, box-shadow .2s; width:100%;
}
.field textarea{ resize:vertical; min-height:110px; }
.field input::placeholder, .field textarea::placeholder{ color:var(--fg4); }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--teal); background:rgba(244,255,250,0.075);
  box-shadow:0 0 0 3px rgba(48,207,164,0.18);
}
.field select{ appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2330CFA4' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:40px; }

.invite-form.was-validated input:invalid,
.invite-form.was-validated select:invalid,
.invite-form.was-validated textarea:invalid{
  border-color:#ff6b6b; background:rgba(255,107,107,0.06);
}
.invite-form.was-validated input:invalid:focus,
.invite-form.was-validated select:invalid:focus,
.invite-form.was-validated textarea:invalid:focus{
  box-shadow:0 0 0 3px rgba(255,107,107,0.2);
}
.invite-form.was-validated .radio-group:has(input:invalid){
  border:1px solid #ff6b6b; border-radius:14px; padding:8px;
}
.invite-form.was-validated .consent-box:has(input:invalid){
  border-color:#ff6b6b; background:rgba(255,107,107,0.06);
}
.step-track.hide{ display:none; }
#inviteLede.hide{ display:none; }
.form-foot{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:28px; }
.form-note{ font-size:12px; color:var(--fg4); max-width:340px; }
.form-section-title{
  grid-column:1/-1; display:flex; align-items:center; gap:10px;
  font-size:12px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--teal); margin:30px 0 -2px; padding-top:22px; border-top:1px solid var(--glass-border); scroll-margin-top:120px;
}
.form-section-title .n{
  width:22px; height:22px; border-radius:50%; background:rgba(48,207,164,0.14); border:1px solid rgba(48,207,164,0.4);
  color:var(--teal); font-size:11px; display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.form-section-title:first-child{ margin-top:0; padding-top:0; border-top:none; }
.radio-legend{ font-size:12.5px; font-weight:700; letter-spacing:0.04em; color:var(--fg2); display:block; margin-bottom:2px; }
.radio-group{ display:flex; flex-wrap:wrap; gap:10px; }
.radio-opt{
  display:flex; align-items:center; gap:8px; padding:10px 16px; border-radius:999px;
  border:1px solid var(--glass-border-strong); background:rgba(244,255,250,0.03);
  font-size:13.5px; color:var(--fg2); cursor:pointer; transition:border-color .2s, color .2s, background .2s;
  white-space:nowrap;
}
.radio-opt input{ accent-color:var(--teal); }
.radio-opt:has(input:checked){ border-color:var(--teal); color:var(--mint); background:rgba(48,207,164,0.12); }

/* consentimento: precisa ler como obrigatório, não como mais uma opção de rádio */
.consent-box{
  display:flex; align-items:flex-start; gap:14px; margin-top:32px; padding:18px 20px;
  border:1px solid rgba(48,207,164,0.4); background:rgba(48,207,164,0.08); border-radius:16px;
}
.consent-box input[type="checkbox"]{
  width:20px; height:20px; margin-top:2px; flex-shrink:0; accent-color:var(--teal); cursor:pointer;
}
.consent-box label{ font-size:14.5px; font-weight:600; color:var(--mint); line-height:1.55; cursor:pointer; }

.form-success{ display:none; text-align:center; padding:20px 0; }
.form-success.show{ display:block; }
.form-success .succ-ic{ width:56px; height:56px; border-radius:50%; background:rgba(48,207,164,0.14); border:1px solid var(--teal); color:var(--teal); display:flex; align-items:center; justify-content:center; margin:0 auto 20px; }
.form-success h3{ font-family:'Mosvita',sans-serif; font-weight:800; font-size:22px; color:var(--mint); margin-bottom:10px; }
.form-success p{ font-size:14.5px; color:var(--mint); font-weight:500; max-width:420px; margin:0 auto; }
.invite-form.hide, .form-success.hide{ display:none; }

/* ====== PLACEHOLDERS (asset ausente) ====== */
.ph{
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  text-align:center; padding:18px; width:100%; height:100%;
  border:1.5px dashed var(--glass-border-strong); border-radius:inherit;
  background:repeating-linear-gradient(135deg, rgba(244,255,250,0.02) 0 12px, rgba(244,255,250,0.035) 12px 24px);
  color:var(--fg4);
}
.ph .ph-ic{ width:30px; height:30px; opacity:0.6; }
.ph .ph-cap{ font-size:10.5px; line-height:1.5; color:var(--fg4); max-width:180px; }
.ph .ph-cap code{ display:block; margin-top:3px; font-family:ui-monospace,'SFMono-Regular',Menlo,monospace; font-size:10px; color:var(--fg3); word-break:break-all; }

/* ====== FOOTER ====== */
footer{ position:relative; z-index:1; border-top:1px solid var(--glass-border); padding:80px 24px 36px; margin-top:60px; }
.footer-grid{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:48px; }
.footer-brand img{ height:34px; width:auto; margin-bottom:18px; }
.footer-tagline{ font-size:16px; font-weight:600; color:var(--mint); line-height:1.6; max-width:300px; margin-bottom:24px; letter-spacing:0.005em; }
.footer-social{ display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--fg2); border:1px solid var(--glass-border-strong); padding:9px 18px; border-radius:100px; transition:color .2s,border-color .2s,background .2s; }
.footer-social:hover{ color:var(--teal); border-color:var(--teal); background:rgba(48,207,164,0.06); }
.footer-col h5{ font-size:11.5px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--fg4); margin-bottom:18px; }
.footer-col ul{ list-style:none; display:flex; flex-direction:column; gap:12px; }
.footer-col a{ font-size:13.5px; color:var(--fg2); transition:color .2s; }
.footer-col a:hover{ color:var(--teal); }
.footer-bottom{ max-width:var(--maxw); margin:56px auto 0; padding-top:28px; border-top:1px solid var(--glass-border); display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.footer-bottom p{ font-size:12px; color:var(--fg4); }

/* ====== REVEAL (scroll motion, estilo Apple) ====== */
.reveal{ opacity:0; transform:translateY(36px) scale(0.98); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal-1{ transition-delay:.06s; }
.reveal-2{ transition-delay:.12s; }
.reveal-3{ transition-delay:.18s; }
.reveal-4{ transition-delay:.24s; }
.reveal-5{ transition-delay:.30s; }

/* ====== RESPONSIVE ====== */
@media (max-width:1080px){
  .about-grid{ grid-template-columns:1fr; gap:48px; }
  .agenda-grid{ grid-template-columns:repeat(2,1fr); }
  .video-grid{ grid-template-columns:repeat(2,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:40px 24px; }
}
@media (max-width:980px){
  .main-nav{ display:none; }
  .hamburger{ display:flex; }
  .arm-card{ grid-template-columns:1fr; text-align:left; gap:20px; padding:32px; }
  .hub-node{ width:82px; }
  .hub-node .node-dot{ width:48px; height:48px; }
}
@media (max-width:760px){
  .section{ padding:88px 0; }
  .pillars{ grid-template-columns:1fr; }
  .agenda-grid{ grid-template-columns:1fr; }
  .video-grid{ grid-template-columns:1fr; }
  .form-grid{ grid-template-columns:1fr; }
  .artist-strip{ grid-template-columns:1fr; text-align:center; justify-items:center; }
  .leader-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  /* hub: layout radial vira coluna empilhada em telas pequenas */
  .hub-diagram{ aspect-ratio:auto; display:flex; flex-direction:column; align-items:center; gap:18px; }
  .hub-lines{ display:none; }
  .hub-center{ position:static; transform:none; width:130px; height:130px; }
  .hub-node{ position:static; transform:none; flex-direction:row; width:auto; gap:14px; text-align:left; }
  .hub-node .label{ text-align:left; }
  .hub-nodes-row{ display:flex; flex-direction:column; gap:16px; width:100%; max-width:280px; }
}
@media (max-width:560px){
  .site-header-inner{ padding:18px; }
  .hero-content{ padding-top:calc(var(--header-h) + 12px); }
  .arm-banner{ padding-top:calc(var(--header-h) + 32px); }
  .discog-head{ flex-direction:column; align-items:flex-start; }
  .footer-grid{ grid-template-columns:1fr; gap:36px; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
}
@media (max-width:420px){
  .wrap{ padding:0 18px; }
  .section{ padding:72px 0; }
  .album-card{ width:200px; }
  .story-tile{ width:150px; }
  .story-tile.ph{ width:150px; }
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important; }
  .reveal{ opacity:1; transform:none; }
  .manifesto-line{ color:var(--mint); }
  html{ scroll-behavior:auto; }
  .bg-glow span{ animation:none !important; }
}
