  :root{
    --ink-950:#03050B; --ink-900:#05080F; --ink-850:#070B18;
    --navy-800:#091029; --navy-700:#0C1738; --navy-600:#101F4D; --navy-500:#152A66;
    --white:#FFFFFF; --paper:#EEF1F7; --muted:#8E97AD;
    --faint:rgba(255,255,255,.08); --line:rgba(255,255,255,.16); --line-strong:rgba(255,255,255,.28); --stroke:rgba(255,255,255,.14); --veil:rgba(255,255,255,.03);
    --glow:#2F5BFF; --glow-text:#6C8CFF; --glow-soft:rgba(47,91,255,.35); --glow-border:rgba(47,91,255,.55); --glow-tint:rgba(47,91,255,.16);
    --scrim:rgba(3,5,11,.9); --scrim-0:rgba(3,5,11,0); --overlay:rgba(3,5,11,.92);
    --inv-bg:#FFFFFF; --inv-ink:#03050B; --inv-muted:#5B6479; --inv-body:#3A4358;
    --inv-stripe-a:#EEF1F7; --inv-stripe-b:#DDE3EE; --inv-line:rgba(3,5,11,.1); --inv-line-2:rgba(3,5,11,.25); --inv-veil:rgba(255,255,255,.6);
    --wa:#25D366;
    color-scheme: dark light;
  }
  [data-theme="light"]{
    --ink-950:#FFFFFF; --ink-900:#F7F9FC; --ink-850:#F1F4FA;
    --navy-800:#E6EBF5; --navy-700:#D8E0EF; --navy-600:#C7D3E8; --navy-500:#B4C4E0;
    --white:#05080F; --paper:#1B2233; --muted:#5B6478;
    --faint:rgba(5,8,15,.10); --line:rgba(5,8,15,.18); --line-strong:rgba(5,8,15,.30); --stroke:rgba(5,8,15,.16); --veil:rgba(5,8,15,.03);
    --glow:#1D3FD6; --glow-text:#1B39BF; --glow-soft:rgba(29,63,214,.18); --glow-border:rgba(29,63,214,.5); --glow-tint:rgba(29,63,214,.10);
    --scrim:rgba(255,255,255,.92); --scrim-0:rgba(255,255,255,0); --overlay:rgba(247,249,252,.94);
    --inv-bg:#05080F; --inv-ink:#FFFFFF; --inv-muted:#8E97AD; --inv-body:#C3CBDD;
    --inv-stripe-a:#070B18; --inv-stripe-b:#0C1738; --inv-line:rgba(255,255,255,.12); --inv-line-2:rgba(255,255,255,.25); --inv-veil:rgba(3,5,11,.55);
  }
  #topo, [data-topbar].over-hero, header.over-hero { --white:#FFFFFF; --paper:#EEF1F7; --muted:#A7B0C4; --faint:rgba(255,255,255,.10); --line:rgba(255,255,255,.18); --line-strong:rgba(255,255,255,.30); --veil:rgba(255,255,255,.05); --glow-text:#9DB4FF; --glow-border:rgba(120,150,255,.6); --glow-tint:rgba(120,150,255,.18); }
  summary[data-acc-btn] { list-style:none; }
  summary[data-acc-btn]::-webkit-details-marker { display:none; }
  summary[data-acc-btn]::marker { content:""; }
  summary[data-acc-btn]:focus-visible { outline:2px solid var(--glow); outline-offset:4px; }
  [data-acc-mark] { color:transparent; position:relative; transition:none; }
  [data-acc-mark]::before { content:"+"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--muted); transition:color .3s ease; }
  details[data-acc][open] > summary [data-acc-mark]::before { content:"\2212"; color:var(--glow-text); }
  details[data-acc] [data-acc-body] > div { animation:accOpen .45s cubic-bezier(.22,1,.36,1) both; }
  @keyframes accOpen { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
  /* Entrada mobile: o CSS NUNCA esconde nada. O JS arma cada elemento
     individualmente (data-armed) e o revela. Sem JS, observer que não dispara,
     reload no meio da página ou volta pelo histórico: conteúdo visível. */
  @media (max-width:767px){
    [data-mrv][data-armed="1"] { opacity:0; transform:translateY(26px); transition:opacity .75s cubic-bezier(.22,1,.36,1), transform .75s cubic-bezier(.22,1,.36,1); }
    [data-mrv][data-armed="1"][data-mrv="scale"] { transform:translateY(26px) scale(.98); }
    [data-mrv][data-armed="0"] { opacity:1 !important; transform:none !important; }
  }
  @media (prefers-reduced-motion: reduce){
    [data-mrv] { opacity:1 !important; transform:none !important; filter:none !important; }
  }
  /* Sem JS, com JS quebrado ou observer que não dispara: tudo visível. */
  html:not(.js-reveal) [data-rv] { transform:none !important; }
  .theme-transition, .theme-transition * { transition: background-color .5s ease, color .5s ease, border-color .5s ease !important; }
  :focus-visible { outline:2px solid var(--glow); outline-offset:3px; }
  html { scroll-behavior: auto; }
  /* Hierarquia local: fundo fixo (0) < conteúdo (1) < barras (90+). Nenhum
     z-index inflado; cada seção isola o próprio empilhamento. */
  main > section, main > footer { position:relative; z-index:1; isolation:isolate; }
  main > section [aria-hidden="true"], [data-hero-media], [data-hero-scrim], [data-gal3d-mask] { pointer-events:none; }
  body { margin:0; background:var(--ink-950); color:var(--paper); font-family:'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif; font-weight:400; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
  * { box-sizing:border-box; }
  a { color:var(--paper); text-decoration:none; }
  a:hover { color:var(--glow-text); }
  ::selection { background:var(--glow); color:var(--white); }
  @keyframes oceanDrift { 0%{background-position:50% 0%} 50%{background-position:50% 100%} 100%{background-position:50% 0%} }
  @keyframes oceanPulse { 0%{transform:scaleY(0);transform-origin:top} 45%{transform:scaleY(1);transform-origin:top} 55%{transform:scaleY(1);transform-origin:bottom} 100%{transform:scaleY(0);transform-origin:bottom} }
  @media (prefers-reduced-motion: reduce) { *{animation-duration:.001s !important; transition-duration:.001s !important} }
  @media (max-width:1200px){
    #faq > div > div:first-child { grid-column:1 / -1 !important; }
    #faq [data-faq] { grid-column:1 / -1 !important; }
    #estudio h2, #estudio p { grid-column:1 / -1 !important; }
  }
  @media (max-width:992px){
    [data-hgal-wrap] { height:auto !important; }
    [data-hgal-sticky] { position:static !important; height:auto !important; padding-block:clamp(96px,14vh,200px); }
    /* Mobile/tablet: grid pelo formato real do trabalho. 9:16 e 4:5 = 2 por linha,
       16:9 = linha inteira. Sem crop: altura vem do aspect-ratio, vídeo em contain. */
    [data-hgal-track] { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; align-items:start !important; gap:clamp(12px,3vw,20px) !important; transform:none !important; width:100% !important; }
    [data-hgal-track] figure { width:auto !important; grid-column:span 1 !important; align-self:start !important; }
    [data-hgal-track] figure[data-format="horizontal"] { grid-column:1 / -1 !important; }
    [data-hgal-track] [data-media-inner] { height:auto !important; width:100% !important; background:#000 !important; }
    [data-hgal-track] [data-wvideo], [data-hgal-track] [data-wposter], [data-hgal-track] [data-media-inner] > img { object-fit:contain !important; }
    [data-gal3d-wrap] { height:auto !important; }
    [data-gal3d-sticky] { position:static !important; height:auto !important; overflow:clip !important; padding:clamp(96px,14vh,200px) clamp(20px,5vw,80px); }
    [data-gal3d-banner] { width:100% !important; height:auto !important; border-radius:0 !important; border-width:0 !important; display:block !important; }
    [data-gal3d-banner] > [data-gal3d-stage] { position:static !important; perspective:none !important; display:block !important; }
    [data-gal3d-banner] > [data-gal3d-stage] > [data-gal3d-mask] { display:none !important; }
    [data-gal3d-matrix] { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; width:100% !important; height:auto !important; transform:none !important; margin-top:clamp(32px,6vh,64px); }
    [data-gal3d-col] { width:auto !important; min-width:0 !important; transform:none !important; }
    [data-gal3d-col] figure { height:auto !important; aspect-ratio:4/5; }
    [data-gal3d-title] { position:static !important; padding:0 !important; }
    [data-partner] { flex-direction:column !important; align-items:flex-start !important; gap:10px !important; }
    [data-partner] span:last-child { white-space:normal !important; }
  }
  @media (max-width:900px){
    header nav a:not([data-menu-btn]) { display:none !important; }
    [data-menu-btn] { display:inline-flex !important; }
  }
  @media (max-width:900px){
    [data-topbar] [data-wa-label] { display:none !important; }
    [data-topbar] [data-wa-short] { display:inline !important; }
    [data-topbar] a[data-wa] { padding:4px 14px 4px 4px !important; gap:8px !important; }
    [data-topbar] button[data-lang-btn] { padding:6px 10px !important; font-size:.62rem !important; }
    header { padding-top:74px !important; }
  }
  @media (max-width:768px){
    /* o palco 3D vira fluxo normal; nada pode flutuar sobre as próximas seções */
    [data-gal3d-stage], [data-gal3d-matrix], [data-gal3d-col] { position:static !important; transform:none !important; }
    [data-gal3d-banner] { background:none !important; }
    [data-hgal-track] { transform:none !important; }
    #metodo, #parceiros, #servicos, #time, #faq, #contato, #estudio { padding-block: clamp(64px,12vw,96px) !important; }
    [data-hgal-sticky] { padding-block: clamp(64px,12vw,96px) !important; }
    [data-gal3d-sticky] { padding-block: clamp(64px,12vw,96px) !important; }
    #contato { min-height:auto !important; }
    footer { padding-top: clamp(48px,10vw,72px) !important; }
    [data-form] { grid-template-columns:1fr !important; }
    [data-partner-preview] { display:none !important; }
    #metodo h2, #servicos h2, #parceiros h2 { max-width:none !important; }
  }
  /* Player dos trabalhos: poster + play discreto; ao ativar, o vídeo assume o card
     sem alterar largura/altura (absoluto, object-fit:cover). */
  [data-media]:hover [data-wscrim] { opacity:1; }
  [data-media]:hover [data-wplay] { transform:translate(-50%,-50%) scale(1.07); background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.62); }
  [data-wplay]:focus-visible { outline:2px solid var(--glow-border); outline-offset:4px; }
  [data-media-inner][data-wplaying="1"] [data-wplay],
  [data-media-inner][data-wplaying="1"] [data-wscrim],
  [data-media-inner][data-wplaying="1"] [data-wposter] { opacity:0 !important; pointer-events:none; }
  [data-media-inner][data-wplaying="1"] [data-wvideo] { opacity:1 !important; }
  @media (hover:none){
    [data-wplay] { width:42px; height:42px; background:rgba(8,12,24,.38); }
    [data-wscrim] { opacity:.6; }
  }
  /* Parceiros no mobile: ticker vertical de duas colunas (esquerda desce, direita sobe).
     A galeria 3D do desktop fica intocada — apenas oculta abaixo de 768px. */
  @keyframes oceanTickDown { from { transform:translate3d(0,-50%,0); } to { transform:translate3d(0,0,0); } }
  @keyframes oceanTickUp   { from { transform:translate3d(0,0,0); } to { transform:translate3d(0,-50%,0); } }
  @media (max-width:767px){
    [data-gal3d-banner] > [data-gal3d-stage] { display:none !important; }
    [data-gal3d-sticky] { padding-bottom:clamp(20px,5vw,36px) !important; }
    [data-ptick] { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(10px,3vw,16px);
      height:clamp(520px,72vh,760px); overflow:hidden; position:relative; z-index:2;
      margin:0 clamp(20px,5vw,80px) clamp(64px,12vw,96px);
      -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 9%,#000 91%,transparent 100%);
      mask-image:linear-gradient(180deg,transparent 0,#000 9%,#000 91%,transparent 100%); }
    [data-ptick-col] { position:relative; overflow:hidden; }
    [data-ptick-track] { display:flex; flex-direction:column; gap:0; animation-duration:46s; animation-timing-function:linear; animation-iteration-count:infinite; will-change:transform; }
    [data-ptick-track="down"] { animation-name:oceanTickDown; }
    [data-ptick-track="up"] { animation-name:oceanTickUp; }
    [data-ptick][data-paused="1"] [data-ptick-track] { animation-play-state:paused; }
  }
  @media (max-width:767px) and (prefers-reduced-motion: reduce){
    [data-ptick] { height:auto !important; -webkit-mask-image:none !important; mask-image:none !important; }
    [data-ptick-col] { overflow:visible !important; }
    [data-ptick-track] { animation:none !important; transform:none !important; }
    [data-ptick-dup] { display:none !important; }
  }
  @media (max-width:480px){
    [data-service] p, [data-service-body] p { margin-left:0 !important; }
  }
