/* ===== Motor genérico de PÁGINA DE CASO (case-story) — temável via --accent ===== */
:root{
  --ink:#eaf0fb; --ink2:#aeb9d2; --ink3:#6f7b97;
  --bg:#06080f; --bg2:#0a0f1c; --panel:#0e1424; --line:#1f2a44; --line2:#2a3a5e;
  --green:#3ff0b2; --accent:#ffce5a; --accent-rgb:255,206,90;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0; color:var(--ink); font-family:Inter,system-ui,sans-serif; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;
  background:radial-gradient(1100px 640px at 72% -8%, rgba(var(--accent-rgb),.10) 0%, transparent 60%), radial-gradient(900px 600px at 10% 6%, #0d1830 0%, transparent 55%), var(--bg);}
h1,h2,h3{font-family:'Space Grotesk',sans-serif; line-height:1.1; margin:0}
a{color:inherit}
img{max-width:100%}
#stars{position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.5;
  background-image:radial-gradient(1.4px 1.4px at 20% 30%,#fff7 40%,transparent),radial-gradient(1.2px 1.2px at 70% 20%,#fff6 40%,transparent),radial-gradient(1px 1px at 40% 70%,#fff5 40%,transparent),radial-gradient(1.3px 1.3px at 85% 60%,#fff6 40%,transparent),radial-gradient(1px 1px at 55% 45%,#fff4 40%,transparent),radial-gradient(1.1px 1.1px at 12% 80%,#fff5 40%,transparent);
  animation:twinkle 6s ease-in-out infinite alternate}
@keyframes twinkle{from{opacity:.35}to{opacity:.6}}
.back-link{position:fixed; top:16px; left:18px; z-index:30; font-size:13px; font-weight:600; color:var(--ink2);
  background:#0b1120cc; border:1px solid var(--line); border-radius:999px; padding:7px 14px; text-decoration:none; backdrop-filter:blur(8px); transition:.2s}
.back-link:hover{color:var(--accent); border-color:var(--accent)}

/* HERO */
.cs-hero{position:relative; min-height:90vh; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; padding:90px 20px 60px}
.cs-hero-sky{position:absolute; inset:0; z-index:1; background:radial-gradient(680px 420px at 50% 18%, rgba(var(--accent-rgb),.13), transparent 70%)}
.cs-emoji{display:block; margin:0 auto 10px; font-size:74px; line-height:1; filter:drop-shadow(0 0 40px rgba(var(--accent-rgb),.6)); animation:bobf 5.5s ease-in-out infinite}
@keyframes bobf{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.cs-hero-in{position:relative; z-index:2; max-width:780px}
.cs-stamp{display:inline-block; font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.12em; color:var(--accent);
  border:1px solid rgba(var(--accent-rgb),.35); background:rgba(var(--accent-rgb),.08); padding:6px 14px; border-radius:6px; transform:rotate(-1.2deg)}
.cs-h1{font-size:clamp(46px,10vw,108px); font-weight:700; margin:18px 0 6px; letter-spacing:-.02em}
.cs-h1 span{color:var(--accent); text-shadow:0 0 36px rgba(var(--accent-rgb),.45)}
.cs-sub{font-size:clamp(15px,2.4vw,20px); color:var(--ink2); font-weight:500; margin:0 0 18px}
.cs-hook{font-size:clamp(15px,2vw,18px); color:var(--ink); max-width:640px; margin:0 auto 28px; opacity:.92}
.cs-cta{display:flex; gap:12px; justify-content:center; flex-wrap:wrap}
.cs-btn{display:inline-block; padding:12px 22px; border-radius:999px; font-weight:600; font-size:14px; text-decoration:none; transition:.2s; border:1px solid transparent; cursor:pointer}
.cs-btn-primary{background:linear-gradient(135deg,#fff,var(--accent)); color:#15110a; box-shadow:0 8px 28px -8px rgba(var(--accent-rgb),.6)}
.cs-btn-primary:hover{transform:translateY(-2px)}
.cs-btn-ghost{border-color:var(--line); color:var(--ink); background:#0e142488}
.cs-btn-ghost:hover{border-color:var(--accent); color:var(--accent)}
.cs-scroll{display:block; margin-top:36px; font-size:26px; color:var(--ink3); animation:bounce 2s infinite}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}

main{position:relative; z-index:2}
.cs-sec{max-width:1080px; margin:0 auto; padding:64px 20px}
.cs-sec-head{margin-bottom:30px; max-width:680px}
.cs-sec-head h2{font-size:clamp(26px,5vw,42px); letter-spacing:-.01em}
.cs-sec-sub{color:var(--ink2); margin:10px 0 0; font-size:16px}

/* NÚMEROS */
.cs-nums{max-width:1080px; margin:0 auto; padding:8px 20px 0}
.cs-nums-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:12px; background:linear-gradient(180deg,#0e1424,#0a0f1c); border:1px solid var(--line); border-radius:18px; padding:24px}
.cs-num{text-align:center}
.cs-num b{display:block; font-family:'Space Grotesk',sans-serif; font-size:clamp(20px,3vw,30px); color:var(--accent)}
.cs-num span{font-size:12px; color:var(--ink3)}

/* ENTENDER (2 cards) */
.cs-cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px}
.cs-card{background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:22px; transition:.25s}
.cs-card:hover{border-color:rgba(var(--accent-rgb),.4); transform:translateY(-3px)}
.cs-card .ic{font-size:28px; display:block; margin-bottom:10px}
.cs-card h3{font-size:18px; margin-bottom:8px}
.cs-card p{font-size:14.5px; color:var(--ink2); margin:0}

/* MAPA + CRONOLOGIA */
.cs-sec-map{max-width:1180px}
.onda-wrap{position:relative; border-radius:18px; overflow:hidden; border:1px solid var(--line); box-shadow:0 20px 60px -20px #000}
.onda-map{height:clamp(380px,54vh,540px); width:100%; background:#0a0f1c}
.onda-card{position:absolute; left:18px; bottom:18px; right:18px; max-width:460px; background:#070b14e8; border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:12px; padding:14px 16px; backdrop-filter:blur(8px); z-index:5}
.oc-date{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--accent); letter-spacing:.06em}
.oc-local{display:block; font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:16px; margin:2px 0 6px}
.oc-evento{margin:0; font-size:14px; color:var(--ink2)}
.oc-fonte{display:block; margin-top:8px; font-family:'JetBrains Mono',monospace; font-size:10.5px; color:var(--ink3); opacity:.85; line-height:1.4}
.oc-fonte:empty{display:none}
.onda-time{display:flex; align-items:center; gap:14px; margin-top:18px}
.onda-play{flex:none; width:46px; height:46px; border-radius:50%; border:1px solid var(--accent); background:rgba(var(--accent-rgb),.1); color:var(--accent); font-size:16px; cursor:pointer; transition:.2s}
.onda-play:hover{background:var(--accent); color:#15110a}
.onda-track{position:relative; flex:1; height:42px; display:flex; align-items:center}
.onda-track::before{content:''; position:absolute; left:0; right:0; top:50%; height:2px; background:var(--line)}
.onda-track::after{content:''; position:absolute; left:0; top:50%; height:2px; width:var(--prog,0%); background:linear-gradient(90deg,var(--accent),var(--green)); transition:width .4s}
.onda-node{position:relative; z-index:2; flex:1; display:flex; justify-content:center; cursor:pointer}
.onda-node i{width:11px; height:11px; border-radius:50%; background:var(--c,#888); border:2px solid var(--bg); transition:.2s}
.onda-node:hover i{transform:scale(1.35)}
.onda-node.on i{transform:scale(1.7); box-shadow:0 0 0 5px var(--cglow,#fff2)}
.onda-node .tip{position:absolute; bottom:130%; left:50%; transform:translateX(-50%); white-space:nowrap; font-size:10.5px; font-family:'JetBrains Mono',monospace; color:var(--ink3); opacity:0; transition:.2s; pointer-events:none}
.onda-node:hover .tip,.onda-node.on .tip{opacity:1}
.onda-legend{display:flex; gap:18px; flex-wrap:wrap; margin-top:16px; font-size:12.5px; color:var(--ink3)}
.onda-legend i{display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:6px; vertical-align:middle}
.cs-spot{position:relative; display:flex; flex-direction:column; align-items:center; cursor:pointer; z-index:8; width:0}
.cs-spot .vs-dot{position:relative; z-index:3; width:14px; height:14px; border-radius:50%; background:radial-gradient(circle at 40% 35%,#fff,var(--accent) 65%); box-shadow:0 0 12px 2px rgba(var(--accent-rgb),.7)}
.cs-spot .vs-pulse{position:absolute; top:0; left:50%; width:14px; height:14px; margin-left:-7px; border-radius:50%; background:var(--accent); opacity:.5; animation:csp 2.4s ease-out infinite}
@keyframes csp{0%{transform:scale(.6);opacity:.6}100%{transform:scale(3.6);opacity:0}}
.cs-spot.act .vs-dot{box-shadow:0 0 22px 6px rgba(var(--accent-rgb),.95); transform:scale(1.3)}
.cs-spot .vs-name{position:absolute; bottom:1.5rem; left:50%; transform:translateX(-50%); white-space:nowrap; font-size:10px; font-weight:600; color:#fff; text-shadow:0 1px 3px #000; opacity:0; transition:.2s; background:rgba(8,5,8,.72); border:1px solid var(--line2); padding:2px 7px; border-radius:9px}
.cs-spot:hover .vs-name,.cs-spot.act .vs-name{opacity:1}

/* PERFIL (lista) */
.cs-dl{margin:0; background:linear-gradient(180deg,#0c1322,#0a0f1c); border:1px solid var(--line); border-radius:16px; padding:24px}
.cs-dl dt{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--accent); margin-top:16px}
.cs-dl dt:first-child{margin-top:0}
.cs-dl dd{margin:4px 0 0; color:var(--ink); font-size:15px}

/* TESTEMUNHAS */
.cs-wits{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px}
.cs-wit{background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:20px}
.cs-wit-q{font-family:'Space Grotesk',sans-serif; font-size:18px; color:var(--accent); margin:0 0 12px; line-height:1.3}
.cs-wit h3{font-size:15px; margin:0}
.cs-wit .role{font-size:12.5px; color:var(--ink3); margin:2px 0 10px}
.cs-wit p{font-size:14px; color:var(--ink2); margin:0}

/* BLOCOS */
.cs-blocos{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:16px}
.cs-bloco{background:linear-gradient(180deg,#0c1322,#0a0f1c); border:1px solid var(--line); border-radius:16px; padding:22px}
.cs-bloco h3{font-size:17px; color:var(--accent); margin-bottom:10px}
.cs-bloco p{font-size:14.5px; color:var(--ink2); margin:0}

/* MÍDIA (links, respeitando copyright) */
.cs-midia{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px}
.cs-mid{display:block; background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:16px 18px; text-decoration:none; transition:.2s}
.cs-mid:hover{border-color:var(--accent); transform:translateY(-2px)}
.cs-mid-top{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px}
.cs-mid-tipo{font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); background:rgba(var(--accent-rgb),.1); border:1px solid rgba(var(--accent-rgb),.3); border-radius:6px; padding:2px 7px}
.cs-mid-pub{font-size:10px; color:var(--green)}
.cs-mid h3{font-size:14.5px; margin:0 0 6px; color:var(--ink); line-height:1.3}
.cs-mid p{font-size:12.5px; color:var(--ink3); margin:0 0 8px}
.cs-mid-fonte{font-size:11.5px; color:var(--ink2)}
.cs-mid-fonte b{color:var(--accent)}
.cs-mid-go{float:right; color:var(--accent)}
.cs-midia-note{font-size:12px; color:var(--ink3); margin:14px 0 0; font-style:italic}

/* FIM */
.cs-sec-end{text-align:center}
.cs-end h2{font-size:clamp(24px,4vw,36px)}
.cs-end p{color:var(--ink2); max-width:560px; margin:12px auto 22px}
.cs-sources{max-width:620px; margin:36px auto 0; text-align:left; border:1px solid var(--line); border-radius:12px; padding:6px 18px; background:var(--panel)}
.cs-sources summary{cursor:pointer; padding:12px 0; font-weight:600; color:var(--ink2)}
.cs-sources ul{margin:0 0 14px; padding-left:18px; color:var(--ink3); font-size:13px}
.cs-sources li{margin:5px 0; word-break:break-word}
.cs-foot{margin-top:28px; color:var(--ink3); font-size:12.5px; max-width:680px; margin-left:auto; margin-right:auto}

@media (prefers-reduced-motion: reduce){*{animation:none !important} html{scroll-behavior:auto}}
@media(max-width:680px){.onda-card{left:10px;right:10px;bottom:10px}}

/* mobile: linha do tempo rolável com nós de toque maiores */
@media(max-width:680px){
  .onda-track{overflow-x:auto; scrollbar-width:none}
  .onda-track::-webkit-scrollbar{display:none}
  .onda-node{flex:0 0 42px; min-height:44px}
  .onda-node i{width:14px; height:14px}
}
