/* ============================================================
   Era da I.A. — Base CSS
   Design system: navy-black + azul elétrico + cyan
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;0,9..40,900;1,9..40,400&family=Source+Serif+4:ital,opsz,wght@0,8..60,300;0,8..60,400;0,8..60,600;1,8..60,400&display=swap');

/* --- Reset --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { overscroll-behavior: none; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
a { text-decoration: none; color: inherit; }
input, textarea, select { font-family: inherit; }
ul, ol { list-style: none; }

/* --- Design Tokens --- */
:root {
  /* Dark Foundation */
  --negro:      #030B14;
  --carbon:     #0A1628;
  --carbon2:    #0F1E30;

  /* Accent Blue */
  --ouro:       #38BDF8;
  --acento:     #22D3EE;
  --pop:        #67E8F9;

  /* Warm accent */
  --amber:      #FBBF24;

  /* Light (para fundos de leitura) */
  --fundo:      #EEF4FF;
  --fundo-alt:  #F0F9FF;

  /* Text */
  --texto:      #1E293B;
  --texto-soft: #475569;
  --branco:     #FFFFFF;

  /* UI (app dark theme) */
  --bg-base:    var(--negro);
  --bg-card:    var(--carbon);
  --bg-card-2:  var(--carbon2);
  --text-main:  #F1F5F9;
  --text-soft:  #94A3B8;
  --border:     rgba(255,255,255,0.06);
  --border-act: rgba(56,189,248,0.3);

  /* Locked */
  --locked-bg:  #1E293B;
  --locked-txt: #475569;

  /* Spacing */
  --sp-xs: 6px;
  --sp-sm: 10px;
  --sp-md: 16px;
  --sp-lg: 24px;
  --sp-xl: 36px;

  /* Radius */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-full: 999px;

  /* Nav height */
  --nav-h: 64px;
  --header-h: 60px;

  /* Sidebar width (desktop) */
  --sidebar-w: 240px;

  /* Transition */
  --ease: 0.22s cubic-bezier(0.4,0,0.2,1);
}

/* --- Base Body --- */
body {
  font-family: 'DM Sans', sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: var(--text-main);
  background: var(--bg-base);
  min-height: 100dvh;
  -webkit-font-smoothing: antialiased;
}

/* --- Typography --- */
h1 {
  font-family: 'DM Sans', sans-serif;
  font-weight: 900;
  line-height: 1.15;
  color: var(--branco);
}
h2 {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  line-height: 1.2;
  color: var(--branco);
}
h3 {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-soft);
}
p {
  color: var(--text-soft);
  line-height: 1.65;
}

/* Leitura longa */
.prose {
  font-family: 'Source Serif 4', serif;
  font-size: 17px;
  line-height: 1.8;
  color: var(--texto);
}
.prose p { color: var(--texto); margin-bottom: 16px; }
.prose h2 { font-size: 20px; margin: 28px 0 12px; color: var(--texto); }
.prose h3 { font-size: 14px; margin: 20px 0 8px; color: var(--texto-soft); text-transform: none; letter-spacing: 0; }
.prose ul, .prose ol { padding-left: 20px; margin-bottom: 16px; }
.prose li { margin-bottom: 6px; color: var(--texto); font-size: 16px; line-height: 1.65; }
.prose strong { font-family: 'DM Sans', sans-serif; font-weight: 700; color: var(--texto); }

/* Epígrafe / citação */
.epigrafe {
  font-family: 'Source Serif 4', serif;
  font-style: italic;
  font-size: 17px;
  color: var(--texto-soft);
  padding-left: 16px;
  border-left: 2px solid var(--ouro);
  margin: 16px 0;
}

/* --- Scrollbar --- */
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: var(--bg-base); }
::-webkit-scrollbar-thumb { background: var(--carbon2); border-radius: var(--r-full); }

/* --- Focus --- */
:focus-visible { outline: 2px solid var(--acento); outline-offset: 2px; border-radius: 4px; }

/* --- Transitions reduzidas --- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
