:root{--bg:#0D1310;--panel:#17201B;--panel2:#1D2822;--linea:#2E3D34;--verde:#3BE37F;--verde-osc:#0B2A17;--verde2:#0E7A3E;
--coral:#FF7A59;--coral-osc:#2A0E05;--crema:#F4F1E8;--gris:#A7B3AB;--gris2:#5E6A62;--texto2:#C9D2CC;
--tit:'Bricolage Grotesque',Figtree,system-ui,sans-serif;--cuerpo:Figtree,system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--crema);font-family:var(--cuerpo);font-size:17px;line-height:1.55;overflow-x:hidden}
a{color:inherit}
h1,h2,h3{font-family:var(--tit);font-weight:800;letter-spacing:-.03em;line-height:1;margin:0}
mark{background:var(--verde);color:var(--verde-osc);padding:0 .14em;border-radius:.18em;display:inline-block;transform:rotate(-2deg)}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;font:700 17px var(--cuerpo);
  padding:16px 24px;border-radius:999px;text-decoration:none;transition:transform .15s,box-shadow .2s,background .2s}
.btn:hover{transform:translateY(-2px)}
.btn:focus-visible,input:focus-visible,select:focus-visible,button:focus-visible,textarea:focus-visible{outline:3px solid var(--verde);outline-offset:3px}
.btn-v{background:var(--verde);color:var(--verde-osc);box-shadow:0 10px 30px -10px rgba(59,227,127,.6)}
.btn-v:hover{box-shadow:0 16px 40px -12px rgba(59,227,127,.8)}
.btn-o{background:transparent;color:var(--crema);border:1.5px solid var(--crema)}
.btn-c{background:var(--coral);color:var(--coral-osc)}
.btn[disabled]{opacity:.6;cursor:wait;transform:none}
.pill{display:inline-block;border:1px solid var(--linea);background:var(--panel);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600;color:var(--gris)}
.card{background:var(--panel);border:1px solid var(--linea);border-radius:28px;padding:28px}
label{display:block;font-size:14px;font-weight:700;color:var(--gris);margin-bottom:6px}
input,select,textarea{width:100%;font:500 17px var(--cuerpo);color:var(--crema);background:#101814;border:1px solid var(--linea);border-radius:16px;padding:14px 16px}
input[type=checkbox]{width:auto;accent-color:var(--verde)}
input[type=file]{padding:12px;cursor:pointer}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--gris);font-weight:500}
.msg-err{color:var(--coral);font-weight:600;font-size:15px}
.oculto{display:none!important}
.num{font-family:var(--tit);font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.sim{mix-blend-mode:lighten;pointer-events:none;user-select:none}
@keyframes flota{0%,100%{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-16px) rotate(calc(var(--r,0deg) + 4deg))}}
.flota{animation:flota 6s ease-in-out infinite}
.rev{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.rev.ver{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.flota{animation:none}.rev{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* chat flotante */
.chat-bot{position:fixed;right:20px;bottom:20px;z-index:50;width:64px;height:64px;border-radius:50%;border:0;cursor:pointer;
  background:var(--verde);color:var(--verde-osc);box-shadow:0 12px 40px -8px rgba(59,227,127,.7);display:grid;place-items:center;transition:transform .2s}
.chat-bot:hover{transform:scale(1.07)}
.chat-panel{position:fixed;right:20px;bottom:96px;z-index:50;width:min(390px,calc(100vw - 32px));height:min(600px,calc(100vh - 130px));
  background:var(--panel);border:1px solid var(--linea);border-radius:28px;display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.7);transform-origin:bottom right;animation:abre .25s ease}
@keyframes abre{from{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:none}}
.chat-cab{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--linea);font-weight:700}
.chat-cab small{display:block;color:var(--gris);font-weight:500;font-size:12px}
.chat-cab button{margin-left:auto;background:none;border:0;color:var(--gris);font-size:26px;cursor:pointer;line-height:1}
.chat-lista{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.b{max-width:85%;padding:11px 15px;border-radius:20px;font-size:15px;white-space:pre-wrap;word-wrap:break-word}
.b-ia{background:var(--panel2);border:1px solid var(--linea);align-self:flex-start;border-bottom-left-radius:6px}
.b-eq{background:#14301F;border:1px solid var(--verde2);align-self:flex-start;border-bottom-left-radius:6px}
.b-tu{background:var(--verde);color:var(--verde-osc);align-self:flex-end;border-bottom-right-radius:6px;font-weight:600}
.b small{display:block;font-size:11px;font-weight:700;opacity:.7;margin-bottom:2px}
.escribiendo span{display:inline-block;width:7px;height:7px;margin:0 2px;border-radius:50%;background:var(--gris);animation:pt 1s infinite}
.escribiendo span:nth-child(2){animation-delay:.15s}.escribiendo span:nth-child(3){animation-delay:.3s}
@keyframes pt{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}
.chat-form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--linea)}
.chat-form input{border-radius:999px;padding:12px 16px;font-size:15px}
.chat-form button{flex:none;width:48px;height:48px;border-radius:50%;border:0;background:var(--verde);color:var(--verde-osc);cursor:pointer;display:grid;place-items:center}
