/* ============================================================
   GLEICA DESIGN SYSTEM v2.0 — DROP-IN UPGRADE  (vanilla)
   ------------------------------------------------------------
   Como usar:
   1. Coloque este arquivo em gleica-portfolio/ ao lado de styles.css
   2. No <head> do index.html, carregue-o DEPOIS do styles.css:
        <link rel="stylesheet" href="styles.css" />
        <link rel="stylesheet" href="gleica-v2.css" />   <-- aqui
   Pronto: as variáveis :root abaixo sobrescrevem as do styles.css
   (mesmos nomes), então TODO o site já existente herda a cara v2
   sem precisar tocar no HTML.

   Tema claro: adicione data-theme="light" no <html>.
   Veja MIGRATION.md para o passo a passo e o mapa v1 -> v2.
   ============================================================ */

:root {
  /* ---- Cores de marca (refinadas na v2) ---- */
  --blue:        #3B82F6;   /* v1 #2F6FE8 -> mais eletrico */
  --blue-deep:   #1E50C8;   /* v1 #1E4BB8 */
  --cyan:        #22D3EE;
  --magenta:     #E879F9;
  --orange:      #FB923C;
  --violet:      #A855F7;   /* NOVO — ponte do gradiente */
  --plasma:      #FF5DA2;   /* NOVO — acento de energia (fecha o aurora) */

  /* ---- Semanticas ---- */
  --success:     #34D399;
  --warning:     #FBBF24;   /* NOVO */
  --danger:      #F87171;   /* NOVO */
  --info:        #38BDF8;   /* NOVO */

  /* ---- Neutros (escala Ink mais profunda e azulada) ---- */
  --bg:          #06080F;   /* v1 #07090D */
  --bg-2:        #090C16;   /* NOVO — entre bg e surface */
  --bg-soft:     #0B0F1A;   /* v1 #0D1117 */
  --panel:       #131A2A;   /* v1 #111822 — card elevado */
  --surface:     #0E1320;   /* NOVO — surface base */
  --surface-2:   #131A2A;   /* NOVO — card */
  --surface-3:   #1A2334;   /* NOVO — popover/overlay */
  --hairline:    rgba(120,140,200,0.10);  /* NOVO — divisor sutil */
  --border:        rgba(120,140,200,0.14);
  --border-strong: rgba(120,140,200,0.30);
  --border-glow:   rgba(34,211,238,0.45); /* NOVO — ring de foco */

  --text:        #EAF0FB;   /* v1 #E6EDF7 */
  --text-2:      #B8C2D6;   /* NOVO — secundário */
  --text-dim:    #97A3B8;   /* v1 #8B97AC — leve clareada */
  --text-mute:   #5A6476;
  --text-faint:  #3A4254;   /* NOVO — placeholder profundo */
  --on-accent:   #06080F;   /* NOVO — texto sobre acentos brilhantes */

  /* ---- Gradientes assinatura ---- */
  --grad-neural: linear-gradient(100deg, #22D3EE 0%, #A855F7 52%, #E879F9 100%);
  --grad-aurora: linear-gradient(120deg, #22D3EE 0%, #3B82F6 30%, #A855F7 62%, #FF5DA2 100%); /* NOVO */

  /* ---- Elevacao: sombra + glow (NOVO na v2) ---- */
  --shadow-1: 0 1px 2px rgba(0,0,0,0.4);
  --shadow-2: 0 4px 16px -4px rgba(0,0,0,0.55);
  --shadow-3: 0 12px 40px -8px rgba(0,0,0,0.6);
  --shadow-4: 0 28px 80px -16px rgba(0,0,0,0.7);
  --glow-cyan:    0 0 0 1px rgba(34,211,238,0.35), 0 8px 40px -6px rgba(34,211,238,0.45);
  --glow-magenta: 0 0 0 1px rgba(232,121,249,0.35), 0 8px 40px -6px rgba(232,121,249,0.42);
  --glow-blue:    0 0 0 1px rgba(59,130,246,0.40), 0 8px 36px -6px rgba(59,130,246,0.5);
  --glow-soft:    0 0 60px -10px rgba(34,211,238,0.25);

  /* ---- Raios ---- */
  --r-xs: 4px; --r-sm: 8px; --r-md: 12px; --r-lg: 18px; --r-xl: 26px; --r-pill: 999px;

  /* ---- Spacing (base 4px) ---- */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px; --s-5: 20px;
  --s-6: 24px; --s-8: 32px; --s-10: 40px; --s-12: 48px; --s-16: 64px;
  --s-20: 80px; --s-24: 96px; --s-32: 128px;

  /* ---- Motion (NOVO na v2) ---- */
  --ease-out:    cubic-bezier(.16,1,.3,1);
  --ease-inout:  cubic-bezier(.65,0,.35,1);
  --ease-spring: cubic-bezier(.34,1.56,.64,1);
  --dur-1: 120ms; --dur-2: 220ms; --dur-3: 360ms; --dur-4: 600ms;
}

/* ============================================================
   TEMA CLARO (NOVO) — ative com <html data-theme="light">
   ============================================================ */
[data-theme="light"] {
  --bg:          #F4F1EA;
  --bg-soft:     #EDE9DF;
  --panel:       #FFFFFF;
  --surface:     #FBFAF6;
  --surface-2:   #FFFFFF;
  --surface-3:   #FFFFFF;
  --hairline:    rgba(20,30,60,0.06);
  --border:        rgba(20,30,60,0.12);
  --border-strong: rgba(20,30,60,0.22);
  --text:        #0E1320;
  --text-dim:    #55617A;
  --text-mute:   #8089A0;
  --blue:        #1E50C8;
  --on-accent:   #FBFAF6;
  --shadow-2: 0 4px 16px -4px rgba(30,40,80,0.12);
  --shadow-3: 0 12px 40px -8px rgba(30,40,80,0.16);
  --shadow-4: 0 28px 80px -16px rgba(30,40,80,0.2);
  --glow-cyan:    0 0 0 1px rgba(34,180,210,0.4), 0 10px 36px -8px rgba(34,180,210,0.35);
  --glow-magenta: 0 0 0 1px rgba(200,90,220,0.4), 0 10px 36px -8px rgba(200,90,220,0.3);
  --glow-blue:    0 0 0 1px rgba(59,130,246,0.45), 0 10px 36px -8px rgba(59,130,246,0.4);
  --glow-soft:    0 0 50px -12px rgba(59,130,246,0.2);
  --bg-2:        #EDE9DF;
  --text-2:      #2A3548;
  --text-faint:  #B4BDD0;
  --border-glow: rgba(59,130,246,0.4);
}
html { transition: background var(--dur-3) var(--ease-out), color var(--dur-3) var(--ease-out); }

/* ============================================================
   REALCES OPCIONAIS NOS COMPONENTES EXISTENTES
   (puramente aditivo — pode remover qualquer bloco)
   ============================================================ */

/* CTA primario ganha glow no hover */
.btn:hover { box-shadow: var(--glow-blue); }

/* CTA assinatura — gradiente aurora animado.
   Use: <a class="btn btn--aurora"> em vez de .btn comum no CTA principal */
.btn--aurora {
  background: var(--grad-aurora);
  background-size: 200% 100%;
  color: var(--on-accent);
  border-radius: var(--r-pill);
  font-weight: 700;
  animation: gl-grad-pan 6s linear infinite alternate;
}
.btn--aurora:hover { box-shadow: var(--glow-magenta); }

/* Cards de servico / cases / eventos com profundidade real no hover */
.service { transition: background var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out); }
.service:hover { box-shadow: var(--glow-cyan); }
.case { transition: background var(--dur-2), box-shadow var(--dur-2); }
.event { transition: border-color var(--dur-2), box-shadow var(--dur-2), transform var(--dur-2) var(--ease-out); }
.event:hover { transform: translateY(-3px); box-shadow: var(--shadow-3); }

/* Faixa de gradiente no topo de qualquer card: <div class="gl-accent-top"> */
.gl-accent-top { position: relative; overflow: hidden; }
.gl-accent-top::before { content:""; position:absolute; top:0; left:0; right:0; height:3px; background: var(--grad-aurora); }

/* Texto com gradiente: <span class="gl-grad-text">…</span> */
.gl-grad-text {
  background: var(--grad-aurora);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
/* (o .hl atual do site tambem pode passar a usar o aurora) */
.hl { background-image: var(--grad-aurora); }

/* ============================================================
   SCROLL REVEAL — pareie com gleica-v2.js
   Marque elementos com data-reveal no HTML.
   ============================================================ */
[data-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .7s var(--ease-out), transform .7s var(--ease-out); }
[data-reveal].is-in { opacity: 1; transform: none; }
[data-reveal][data-d="1"] { transition-delay: .08s; }
[data-reveal][data-d="2"] { transition-delay: .16s; }
[data-reveal][data-d="3"] { transition-delay: .24s; }

/* ============================================================
   BOTAO DE TEMA — opcional, estilize como quiser
   <button class="gl-theme-btn" data-theme-toggle aria-label="Alternar tema">◐</button>
   ============================================================ */
.gl-theme-btn {
  display: inline-grid; place-items: center; width: 38px; height: 38px;
  border-radius: var(--r-pill); border: 1px solid var(--border-strong);
  background: var(--surface-2); color: var(--text); cursor: pointer; font-size: 16px;
  transition: border-color var(--dur-2), background var(--dur-2);
}
.gl-theme-btn:hover { border-color: var(--cyan); }

/* ============================================================
   KEYFRAMES
   ============================================================ */
@keyframes gl-grad-pan  { 0% { background-position: 0% 50% } 100% { background-position: 200% 50% } }
@keyframes gl-float-y   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-10px) } }
@keyframes gl-shimmer   { 0% { background-position: -200% 0 } 100% { background-position: 200% 0 } }
@keyframes gl-reveal-up { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
@keyframes gl-draw-line { to { stroke-dashoffset: 0; } }

/* ============================================================
   HERO GRID OVERLAY — malha atmosférica com máscara radial
   Adicione <div class="gl-hero-grid" aria-hidden="true"></div>
   como primeiro filho dentro do .hero
   ============================================================ */
.gl-hero-grid {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    linear-gradient(var(--hairline) 1px, transparent 1px),
    linear-gradient(90deg, var(--hairline) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse 80% 65% at 50% 42%, black, transparent 80%);
  mask-image: radial-gradient(ellipse 80% 65% at 50% 42%, black, transparent 80%);
}

/* delay extra */
[data-reveal][data-d="4"] { transition-delay: .32s; }

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1 !important; transform: none !important; }
  .btn--aurora { animation: none; }
}

/* ============================================================
   BASE — transições de tema e qualidade global
   ============================================================ */
body {
  transition: background var(--dur-3) var(--ease-out), color var(--dur-3) var(--ease-out);
}
::selection { background: rgba(34, 211, 238, 0.26); }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: var(--border-strong);
  border-radius: 99px;
  border: 3px solid var(--bg);
}
::-webkit-scrollbar-thumb:hover { background: var(--text-mute); }

/* ============================================================
   CHIPS / TAGS — sistema v2 completo
   ============================================================ */
.gl-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.gl-chip {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--font-mono); font-size: 11px;
  padding: 5px 11px; border-radius: var(--r-xs); letter-spacing: 0.03em;
}
.gl-chip--cyan    { background: rgba(34,211,238,0.12);  color: var(--cyan); }
.gl-chip--magenta { background: rgba(232,121,249,0.14); color: var(--magenta); }
.gl-chip--orange  { background: rgba(251,146,60,0.14);  color: var(--orange); }
.gl-chip--blue    { background: rgba(59,130,246,0.14);  color: var(--blue); }
.gl-chip--violet  { background: rgba(168,85,247,0.14);  color: var(--violet); }
.gl-chip--success { background: rgba(52,211,153,0.12);  color: var(--success); }
.gl-chip--outline { border: 1px solid var(--border-strong); color: var(--text-dim); }
.gl-chip--pill    { border-radius: var(--r-pill); }

/* Status pill com ponto pulsante */
.gl-chip-status {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 6px 14px; border-radius: var(--r-pill);
  border: 1px solid rgba(52,211,153,0.35);
  background: rgba(52,211,153,0.07);
  font-family: var(--font-mono); font-size: 12px;
  color: var(--text-dim); letter-spacing: 0.04em;
}
.gl-chip-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 10px var(--success);
  animation: pulse 2.4s ease-in-out infinite;
  flex-shrink: 0;
}

/* ============================================================
   INPUT — foco com glow v2
   ============================================================ */
.gl-input {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  padding: 12px 14px;
  color: var(--text);
  font-size: 15px;
  font-family: var(--font-body);
  outline: none;
  resize: none;
  transition: border-color var(--dur-2), box-shadow var(--dur-2);
  width: 100%;
}
.gl-input::placeholder { color: var(--text-mute); }
.gl-input:focus {
  border-color: var(--cyan);
  box-shadow: 0 0 0 3px rgba(34, 211, 238, 0.16);
}

/* ============================================================
   TEMA CLARO — overrides de componentes com cores hardcoded
   ============================================================ */
[data-theme="light"] .nav { background: rgba(244, 241, 234, 0.88); }
[data-theme="light"] .nav--scrolled {
  background: rgba(244, 241, 234, 0.97) !important;
  box-shadow: 0 1px 0 var(--border), 0 4px 16px rgba(30,40,80,0.06) !important;
}
[data-theme="light"] .nav-dropdown-card {
  background: var(--surface-2);
  border-color: var(--border);
  box-shadow: 0 12px 32px rgba(30,40,80,0.12), 0 2px 6px rgba(30,40,80,0.06);
}
[data-theme="light"] .nav-dropdown-card a { color: var(--text-dim); }
[data-theme="light"] .nav-dropdown-card a:hover {
  background: rgba(30,80,200,0.07);
  color: var(--text);
}
[data-theme="light"] .form input,
[data-theme="light"] .form textarea,
[data-theme="light"] .gl-input {
  background: var(--surface);
  border-color: var(--border);
  color: var(--text);
}
[data-theme="light"] .form input::placeholder,
[data-theme="light"] .form textarea::placeholder,
[data-theme="light"] .gl-input::placeholder { color: var(--text-mute); }
[data-theme="light"] .gl-chip-status {
  border-color: rgba(52,211,153,0.4);
  background: rgba(52,211,153,0.09);
}
[data-theme="light"] .gl-chip--cyan    { background: rgba(34,211,238,0.10); }
[data-theme="light"] .gl-chip--magenta { background: rgba(200,90,220,0.10); }
[data-theme="light"] .gl-chip--orange  { background: rgba(251,146,60,0.10); }
[data-theme="light"] .gl-chip--blue    { background: rgba(30,80,200,0.10); }
[data-theme="light"] ::-webkit-scrollbar-thumb { border-color: var(--bg); }
