/* ===== Bitácora (book) ===== */
#book{position:fixed;inset:0;z-index:45;display:flex;opacity:0;transition:opacity .5s}
#book[hidden]{display:none}#book.on{opacity:1}
.bk-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 20% 10%,rgba(80,110,255,.22),transparent 55%),radial-gradient(ellipse at 90% 90%,rgba(190,90,255,.16),transparent 50%),rgba(2,3,10,.86);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.bk-shell{position:relative;display:grid;grid-template-columns:270px 1fr;width:min(1240px,96vw);height:min(840px,92vh);margin:auto;border-radius:28px;overflow:hidden;border:1px solid rgba(255,255,255,.22);
  background:linear-gradient(150deg,rgba(255,255,255,.12),rgba(255,255,255,.035) 40%,rgba(90,130,255,.08));box-shadow:0 50px 160px rgba(0,0,20,.75),inset 0 1px 0 rgba(255,255,255,.5);transform:translateY(24px) scale(.985);transition:transform .7s cubic-bezier(.2,.7,.2,1)}
#book.on .bk-shell{transform:none}
.bk-x{position:absolute;top:1rem;right:1rem;z-index:5;width:42px;height:42px;border-radius:50%;background:rgba(4,8,22,.6);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer}
.bk-x:hover{background:rgba(255,255,255,.16)}
.bk-nav{display:flex;flex-direction:column;gap:.35rem;padding:1.6rem 1rem 1.2rem;border-right:1px solid rgba(255,255,255,.14);background:linear-gradient(180deg,rgba(255,255,255,.05),transparent)}
.bk-brand{color:#a9d4ff;letter-spacing:.3em;font-size:.6rem;text-transform:uppercase;margin:0 .6rem 1.4rem}
.bk-nav button{display:flex;align-items:baseline;gap:.8rem;text-align:left;padding:.85rem .8rem;border-radius:14px;background:none;border:1px solid transparent;color:var(--mute);cursor:pointer;font:500 .95rem var(--sans);transition:.3s}
.bk-nav button i{font:normal .6rem var(--mono);letter-spacing:.2em;color:#6f88c4}
.bk-nav button:hover{color:#fff;background:rgba(255,255,255,.06)}
.bk-nav button.on{color:#fff;background:rgba(160,200,255,.12);border-color:rgba(190,215,255,.3);box-shadow:0 0 30px rgba(120,170,255,.15)}
.bk-nav button.on i{color:#a9d4ff}
.bk-foot{margin-top:auto;padding:0 .6rem;color:#7f8db8;font-size:.55rem;letter-spacing:.14em;line-height:1.8;text-transform:uppercase}
.bk-main{overflow-y:auto;padding:2.6rem 3rem 3rem;overscroll-behavior:contain;opacity:0;transform:translateY(14px);transition:opacity .5s,transform .6s cubic-bezier(.2,.7,.2,1)}
.bk-main.in{opacity:1;transform:none}
.bk-k{color:#a9d4ff;letter-spacing:.3em;font-size:.62rem;text-transform:uppercase;margin:0 0 .9rem}
.bk-main h2{margin:0 0 1rem;font-family:var(--serif);font-weight:300;font-size:clamp(2rem,4.4vw,3.6rem);line-height:1.05;background:linear-gradient(100deg,#fff,#b9ccff 50%,#fff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:none}
.bk-lead{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:#cfdcff;margin:0 0 1.4rem;max-width:40em;line-height:1.45}
.bk-main p{color:#d9e2ff;line-height:1.7;font-size:1rem;margin:0 0 1rem}
.bk-main p b{color:#fff}
/* identidad */
.bk-id{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:2.4rem;align-items:start}
.bk-por{margin:0;position:relative;border-radius:22px;overflow:hidden;border:1px solid rgba(255,255,255,.28);box-shadow:0 30px 80px rgba(0,0,20,.6)}
.bk-por img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}
.bk-por i{position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(2,3,10,.55)),radial-gradient(circle at 80% 0,rgba(140,180,255,.25),transparent 55%)}
.bk-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem;margin-top:1.6rem}
.bk-stats div{padding:1rem 1.1rem;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14)}
.bk-stats b{display:block;font-family:var(--serif);font-weight:400;font-size:1.9rem;color:#fff}
.bk-stats span{font:.55rem var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#8fa0d6}
/* trayectoria */
.bk-tl{list-style:none;margin:2rem 0 0;padding:0 0 0 1.6rem;border-left:1px solid rgba(170,205,255,.3);display:grid;gap:2rem}
.bk-tl li{position:relative;display:grid;grid-template-columns:130px 1fr;gap:1.2rem;opacity:0;transform:translateY(12px);animation:bkIn .7s var(--d,0ms) forwards}
.bk-tl li::before{content:'';position:absolute;left:calc(-1.6rem - 5px);top:.45rem;width:9px;height:9px;border-radius:50%;background:#a9d4ff;box-shadow:0 0 14px #a9d4ff}
.bk-tl b{color:#a9d4ff;font-size:.75rem;letter-spacing:.18em;padding-top:.3rem}
.bk-tl h3{margin:0 0 .5rem;font-family:var(--serif);font-weight:400;font-size:1.35rem;color:#fff;line-height:1.2}
.bk-tl p{margin:0 0 .7rem;font-size:.95rem}
.bk-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.bk-chips span{font:.58rem var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:.35rem .65rem;border-radius:999px;border:1px solid rgba(190,215,255,.28);color:#b9c8f0;background:rgba(255,255,255,.04)}
@keyframes bkIn{to{opacity:1;transform:none}}
/* webs */
.bk-f{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.4rem}
.bk-f button{padding:.5rem .95rem;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(190,215,255,.25);color:#c8d4f5;font:500 .7rem var(--mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:.3s}
.bk-f button.on,.bk-f button:hover{background:rgba(160,200,255,.18);border-color:rgba(255,255,255,.55);color:#fff}
.bk-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.1rem}
.bk-c{display:block;border-radius:20px;overflow:hidden;text-decoration:none;color:inherit;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);transition:transform .45s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .4s;opacity:0;transform:translateY(12px);animation:bkIn .7s var(--d,0ms) forwards}
.bk-c:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.55);box-shadow:0 26px 60px rgba(0,0,20,.55),0 0 40px rgba(120,170,255,.2)}
.bk-c img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#05070f}
.bk-c div{padding:1rem 1.1rem 1.1rem}
.bk-c h3{margin:0 0 .4rem;font-family:var(--serif);font-weight:500;font-size:1.15rem;color:#fff}
.bk-c p{margin:0 0 .8rem;font-size:.82rem;line-height:1.5;color:#b9c6ea;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.bk-c span{color:#a9d4ff;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase}
/* IA */
.bk-ia{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;margin-top:1.4rem}
.bk-ia article{padding:1.5rem 1.4rem;border-radius:22px;border:1px solid rgba(255,255,255,.18);background:linear-gradient(150deg,rgba(255,255,255,.09),rgba(255,255,255,.02));opacity:0;transform:translateY(12px);animation:bkIn .7s var(--d,0ms) forwards;position:relative;overflow:hidden}
.bk-ia article::after{content:'';position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgba(150,190,255,.22),transparent 65%)}
.bk-ia b{color:#a9d4ff;letter-spacing:.2em;font-size:.7rem}
.bk-ia h3{margin:.6rem 0 .6rem;font-family:var(--serif);font-weight:400;font-size:1.4rem;color:#fff;line-height:1.2}
.bk-ia p{font-size:.92rem;margin:0 0 1rem}
.bk-ia a{color:#a9d4ff;font-size:.65rem;letter-spacing:.16em;text-decoration:none;border-bottom:1px solid rgba(169,212,255,.4);padding-bottom:2px}
.bk-ia a:hover{color:#fff;border-color:#fff}
/* contacto */
.bk-ct{display:flex;flex-wrap:wrap;gap:.9rem;margin:1.6rem 0}
.bk-btn{padding:1rem 1.5rem;border-radius:999px;background:linear-gradient(135deg,#fff,#cfe0ff);color:#050814;text-decoration:none;font:600 .95rem var(--sans);box-shadow:0 14px 40px rgba(120,170,255,.3);transition:.3s}
.bk-btn.ghost{background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.35);box-shadow:none}
.bk-btn:hover{transform:translateY(-3px)}
.bk-fine{color:#7f8db8!important;letter-spacing:.2em;font-size:.65rem!important;text-transform:uppercase}
/* botón HUD y CTA */
#bookBtn{letter-spacing:.14em}
.cta{margin-top:1.1rem;padding:.85rem 1.4rem;border-radius:999px;background:linear-gradient(135deg,rgba(255,255,255,.2),rgba(160,200,255,.12));border:1px solid rgba(255,255,255,.4);color:#fff;font:500 .72rem var(--mono);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:.35s;box-shadow:0 10px 40px rgba(100,150,255,.2)}
.cta:hover{background:rgba(255,255,255,.28);transform:translateY(-2px);box-shadow:0 14px 50px rgba(120,170,255,.4)}
@media(max-width:860px){
  .bk-shell{grid-template-columns:1fr;grid-template-rows:auto 1fr;width:100vw;height:100dvh;border-radius:0}
  .bk-nav{flex-direction:row;overflow-x:auto;padding:.9rem 3.6rem .7rem .8rem;border-right:0;border-bottom:1px solid rgba(255,255,255,.14);gap:.3rem}
  .bk-brand,.bk-foot{display:none}.bk-nav button{flex:none;padding:.6rem .8rem;font-size:.8rem}.bk-nav button i{display:none}
  .bk-main{padding:1.4rem 1.2rem 3rem}.bk-id{grid-template-columns:1fr}.bk-por{max-width:260px}
  .bk-tl li{grid-template-columns:1fr;gap:.3rem}.bk-ia{grid-template-columns:1fr}.bk-stats{grid-template-columns:1fr 1fr}
}
@media(prefers-reduced-motion:reduce){.bk-tl li,.bk-c,.bk-ia article{animation:none;opacity:1;transform:none}.bk-shell{transition:none}}

/* ===== v3 · bitácora de gran impacto ===== */
.bk-hero{display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:3rem;align-items:center}
.bk-stage{position:relative;perspective:900px;display:grid;place-items:center;padding:2.6rem}
.bk-stage .bk-por{width:100%;max-width:300px;transform-style:preserve-3d;transition:transform .25s ease-out;box-shadow:0 40px 90px rgba(0,0,20,.7),0 0 70px rgba(130,180,255,.35)}
.bk-glow{position:absolute;inset:8%;border-radius:50%;background:conic-gradient(from 0deg,rgba(140,190,255,.35),rgba(255,208,137,.3),rgba(140,190,255,.35));filter:blur(60px);z-index:-1;animation:bkSpin 14s linear infinite}
.bk-orb{position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(190,215,255,.25);animation:bkSpin 40s linear infinite;pointer-events:none}
.bk-orb.o2{inset:7%;animation-duration:28s;animation-direction:reverse;border-color:rgba(255,208,137,.25)}
.bk-orb span{position:absolute;font:600 .55rem var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:.3rem .6rem;border-radius:99px;background:rgba(8,12,30,.85);border:1px solid rgba(190,215,255,.4);color:#dbe8ff;white-space:nowrap;animation:bkCounter 40s linear infinite}
.bk-orb.o2 span{animation-duration:28s;animation-direction:reverse;border-color:rgba(255,208,137,.5);color:#ffe2b0}
.bk-orb span:nth-child(1){left:50%;top:-6px;margin-left:-30px}.bk-orb span:nth-child(2){right:-10px;top:50%}.bk-orb span:nth-child(3){left:50%;bottom:-6px}.bk-orb span:nth-child(4){left:-10px;top:50%}
@keyframes bkSpin{to{transform:rotate(360deg)}}@keyframes bkCounter{to{transform:rotate(-360deg)}}
.bk-h{font:300 clamp(2.4rem,5.5vw,4.4rem)/1.02 var(--serif);letter-spacing:-.01em;background:linear-gradient(100deg,#fff,#bfe0ff 55%,#ffe2b0);-webkit-background-clip:text;background-clip:text;color:transparent}
.bk-h em{font-weight:600}
.bk-mk{margin-top:1.4rem}
.bk-miss{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}
.bk-miss span{display:flex;gap:.45rem;align-items:center;padding:.45rem .8rem;border-radius:99px;font:.62rem var(--mono);letter-spacing:.1em;border:1px solid rgba(255,208,137,.4);background:rgba(255,208,137,.07);color:#ffe2b0}
.bk-miss i{font-style:normal;font-size:.9rem}
.bk-go{display:flex;gap:.7rem;margin-top:1.4rem;flex-wrap:wrap}
.bk-stats b{background:linear-gradient(100deg,#fff,#bfe0ff);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:2.2rem}
.bk-tx{margin-top:1.4rem}
.bk-tn{position:relative;display:flex;justify-content:space-between;gap:.3rem;padding:1.6rem 0 .4rem}
.bk-tn::before,.bk-tn em{content:'';position:absolute;left:1.2rem;right:1.2rem;top:2.6rem;height:2px;background:rgba(190,215,255,.2)}
.bk-tn em{right:auto;width:calc((100% - 2.4rem) * 0);background:linear-gradient(90deg,#8fd0ff,#ffd089);transition:width .6s cubic-bezier(.2,.7,.2,1);width:calc((100% - 2.4rem) * var(--w,0%) / 100%);box-shadow:0 0 14px rgba(255,208,137,.7)}
.bk-tn button{position:relative;z-index:1;background:none;border:0;color:#9fb4e6;display:grid;justify-items:center;gap:.7rem;cursor:pointer;font-size:.62rem;padding:0 .2rem;transition:color .3s,transform .3s}
.bk-tn button i{width:18px;height:18px;border-radius:50%;background:#0a1030;border:2px solid #6f8cd6;transition:.3s}
.bk-tn button:hover{color:#fff;transform:translateY(-2px)}
.bk-tn button.on{color:#ffe2b0}.bk-tn button.on i{background:#ffd089;border-color:#fff;box-shadow:0 0 0 6px rgba(255,208,137,.2),0 0 24px #ffd089;transform:scale(1.25)}
.bk-td{margin-top:1.6rem;padding:1.8rem 2rem;border-radius:24px;border:1px solid rgba(190,215,255,.25);background:linear-gradient(135deg,rgba(24,34,70,.6),rgba(6,8,22,.7));box-shadow:0 24px 70px rgba(0,0,20,.5);min-height:260px}
.bk-td.in{animation:bkIn .7s cubic-bezier(.2,.7,.2,1)}@keyframes bkIn{from{opacity:0;transform:translateY(18px)}}
.bk-yr{font:300 clamp(2.4rem,6vw,4.6rem)/1 var(--serif);background:linear-gradient(100deg,#ffe2b0,#bfe0ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.bk-td h3{font:500 clamp(1.15rem,2.2vw,1.6rem)/1.25 var(--serif);margin:.8rem 0 .6rem;color:#fff}.bk-td p{color:#b9c6ea;line-height:1.6;max-width:60ch}
.bk-tp{display:flex;align-items:center;gap:1rem;justify-content:center;margin-top:1rem;color:#9fb4e6}
.bk-tp button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(190,215,255,.35);background:rgba(255,255,255,.05);color:#fff;font-size:1.1rem;cursor:pointer;transition:.25s}.bk-tp button:hover{background:#fff;color:#05060f}
@media(max-width:900px){.bk-hero{grid-template-columns:1fr;gap:1rem}.bk-stage{padding:2rem 3rem}.bk-tn button b{font-size:.5rem}.bk-td{padding:1.2rem}}
@media (prefers-reduced-motion:reduce){.bk-orb,.bk-orb span,.bk-glow{animation:none}}
