/* ============================================================
   O GUIA DO SOBREVIVENTE ARTIFICIAL — retro.css
   Sistema visual compartilhado por todos os livros.
   Cyber-retro: CRTs, scanlines, glow neon, ruído de fita.

   Cada livro define sua própria paleta sobrescrevendo as
   variáveis --gia-accent / --gia-accent-2 / --gia-accent-3
   dentro do <style> do próprio arquivo HTML. As variáveis
   abaixo são os valores padrão (paleta do Livro 01).
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=VT323&family=Kalam:wght@400;700&family=JetBrains+Mono:wght@400;500;700&display=swap');

:root{
  /* base */
  --gia-bg: #0c0616;
  --gia-bg-panel: #170d29;
  --gia-bg-panel-2: #21123b;
  --gia-line: #3c2461;
  --gia-text: #ece6f7;
  --gia-text-dim: #a998c9;
  --gia-text-faint: #6f5b93;

  /* paleta padrão (Livro 01) — sobrescreva por livro */
  --gia-accent: #b366ff;    /* roxo   */
  --gia-accent-2: #f5a623;  /* laranja/âmbar */
  --gia-accent-3: #2ee6d6;  /* ciano  */
  --gia-accent-4: #ff5d8f;  /* magenta/vermelho */
  --gia-warn: #ff5c5c;

  --gia-font-pixel: 'Press Start 2P', 'Courier New', monospace;
  --gia-font-crt: 'VT323', 'Courier New', monospace;
  --gia-font-mono: 'JetBrains Mono', 'Courier New', monospace;
  --gia-font-hand: 'Kalam', 'Comic Sans MS', cursive;
}

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

/* desliga o "scroll anchoring" automático do navegador: qualquer
   elemento que muda de altura durante o scroll (ex: hero que encolhe)
   faz o navegador tentar "compensar" ajustando o scrollY sozinho —
   isso briga com qualquer lógica em JS que decide algo a partir do
   scroll (classList.toggle baseado em scrollY), causando loops de
   estado instável. Setar só no elemento que muda de tamanho não basta:
   o navegador pode escolher outro nó qualquer perto do topo como
   âncora, então precisa ser global. */
html, body{ overflow-anchor:none; }

body.gia-book{
  margin:0;
  background:
    radial-gradient(ellipse at 20% -10%, color-mix(in srgb, var(--gia-accent) 18%, transparent), transparent 55%),
    radial-gradient(ellipse at 90% 0%, color-mix(in srgb, var(--gia-accent-3) 14%, transparent), transparent 50%),
    var(--gia-bg);
  color:var(--gia-text);
  font-family:var(--gia-font-mono);
  min-height:100vh;
  position:relative;
  overflow-x:hidden;
}

/* ---------- textura: scanlines + grain + vinheta ---------- */
.gia-scanlines{
  pointer-events:none;
  position:fixed; inset:0; z-index:50;
  background:repeating-linear-gradient(
    to bottom,
    rgba(0,0,0,0.0) 0px,
    rgba(0,0,0,0.0) 1px,
    rgba(0,0,0,0.18) 2px,
    rgba(0,0,0,0.18) 3px
  );
  mix-blend-mode:multiply;
  animation:gia-flicker 7s infinite;
}
.gia-vignette{
  pointer-events:none;
  position:fixed; inset:0; z-index:49;
  box-shadow: inset 0 0 18vw 2vw rgba(0,0,0,0.75);
}
.gia-grain{
  pointer-events:none;
  position:fixed; inset:0; z-index:48;
  opacity:0.05;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size:180px 180px;
}
@keyframes gia-flicker{
  0%,100%{ opacity:1; }
  92%{ opacity:1; }
  93%{ opacity:0.85; }
  94%{ opacity:1; }
  96%{ opacity:0.9; }
  97%{ opacity:1; }
}

/* ---------- boot overlay ---------- */
.gia-boot{
  position:fixed; inset:0; z-index:100;
  background:#020103;
  color:var(--gia-accent-2);
  font-family:var(--gia-font-crt);
  font-size:1.5rem;
  padding:6vh 6vw;
  display:flex; flex-direction:column; gap:.15em;
  cursor:pointer;
  transition:opacity .5s ease, visibility .5s ease;
}
.gia-boot.gia-hidden{ opacity:0; visibility:hidden; pointer-events:none; }
.gia-boot .gia-boot-line{ opacity:0; animation:gia-boot-in .1s forwards; }
.gia-boot .gia-cursor{
  display:inline-block; width:.6em; height:1.1em; background:var(--gia-accent-2);
  animation:gia-blink 1s steps(1) infinite; vertical-align:text-bottom; margin-left:.2em;
}
@keyframes gia-boot-in{ to{ opacity:1; } }
@keyframes gia-blink{ 50%{ opacity:0; } }
.gia-boot-skip{
  position:absolute; bottom:4vh; right:6vw;
  font-family:var(--gia-font-mono); font-size:.7rem; color:var(--gia-text-faint);
}

/* ---------- chrome / title bar ---------- */
.gia-titlebar{
  position:sticky; top:0; z-index:40;
  display:flex; align-items:center; gap:.75rem;
  background:linear-gradient(180deg, var(--gia-bg-panel-2), var(--gia-bg-panel));
  border-bottom:1px solid var(--gia-line);
  padding:.55rem 1rem;
  font-family:var(--gia-font-mono);
  font-size:.75rem;
  color:var(--gia-text-dim);
  backdrop-filter:blur(2px);
}
.gia-dot{ width:.6rem; height:.6rem; border-radius:999px; display:inline-block; }

/* ---------- CRT monitor decorativo ---------- */
.gia-crt{
  position:relative;
  background:#0a0710;
  border:3px solid #4a3a66;
  border-radius:.6rem;
  box-shadow:
    0 0 0 3px #1a1024,
    0 0 25px -4px var(--gia-accent),
    inset 0 0 30px rgba(0,0,0,.8);
  padding:1rem;
  overflow:hidden;
}
.gia-crt::after{
  content:"";
  position:absolute; inset:0;
  background:repeating-linear-gradient(to bottom, rgba(255,255,255,.04) 0px, transparent 2px, transparent 4px);
  pointer-events:none;
}
.gia-crt-glow{
  text-shadow:0 0 6px currentColor, 0 0 18px currentColor;
  animation: gia-neon-flicker 6s ease-in-out infinite;
}
h1.gia-crt-glow{ animation-duration:9s; }
h2.gia-crt-glow{ animation-duration:7s; animation-delay:-2.4s; }
@keyframes gia-neon-flicker{
  0%, 100%{ opacity:1; text-shadow:0 0 6px currentColor, 0 0 18px currentColor; }
  4%{ opacity:.86; text-shadow:0 0 3px currentColor, 0 0 9px currentColor; }
  6%{ opacity:1; text-shadow:0 0 6px currentColor, 0 0 18px currentColor; }
  47%{ opacity:1; }
  48%{ opacity:.8; text-shadow:0 0 2px currentColor, 0 0 6px currentColor; }
  49%{ opacity:1; text-shadow:0 0 6px currentColor, 0 0 18px currentColor; }
  73%{ opacity:1; }
  74%{ opacity:.9; }
  75%{ opacity:1; }
}
@media (prefers-reduced-motion: reduce){
  .gia-crt-glow{ animation:none; }
}

/* ---------- glitch título ---------- */
.gia-glitch{
  position:relative;
  display:inline-block;
}
.gia-glitch:hover, .gia-glitch.gia-glitch-once{ animation:gia-glitch-anim .25s steps(2) 3; }
@keyframes gia-glitch-anim{
  0%{ text-shadow:2px 0 var(--gia-accent-3), -2px 0 var(--gia-accent-4); transform:translate(0,0); }
  50%{ text-shadow:-2px 0 var(--gia-accent-3), 2px 0 var(--gia-accent-4); transform:translate(1px,-1px); }
  100%{ text-shadow:none; transform:translate(0,0); }
}

/* ---------- efeito de "ligar o CRT" ao sair do boot ---------- */
.gia-power-line{
  position:fixed; left:0; right:0; top:50%; height:2px;
  background:#fff;
  box-shadow:0 0 20px 4px #fff, 0 0 70px 14px var(--gia-accent);
  z-index:95; pointer-events:none;
  transform:translateY(-50%);
  animation: gia-power-on .5s cubic-bezier(.4,0,.2,1) forwards;
}
@keyframes gia-power-on{
  0%{ opacity:1; height:2px; }
  35%{ opacity:1; height:2px; }
  70%{ opacity:1; height:100vh; }
  100%{ opacity:0; height:100vh; }
}
@media (prefers-reduced-motion: reduce){
  .gia-power-line{ display:none; }
}

/* ---------- glitch de troca de canal (mudança de capítulo) ---------- */
.gia-channel-flash{
  position:fixed; inset:0; z-index:90; pointer-events:none; opacity:0;
  background:repeating-linear-gradient(to bottom, rgba(255,255,255,.10) 0px, transparent 1px, transparent 3px);
}
.gia-channel-flash.is-on{ animation: gia-channel-glitch .22s steps(3) 1; }
@keyframes gia-channel-glitch{
  0%{ opacity:.85; transform:translateY(-8px); filter:brightness(2.2) contrast(1.5); }
  45%{ opacity:.35; transform:translateY(5px); filter:brightness(1.4); }
  100%{ opacity:0; transform:translateY(0); filter:none; }
}
@media (prefers-reduced-motion: reduce){
  .gia-channel-flash{ display:none; }
}

/* ---------- reveal-on-scroll (dossiê se revelando) ---------- */
.gia-reveal{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .6s cubic-bezier(.2,.7,.3,1), transform .6s cubic-bezier(.2,.7,.3,1);
  will-change:opacity, transform;
}
.gia-reveal.is-visible{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){
  .gia-reveal{ opacity:1; transform:none; transition:none; }
}

/* ---------- dossier tabs ---------- */
.gia-tab{
  font-family:var(--gia-font-mono);
  font-size:.72rem;
  letter-spacing:.04em;
  color:var(--gia-text-dim);
  background:var(--gia-bg-panel);
  border:1px solid var(--gia-line);
  border-left:3px solid transparent;
  padding:.6rem .8rem;
  text-align:left;
  cursor:pointer;
  transition:color .15s ease, background .15s ease, border-color .15s ease, transform .15s ease, padding-left .15s ease;
  display:flex; align-items:center; gap:.5rem;
}
.gia-tab:hover{ color:var(--gia-text); background:var(--gia-bg-panel-2); padding-left:1.05rem; }
.gia-tab:active{ transform:scale(.97); }
.gia-tab.is-active{
  color:var(--gia-accent-2);
  background:var(--gia-bg-panel-2);
  border-left-color:var(--gia-accent-2);
}
.gia-tab .gia-tab-num{
  font-family:var(--gia-font-pixel);
  font-size:.6rem;
  color:var(--gia-text-faint);
  transition:color .15s ease, text-shadow .15s ease;
}
.gia-tab.is-active .gia-tab-num{ color:var(--gia-accent-2); text-shadow:0 0 8px var(--gia-accent-2); }

body.gia-ready nav .gia-tab{ animation:gia-tab-in .4s cubic-bezier(.2,.7,.3,1) backwards; }
body.gia-ready nav .gia-tab:nth-child(1){ animation-delay:.03s; }
body.gia-ready nav .gia-tab:nth-child(2){ animation-delay:.07s; }
body.gia-ready nav .gia-tab:nth-child(3){ animation-delay:.11s; }
body.gia-ready nav .gia-tab:nth-child(4){ animation-delay:.15s; }
body.gia-ready nav .gia-tab:nth-child(5){ animation-delay:.19s; }
body.gia-ready nav .gia-tab:nth-child(6){ animation-delay:.23s; }
body.gia-ready nav .gia-tab:nth-child(7){ animation-delay:.27s; }
body.gia-ready nav .gia-tab:nth-child(8){ animation-delay:.31s; }
body.gia-ready nav .gia-tab:nth-child(9){ animation-delay:.35s; }
body.gia-ready nav .gia-tab:nth-child(n+10){ animation-delay:.38s; }
@keyframes gia-tab-in{
  from{ opacity:0; transform:translateX(-14px); }
  to{ opacity:1; transform:translateX(0); }
}
@media (prefers-reduced-motion: reduce){
  body.gia-ready nav .gia-tab{ animation:none; }
}

/* ---------- painéis / prosa ---------- */
.gia-panel{ display:none; }
.gia-panel.is-active{ display:block; animation:gia-panel-in .4s ease; }
@keyframes gia-panel-in{
  from{ opacity:0; transform:translateY(6px); filter:blur(2px); }
  to{ opacity:1; transform:translateY(0); filter:blur(0); }
}

.gia-prose p{ line-height:1.75; color:var(--gia-text); margin:0 0 1.1em; }

/* ---------- citação de abertura em destaque ---------- */
.gia-prose p.gia-lede{
  position:relative;
  font-family:var(--gia-font-crt);
  font-size:1.55rem;
  line-height:1.32;
  color:var(--gia-accent-3);
  padding:.2rem 0 .2rem 1.3rem;
  margin:0 0 1.8em;
  border-left:3px solid var(--gia-accent-3);
}
.gia-prose p.gia-lede::before{
  content:"“";
  position:absolute;
  left:.15rem; top:-1.3rem;
  font-family:var(--gia-font-pixel);
  font-size:2.6rem;
  color:var(--gia-accent-3);
  opacity:.35;
  line-height:1;
}

.gia-tag{
  display:inline-block;
  font-family:var(--gia-font-mono);
  font-size:.68rem;
  color:var(--gia-bg);
  background:var(--gia-accent-3);
  padding:.15rem .5rem;
  border-radius:.2rem;
  margin:.15rem .3rem .15rem 0;
}

.gia-note{
  background:repeating-linear-gradient(-3deg, var(--gia-bg-panel), var(--gia-bg-panel) 100%);
  border:1px dashed var(--gia-accent-4);
  border-radius:.3rem;
  padding:1rem 1.1rem;
  font-size:.85rem;
  color:var(--gia-text-dim);
  position:relative;
}
.gia-note::before{
  content:"📌 NOTA DO ARQUIVO";
  display:block;
  font-family:var(--gia-font-pixel);
  font-size:.6rem;
  color:var(--gia-accent-4);
  margin-bottom:.6rem;
  letter-spacing:.05em;
}

/* ---------- stamp (veredito) — bate como um carimbo ao entrar em vista ---------- */
.gia-stamp{
  display:inline-block;
  border:.35rem double var(--gia-warn);
  color:var(--gia-warn);
  font-family:var(--gia-font-pixel);
  font-size:1.1rem;
  padding:.9rem 1.4rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  text-shadow:0 0 10px var(--gia-warn);
  opacity:0;
  transform:rotate(-18deg) scale(2.4);
}
.gia-stamp.is-stamped{
  animation: gia-stamp-slam .55s cubic-bezier(.16,1.8,.4,1) forwards;
}
@keyframes gia-stamp-slam{
  0%{ opacity:0; transform:rotate(-24deg) scale(2.6); }
  55%{ opacity:1; transform:rotate(-3deg) scale(.92); }
  75%{ opacity:.95; transform:rotate(-9deg) scale(1.05); }
  100%{ opacity:.9; transform:rotate(-6deg) scale(1); }
}
@media (prefers-reduced-motion: reduce){
  .gia-stamp{ opacity:.9; transform:rotate(-6deg) scale(1); }
  .gia-stamp.is-stamped{ animation:none; }
}

/* ---------- botões ---------- */
.gia-btn{
  position:relative;
  font-family:var(--gia-font-mono);
  font-size:.8rem;
  letter-spacing:.03em;
  color:var(--gia-accent-2);
  background:transparent;
  border:1px solid var(--gia-accent-2);
  padding:.65rem 1.2rem;
  cursor:pointer;
  transition:background .18s ease, color .18s ease, box-shadow .18s ease, transform .12s ease;
  text-transform:uppercase;
}
.gia-btn:hover{
  background:var(--gia-accent-2);
  color:var(--gia-bg);
  box-shadow:0 0 20px -2px var(--gia-accent-2);
  transform:translateY(-1px);
}
.gia-btn:active{ transform:translateY(0) scale(.96); box-shadow:0 0 8px -2px var(--gia-accent-2); }
.gia-btn:disabled{ opacity:.3; cursor:not-allowed; }
.gia-btn:disabled:hover{ background:transparent; color:var(--gia-accent-2); box-shadow:none; transform:none; }

/* CTA principal da capa: respiração lenta pra chamar o olho */
.gia-panel[data-gia-panel="capa"] .gia-crt .gia-btn:first-child{
  animation: gia-btn-pulse 2.6s ease-in-out infinite;
}
.gia-panel[data-gia-panel="capa"] .gia-crt .gia-btn:first-child:hover{ animation-play-state:paused; }
@keyframes gia-btn-pulse{
  0%, 100%{ box-shadow:0 0 0px 0px transparent; }
  50%{ box-shadow:0 0 22px -4px var(--gia-accent-2); }
}
@media (prefers-reduced-motion: reduce){
  .gia-panel[data-gia-panel="capa"] .gia-crt .gia-btn:first-child{ animation:none; }
}

/* ---------- progress ---------- */
.gia-progress-track{
  height:3px; width:100%;
  background:var(--gia-line);
  overflow:hidden;
}
.gia-progress-fill{
  position:relative;
  height:100%;
  background:linear-gradient(90deg, var(--gia-accent), var(--gia-accent-3));
  box-shadow:0 0 8px var(--gia-accent-3);
  transition:width .5s cubic-bezier(.2,.7,.3,1);
  overflow:hidden;
}
.gia-progress-fill::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.65), transparent);
  width:40%;
  animation: gia-progress-shimmer 2.2s ease-in-out infinite;
}
@keyframes gia-progress-shimmer{
  0%{ transform:translateX(-120%); }
  100%{ transform:translateX(340%); }
}
@media (prefers-reduced-motion: reduce){
  .gia-progress-fill::after{ display:none; }
}

/* ---------- transição de abrir o livro (estante → dossiê) ---------- */
.gia-page-transition{
  position:fixed; inset:0; z-index:300;
  pointer-events:none;
}
.gia-pt-cover{
  position:fixed; top:0; left:0; z-index:301;
  width:100vw; height:100vh;
  object-fit:cover;
  border-radius:.35rem;
  box-shadow:0 30px 90px -20px rgba(0,0,0,.85);
  transform-origin:0 0;
  will-change:transform;
  transition:
    transform .55s cubic-bezier(.3,.6,.25,1),
    border-radius .55s ease;
}
.gia-pt-rosto{
  position:fixed; inset:0; z-index:302;
  width:100%; height:100%; object-fit:cover;
  opacity:0; transform:scale(1.045);
  transition:opacity .45s ease, transform .55s cubic-bezier(.2,.7,.3,1);
}
.gia-pt-rosto.is-in{ opacity:1; transform:scale(1); }
.gia-pt-fade{
  position:fixed; inset:0; z-index:303;
  background:#020103; opacity:0;
  transition:opacity .35s ease;
}
.gia-pt-fade.is-in{ opacity:1; }

/* ---------- scrollbar ---------- */
.gia-book ::-webkit-scrollbar{ width:10px; }
.gia-book ::-webkit-scrollbar-track{ background:var(--gia-bg-panel); }
.gia-book ::-webkit-scrollbar-thumb{ background:var(--gia-line); border-radius:6px; }

/* ---------- regra de sobrevivência: post-it colado no dossiê ---------- */
.gia-postit-wrap{
  display:flex;
  justify-content:center;
  margin:2.4rem 0;
}
.gia-postit{
  --postit-rot: -2deg;
  position:relative;
  max-width:26rem;
  width:100%;
  background:linear-gradient(180deg, #fdf3ad, #f6e37f);
  color:#3a2f14;
  padding:1.5rem 1.4rem 1.3rem;
  border-radius:2px;
  box-shadow:0 14px 26px -10px rgba(0,0,0,.6), 0 1px 0 rgba(255,255,255,.4) inset;
  transform:rotate(var(--postit-rot)) translateY(-40px) scale(.9);
  opacity:0;
}
.gia-postit::before{
  content:"";
  position:absolute; top:-15px; left:50%;
  width:4.6rem; height:1.6rem;
  background:rgba(230,230,225,.65);
  border:1px solid rgba(255,255,255,.5);
  transform:translateX(-50%) rotate(-4deg);
  box-shadow:0 3px 6px rgba(0,0,0,.2);
}
.gia-postit-label{
  display:flex; align-items:center; gap:.4rem;
  font-family:var(--gia-font-pixel);
  font-size:.55rem;
  color:#8a6a16;
  letter-spacing:.04em;
  margin-bottom:.7rem;
}
.gia-postit p{
  margin:0;
  font-family:var(--gia-font-hand);
  font-weight:700;
  font-size:1.28rem;
  line-height:1.4;
  color:#3a2f14;
}
.gia-postit.is-pinned{
  animation: gia-postit-drop .55s cubic-bezier(.22,1.6,.4,1) forwards;
}
@keyframes gia-postit-drop{
  0%{ opacity:0; transform:rotate(calc(var(--postit-rot) - 10deg)) translateY(-55px) scale(.85); }
  65%{ opacity:1; transform:rotate(calc(var(--postit-rot) + 1.5deg)) translateY(6px) scale(1.04); }
  100%{ opacity:1; transform:rotate(var(--postit-rot)) translateY(0) scale(1); }
}
.gia-panel:nth-of-type(even) .gia-postit{ --postit-rot: 2.2deg; }
@media (prefers-reduced-motion: reduce){
  .gia-postit{ opacity:1; transform:rotate(var(--postit-rot)); }
  .gia-postit.is-pinned{ animation:none; }
}

/* ---------- tags-recap (pistas/palavras-chave do capítulo) ---------- */
.gia-tags-label{
  font-family:var(--gia-font-pixel);
  font-size:.58rem;
  color:var(--gia-text-faint);
  letter-spacing:.05em;
  margin:1.8rem 0 .7rem;
}

/* ---------- teaser (próximo capítulo / encerramento) ---------- */
.gia-teaser{
  margin:1.5rem 0 2rem;
  padding:1rem 1.2rem;
  border:1px solid var(--gia-accent-3);
  border-radius:.2rem;
  background:color-mix(in srgb, var(--gia-accent-3) 6%, var(--gia-bg-panel));
}
.gia-teaser p{
  margin:0 0 .4rem;
  font-size:.85rem;
  color:var(--gia-accent-3);
  line-height:1.55;
}
.gia-teaser p:last-child{ margin-bottom:0; }

/* ---------- listas dentro da prosa ---------- */
.gia-prose ul.gia-list, .gia-prose ol.gia-list{
  margin:0 0 1.3em;
  padding-left:1.3em;
  color:var(--gia-text);
  line-height:1.75;
}
.gia-prose ul.gia-list li, .gia-prose ol.gia-list li{ margin-bottom:.35em; }
.gia-prose ul.gia-list li::marker, .gia-prose ol.gia-list li::marker{ color:var(--gia-accent-3); font-weight:700; }

/* ---------- subtítulos dentro da prosa ---------- */
.gia-prose h3{
  display:flex; align-items:center; gap:.5rem;
  font-family:var(--gia-font-mono);
  font-weight:700;
  font-size:1.02rem;
  color:var(--gia-accent-3);
  margin:2em 0 .7em;
  letter-spacing:.01em;
  padding-top:1.4em;
  border-top:1px dashed var(--gia-line);
}
.gia-prose h3::before{
  content:"▍";
  color:var(--gia-accent-2);
  font-size:.85em;
}
.gia-prose h3:first-child{ margin-top:0; padding-top:0; border-top:none; }

/* ---------- pipeline (diagrama de fluxo) ---------- */
.gia-pipeline{
  display:flex; flex-direction:column; align-items:flex-start;
  gap:.15rem;
  margin:1.5rem 0;
  font-family:var(--gia-font-mono);
  font-size:.82rem;
}
.gia-pipeline .gia-pipe-step{
  background:var(--gia-bg-panel);
  border:1px solid var(--gia-line);
  color:var(--gia-accent-2);
  padding:.35rem .75rem;
  border-radius:.25rem;
}
.gia-pipeline .gia-pipe-arrow{ color:var(--gia-accent-3); padding-left:1rem; }

/* ---------- painel do capítulo: cabeçalho de versão ---------- */
.gia-chapter-kicker{
  font-family:var(--gia-font-pixel);
  font-size:.6rem;
  color:var(--gia-accent-2);
  letter-spacing:.05em;
  margin-bottom:.5rem;
}

/* ---------- botão flutuante de efeitos sonoros ---------- */
.gia-sfx-toggle{
  position:fixed;
  right:1rem; bottom:1rem;
  z-index:120;
  width:2.4rem; height:2.4rem;
  display:flex; align-items:center; justify-content:center;
  font-size:1rem;
  background:var(--gia-bg-panel);
  border:1px solid var(--gia-line);
  border-radius:999px;
  color:var(--gia-text);
  cursor:pointer;
  box-shadow:0 6px 18px -8px rgba(0,0,0,.7);
  transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.gia-sfx-toggle:hover{
  transform:translateY(-2px) scale(1.06);
  border-color:var(--gia-accent-2);
  box-shadow:0 0 16px -2px var(--gia-accent-2);
}
.gia-sfx-toggle:active{ transform:scale(.94); }

/* ---------- rádio pirata: widget expansível ---------- */
.gia-radio-fab{
  position:fixed;
  left:1rem; bottom:1rem;
  z-index:120;
  width:2.6rem; height:2.6rem;
  display:flex; align-items:center; justify-content:center;
  font-size:1.15rem;
  background:var(--gia-bg-panel);
  border:1px solid var(--gia-line);
  border-radius:999px;
  color:var(--gia-text);
  cursor:pointer;
  box-shadow:0 6px 18px -8px rgba(0,0,0,.7);
  transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.gia-radio-fab:hover{ transform:translateY(-2px) scale(1.06); border-color:var(--gia-accent-3); box-shadow:0 0 16px -2px var(--gia-accent-3); }
.gia-radio-fab:active{ transform:scale(.94); }
.gia-radio-fab.is-playing{
  border-color:var(--gia-accent-3);
  box-shadow:0 0 0 0 color-mix(in srgb, var(--gia-accent-3) 60%, transparent);
  animation:gia-radio-fab-pulse 1.8s ease-out infinite;
}
@keyframes gia-radio-fab-pulse{
  0%{ box-shadow:0 0 0 0 color-mix(in srgb, var(--gia-accent-3) 55%, transparent); }
  70%{ box-shadow:0 0 0 10px transparent; }
  100%{ box-shadow:0 0 0 0 transparent; }
}
@media (prefers-reduced-motion: reduce){
  .gia-radio-fab.is-playing{ animation:none; }
}

/* widget expansível (substitui o modal) */
.gia-radio-widget{
  position:fixed;
  left:1rem; bottom:1rem;
  z-index:121;
  width:16rem;
  background:#0a0710;
  border:2px solid #4a3a66;
  border-radius:.6rem;
  box-shadow:0 0 0 2px #1a1024, 0 8px 30px -6px rgba(0,0,0,.8), inset 0 0 20px rgba(0,0,0,.8);
  padding:.9rem .9rem .8rem;
  text-align:center;
  transform:scale(.85) translateY(20px);
  opacity:0; visibility:hidden;
  pointer-events:none;
  transition:transform .25s cubic-bezier(.2,.7,.3,1), opacity .2s ease, visibility .2s ease;
}
.gia-radio-widget.is-open{
  transform:scale(1) translateY(0);
  opacity:1; visibility:visible; pointer-events:auto;
}
.gia-radio-widget.is-playing{
  border-color:color-mix(in srgb, var(--gia-accent-3) 50%, #4a3a66);
  box-shadow:0 0 0 2px #1a1024, 0 8px 30px -6px rgba(0,0,0,.8), 0 0 20px -4px var(--gia-accent-3), inset 0 0 20px rgba(0,0,0,.8);
}
@media (prefers-reduced-motion: reduce){
  .gia-radio-widget{ transition:opacity .15s ease, visibility .15s ease; transform:none; }
}

.gia-radio-close{
  position:absolute; top:.4rem; right:.5rem;
  width:1.6rem; height:1.6rem;
  border:none; background:transparent;
  color:var(--gia-text-faint);
  font-size:1.1rem; line-height:1;
  cursor:pointer;
}
.gia-radio-close:hover{ color:var(--gia-accent-4); }

.gia-radio-kicker{
  font-family:var(--gia-font-pixel);
  font-size:.5rem; letter-spacing:.06em;
  color:var(--gia-accent-2);
  margin:0 0 .7rem;
}

.gia-radio-cover{
  position:relative;
  width:6rem; height:6rem;
  margin:0 auto .7rem;
  border-radius:.3rem;
  overflow:hidden;
  background:#000;
  border:2px solid var(--gia-line);
  display:flex; align-items:center; justify-content:center;
  box-shadow:inset 0 0 14px rgba(0,0,0,.85);
}
.gia-radio-cover::after{
  content:"";
  position:absolute; inset:0;
  background:repeating-linear-gradient(to bottom, rgba(255,255,255,.05) 0px, transparent 2px, transparent 4px);
  pointer-events:none;
}
.gia-radio-cover-ph{ font-size:1.6rem; opacity:.5; }
.gia-radio-cover-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gia-radio-widget.is-playing .gia-radio-cover{ border-color:var(--gia-accent-3); box-shadow:inset 0 0 14px rgba(0,0,0,.85), 0 0 12px -3px var(--gia-accent-3); }

.gia-radio-title{
  font-family:var(--gia-font-crt);
  font-size:1.05rem; line-height:1.2;
  color:var(--gia-text);
  margin:0 0 .2rem;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.gia-radio-status{
  font-family:var(--gia-font-mono); font-size:.62rem;
  color:var(--gia-text-faint);
  margin:0 0 .7rem;
}
.gia-radio-hint{
  font-size:.62rem; line-height:1.5; color:var(--gia-text-dim);
  background:var(--gia-bg-panel); border:1px dashed var(--gia-accent-4);
  border-radius:.25rem; padding:.5rem .6rem; margin:-.2rem 0 .7rem; text-align:left;
}
.gia-radio-hint code{
  font-family:var(--gia-font-mono); color:var(--gia-accent-3);
  background:rgba(0,0,0,.35); padding:.05rem .3rem; border-radius:.2rem;
}

.gia-radio-controls{
  display:flex; align-items:center; justify-content:center; gap:.5rem;
  margin-bottom:.8rem;
}
.gia-radio-controls .gia-radio-btn{
  font-size:.95rem; line-height:1;
  width:2rem; height:2rem;
  display:flex; align-items:center; justify-content:center;
  background:var(--gia-bg-panel); border:1px solid var(--gia-line);
  color:var(--gia-text); border-radius:.25rem; cursor:pointer;
  transition:border-color .15s ease, color .15s ease, box-shadow .15s ease, transform .1s ease;
}
.gia-radio-controls .gia-radio-btn:hover{ border-color:var(--gia-accent-2); color:var(--gia-accent-2); box-shadow:0 0 10px -3px var(--gia-accent-2); }
.gia-radio-controls .gia-radio-btn:active{ transform:scale(.94); }
.gia-radio-controls .gia-radio-btn:disabled{ opacity:.3; cursor:not-allowed; }
.gia-radio-controls .gia-radio-btn-main{ width:2.6rem; height:2.6rem; font-size:1.15rem; color:var(--gia-accent-2); border-color:var(--gia-accent-2); }

.gia-radio-source{
  font-size:.58rem; color:var(--gia-text-faint);
  border-top:1px dashed var(--gia-line);
  padding-top:.6rem; margin:0;
}
.gia-radio-source a{ color:var(--gia-accent-3); text-decoration:underline; }

.gia-radio-player-host{
  position:absolute; width:1px; height:1px;
  overflow:hidden; opacity:0; pointer-events:none;
}

@media (max-width:768px){
  .gia-stamp{ font-size:.85rem; }
}

/* ============================================================
   EMBASAMENTO — citação/evidência, comparação, estatística,
   glossário e referências bibliográficas.
   ============================================================ */

/* ---------- citação / evidência (fonte real embutida no texto) ---------- */
.gia-citation{
  margin:1.7rem 0;
  padding:1.1rem 1.3rem;
  border:1px solid var(--gia-line);
  border-left:4px solid var(--gia-accent-3);
  background:var(--gia-bg-panel);
  border-radius:.2rem;
}
.gia-citation-label{
  display:flex; align-items:center; gap:.4rem;
  font-family:var(--gia-font-pixel);
  font-size:.55rem;
  color:var(--gia-accent-3);
  letter-spacing:.05em;
  margin-bottom:.7rem;
}
.gia-citation blockquote{
  margin:0 0 .7rem;
  font-style:italic;
  color:var(--gia-text);
  font-size:.95rem;
  line-height:1.65;
}
.gia-citation-source{
  font-family:var(--gia-font-mono);
  font-size:.76rem;
  color:var(--gia-text-dim);
}
.gia-citation-source a{ color:var(--gia-accent-2); text-decoration:underline; text-underline-offset:2px; }
.gia-citation-source a:hover{ color:var(--gia-accent-3); }

/* ---------- comparação lado a lado ---------- */
.gia-compare{
  display:grid; grid-template-columns:1fr;
  margin:1.7rem 0;
  border:1px solid var(--gia-line);
  border-radius:.3rem;
  overflow:hidden;
}
@media (min-width:640px){ .gia-compare{ grid-template-columns:1fr 1fr; } }
.gia-compare-col{ padding:1.1rem 1.2rem; }
.gia-compare-col.is-a{ border-bottom:1px dashed var(--gia-line); }
@media (min-width:640px){
  .gia-compare-col.is-a{ border-bottom:none; border-right:1px dashed var(--gia-line); }
}
.gia-compare-label{
  font-family:var(--gia-font-pixel);
  font-size:.55rem; letter-spacing:.05em; margin-bottom:.7rem;
}
.gia-compare-col.is-a .gia-compare-label{ color:var(--gia-accent-3); }
.gia-compare-col.is-b .gia-compare-label{ color:var(--gia-accent-4); }
.gia-compare-col p{ font-size:.85rem; color:var(--gia-text-dim); margin:0; line-height:1.6; }

/* ---------- estatística em destaque ---------- */
.gia-stat{
  display:inline-block;
  margin:.3rem 1rem 1.2rem 0;
  padding:1rem 1.4rem;
  border:1px solid var(--gia-line);
  border-radius:.3rem;
  background:var(--gia-bg-panel);
  text-align:center;
}
.gia-stat-num{
  font-family:var(--gia-font-crt);
  font-size:2.5rem; line-height:1;
  color:var(--gia-accent);
  text-shadow:0 0 10px currentColor;
}
.gia-stat-label{ font-size:.7rem; color:var(--gia-text-dim); margin-top:.4rem; max-width:12rem; }

/* ---------- glossário ---------- */
.gia-glossary{ display:grid; grid-template-columns:1fr; gap:.9rem; }
@media (min-width:768px){ .gia-glossary{ grid-template-columns:1fr 1fr; } }
.gia-gloss-item{
  padding:.9rem 1.05rem;
  border:1px solid var(--gia-line);
  border-radius:.25rem;
  background:var(--gia-bg-panel);
}
.gia-gloss-term{
  font-family:var(--gia-font-mono); font-weight:700;
  color:var(--gia-accent-2); font-size:.92rem; margin-bottom:.35rem;
}
.gia-gloss-def{ font-size:.83rem; color:var(--gia-text-dim); line-height:1.6; }

/* ---------- referências bibliográficas ---------- */
.gia-biblio{ display:flex; flex-direction:column; }
.gia-biblio-item{
  counter-increment:biblio;
  padding:.9rem 0;
  border-bottom:1px dashed var(--gia-line);
  font-size:.86rem;
  color:var(--gia-text);
  display:flex; gap:.8rem; align-items:baseline;
}
.gia-biblio-item:first-child{ padding-top:0; }
.gia-biblio-num{ color:var(--gia-accent-2); font-family:var(--gia-font-mono); flex-shrink:0; }
.gia-biblio-item a{ color:var(--gia-accent-3); text-decoration:underline; text-underline-offset:2px; }
.gia-biblio-item a:hover{ color:var(--gia-accent-2); }
.gia-biblio-tag{
  display:inline-block; font-size:.62rem; padding:.1rem .45rem; margin-left:.4rem;
  border:1px solid var(--gia-line); border-radius:999px; color:var(--gia-text-faint);
  vertical-align:middle;
}

/* ---------- capa real do livro (dentro do dossiê) ---------- */
.gia-capa-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:1.75rem;
  align-items:start;
  margin-bottom:2rem;
}
@media (min-width:768px){
  .gia-capa-grid{ grid-template-columns:min(15rem, 34%) 1fr; }
}
.gia-cover-frame{
  position:relative;
  max-width:15rem;
  margin:0 auto;
  border-radius:.5rem;
  overflow:hidden;
  border:1px solid var(--gia-line);
  box-shadow:0 24px 50px -18px rgba(0,0,0,.85), 0 0 46px -12px var(--gia-accent);
  transition:transform .3s ease, box-shadow .3s ease;
}
@media (min-width:768px){ .gia-cover-frame{ max-width:none; } }
.gia-cover-frame:hover{
  transform:translateY(-4px) scale(1.015);
  box-shadow:0 30px 60px -16px rgba(0,0,0,.9), 0 0 60px -8px var(--gia-accent);
}
.gia-cover-img{
  display:block; width:100%; height:auto;
  aspect-ratio:5/7; object-fit:cover;
}
.gia-cover-frame::after{
  content:"";
  position:absolute; inset:0;
  background:repeating-linear-gradient(to bottom, rgba(255,255,255,.035) 0px, transparent 2px, transparent 4px);
  pointer-events:none;
}

/* ============================================================
   TEXT INTERACTIVITY
   ============================================================ */

/* ---------- palavras-chave com tooltip ---------- */
.gia-term{
  border-bottom:1px dotted var(--gia-accent-3);
  cursor:help;
  transition:color .12s ease, background .12s ease, text-shadow .12s ease;
  padding:0 1px;
}
.gia-term:hover{
  color:var(--gia-accent-3);
  background:color-mix(in srgb, var(--gia-accent-3) 12%, transparent);
  text-shadow:0 0 8px color-mix(in srgb, var(--gia-accent-3) 50%, transparent);
  border-bottom-style:solid;
}

/* tooltip flutuante */
.gia-tooltip{
  position:fixed; z-index:500;
  max-width:320px;
  background:var(--gia-bg-panel-2);
  border:1px solid var(--gia-accent-3);
  border-radius:.3rem;
  box-shadow:0 8px 24px -6px rgba(0,0,0,.7), 0 0 14px -4px var(--gia-accent-3);
  padding:.8rem 1rem;
  font-family:var(--gia-font-mono);
  font-size:.78rem;
  line-height:1.5;
  color:var(--gia-text);
  opacity:0;
  pointer-events:none;
  transition:opacity .15s ease;
  backdrop-filter:blur(4px);
}
.gia-tooltip.is-visible{ opacity:1; }

/* ---------- highlight de parágrafos ---------- */
.gia-prose p.gia-highlight{
  position:relative;
  background:color-mix(in srgb, var(--gia-accent-2) 10%, transparent);
  border-left:3px solid var(--gia-accent-2);
  padding-left:.8rem;
  margin-left:-.8rem;
  border-radius:0 .2rem .2rem 0;
  transition:background .2s ease, border-color .2s ease;
  cursor:pointer;
}
.gia-prose p.gia-highlight::after{
  content:"📌";
  position:absolute; right:.4rem; top:0;
  font-size:.7rem; opacity:.5;
  transition:opacity .15s ease;
}
.gia-prose p.gia-highlight:hover::after{ opacity:1; }
.gia-prose p:not(.gia-lede):not(.gia-tags-label):not(.gia-highlight){
  cursor:pointer;
  border-left:3px solid transparent;
  padding-left:.8rem;
  margin-left:-.8rem;
  border-radius:0 .2rem .2rem 0;
  transition:border-color .15s ease, background .15s ease;
}
.gia-prose p:not(.gia-lede):not(.gia-tags-label):not(.gia-highlight):hover{
  border-left-color:color-mix(in srgb, var(--gia-accent-2) 30%, transparent);
  background:color-mix(in srgb, var(--gia-accent-2) 3%, transparent);
}

/* ---------- barra de progresso de leitura ---------- */
.gia-read-progress{
  position:fixed; right:.8rem; top:50%; transform:translateY(-50%);
  z-index:60;
  width:5px; height:40vh;
  background:var(--gia-bg-panel);
  border:1px solid var(--gia-line);
  border-radius:3px;
  overflow:hidden;
}
.gia-read-progress-fill{
  width:100%; height:0%;
  background:linear-gradient(to top, var(--gia-accent), var(--gia-accent-3));
  box-shadow:0 0 8px var(--gia-accent-3);
  transition:height .15s ease;
  border-radius:3px;
}
.gia-read-progress-label{
  position:absolute; right:12px; top:0; transform:translateY(-50%);
  font-family:var(--gia-font-mono);
  font-size:.6rem;
  color:var(--gia-text-faint);
  white-space:nowrap;
  opacity:0;
  transition:opacity .2s ease;
  pointer-events:none;
}
.gia-read-progress:hover .gia-read-progress-label{ opacity:1; }

/* ---------- citações expansíveis ---------- */
.gia-citation{
  position:relative;
  border-left:3px solid var(--gia-accent-3);
  padding:.8rem 1rem;
  margin:1.4rem 0;
  background:color-mix(in srgb, var(--gia-accent-3) 5%, var(--gia-bg-panel));
  border-radius:0 .3rem .3rem 0;
  transition:background .2s ease, border-color .2s ease;
}
.gia-citation:hover{
  border-left-color:var(--gia-accent);
  background:color-mix(in srgb, var(--gia-accent) 8%, var(--gia-bg-panel));
}
.gia-citation-collapse .gia-citation-source,
.gia-citation-collapse blockquote,
.gia-citation-collapse p:not(.gia-citation-label){
  max-height:0;
  overflow:hidden;
  opacity:0;
  margin:0;
  padding:0;
  transition:max-height .35s ease, opacity .25s ease;
}
.gia-citation .gia-citation-source,
.gia-citation blockquote,
.gia-citation p:not(.gia-citation-label){
  max-height:500px;
  opacity:1;
  transition:max-height .35s ease, opacity .25s ease;
}
.gia-citation-toggle{
  display:inline-block;
  margin-left:.5rem;
  font-family:var(--gia-font-mono);
  font-size:.72rem;
  color:var(--gia-accent-2);
  background:transparent;
  border:1px solid var(--gia-accent-2);
  border-radius:.15rem;
  padding:.15rem .5rem;
  cursor:pointer;
  transition:background .15s ease, color .15s ease;
}
.gia-citation-toggle:hover{
  background:var(--gia-accent-2);
  color:var(--gia-bg);
}

@media (max-width:768px){
  .gia-read-progress{ display:none; }

  /* rádio pirata: botão maior pra facilitar o toque no mobile */
  .gia-radio-fab{ width:3.2rem; height:3.2rem; font-size:1.4rem; }
  .gia-radio-controls .gia-radio-btn{ width:2.6rem; height:2.6rem; font-size:1.15rem; }
  .gia-radio-controls .gia-radio-btn-main{ width:3.2rem; height:3.2rem; font-size:1.4rem; }
}
