:root{--bg-page:#faf8f3;--bg-surface:#fff;--bg-subtle:#f4f1ea;--bg-muted:#eeeae1;--bg-pattern:url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0l20 20M20 0L0 20' stroke='%23E4DED2' stroke-width='0.6'/%3E%3C/svg%3E");--text-primary:#1c1b19;--text-secondary:#57534b;--text-muted:#76716a;--border:#e7e2d8;--border-strong:#d9d2c4;--border-dashed:#1c1b1924;--accent:#2450d6;--accent-hover:#1c3fb0;--accent-light:#e8eefc;--accent-fg:#fff;--accent-glow:#2450d624;--accent-ring:#2450d638;--bar-idle:#8b93a3;--bar-compare:#b7861a;--bar-swap:#c8483d;--bar-write:#9c4fb8;--bar-pivot:#2450d6;--bar-done:#2e8b62;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--series-5:#e87ba4;--series-6:#008300;--series-7:#4a3aa7;--series-8:#e34948;--sym-a-bg:#e8eefc;--sym-a-fg:#1c3fb0;--sym-b-bg:#f6ecd3;--sym-b-fg:#7a5a0f;--sym-c-bg:#e2f0e8;--sym-c-fg:#22694a;--s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:64px;--s7:80px;--s8:96px;--font-display:"Playfair Display", Georgia, serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-pill:999px;--shadow-sm:0 1px 3px #1c1b190f;--shadow-md:0 4px 16px #1c1b1912, 0 2px 4px #1c1b190a;--shadow-lg:0 8px 32px #1c1b191a;--shadow-float:0 20px 60px #1c1b191f;--max-w:1200px;--nav-h:68px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background-color:var(--bg-page);min-height:100vh;color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;flex-direction:column;align-items:center;font-size:16px;display:flex}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#mainContent{width:100%}.container{width:100%;max-width:var(--max-w);padding:0 var(--s3);margin:0 auto}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=480px){.container{padding:0 var(--s2)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.site-header{z-index:20;-webkit-backdrop-filter:saturate(140%)blur(10px);background:#faf8f3d1;border-bottom:1px solid #0000;width:100%;transition:border-color .2s,box-shadow .2s;position:sticky;top:0}.site-header.scrolled{border-bottom-color:var(--border);box-shadow:0 1px 20px #1c1b1912}.nav{align-items:center;gap:var(--s4);height:var(--nav-h);display:flex}.brand{letter-spacing:-.01em;color:var(--text-primary);align-items:center;gap:10px;font-size:17px;font-weight:600;display:inline-flex}.brand-mark{width:28px;height:28px}.brand-mark-top{fill:var(--accent)}.brand-mark-mid{fill:var(--text-secondary)}.brand-mark-base{fill:var(--text-primary)}.nav-links{gap:var(--s3);margin-left:auto;list-style:none;display:flex}.nav-links a{color:var(--text-secondary);font-size:15px;font-weight:500;transition:color .2s}.nav-links a:hover{color:var(--text-primary)}.btn{border-radius:var(--radius-md);white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:12px 22px;font-size:15px;font-weight:500;transition:transform .2s,box-shadow .2s,background-color .2s,border-color .2s;display:inline-flex}.btn svg{width:16px;height:16px;transition:transform .2s}.btn:hover{transform:translateY(-2px)}.btn:hover svg{transform:translate(2px)}.btn:active{transform:translateY(0)}.btn--sm{padding:9px 18px}.btn--primary{background:var(--accent);color:var(--accent-fg);box-shadow:0 6px 20px var(--accent-glow)}.btn--primary:hover{background:var(--accent-hover);box-shadow:0 10px 28px var(--accent-ring)}.btn--dark{background:var(--text-primary);color:var(--bg-surface)}.btn--dark:hover{box-shadow:var(--shadow-md)}.btn--ghost{background:var(--bg-surface);border-color:var(--border);color:var(--text-primary)}.btn--ghost:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:13px;font-weight:600}.site-footer{width:100%;padding:var(--s6) 0 var(--s5);border-top:1px solid var(--border);background:var(--bg-subtle)}.site-footer h3{letter-spacing:.06em;text-transform:uppercase;color:var(--text-primary);margin-bottom:12px;font-size:13px;font-weight:600}.site-footer ul{color:var(--text-muted);flex-direction:column;gap:8px;font-size:14px;list-style:none;display:flex}.site-footer a{transition:color .2s}.site-footer a:hover{color:var(--text-primary)}.footer-grid{gap:var(--s4);grid-template-columns:2fr 1fr 1fr;display:grid}.footer-brand p{max-width:320px;color:var(--text-muted);margin-top:12px;font-size:14px;line-height:1.6}.js .reveal{opacity:0;transition:opacity .55s,transform .55s;transform:translateY(20px)}.js .reveal.visible{opacity:1;transform:translateY(0)}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.4)}}@media (width<=720px){.nav-links{display:none}.nav{gap:var(--s2)}.nav .btn{margin-left:auto;padding:8px 14px;font-size:14px}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}@media (width<=375px){.nav .brand span{display:none}}.swatch{border-radius:3px;width:10px;height:10px}.code-panel{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);flex-direction:column;flex:300px;min-width:0;max-width:420px;display:flex;overflow:hidden}.code-panel[hidden]{display:none}.code-panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.code-panel-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.code-panel-counter{color:var(--text-muted);font-family:var(--font-mono);flex-shrink:0;font-size:12px}.code-lines{counter-reset:linea;font-family:var(--font-mono);font-variant-ligatures:none;flex:1;margin:0;padding:8px 0;font-size:12.5px;line-height:1.75;list-style:none;overflow-x:auto}.code-lines li{color:var(--text-secondary);white-space:pre;padding:0 14px 0 44px;transition:background-color .15s,color .15s;position:relative}.code-lines li:before{width:30px;color:var(--text-muted);text-align:right;counter-increment:linea;content:counter(linea);position:absolute;left:0}.code-lines li.is-active{background:var(--accent-light);box-shadow:inset 3px 0 0 var(--accent);color:var(--text-primary)}.code-lines li.is-active:before{color:var(--accent)}.code-step{border-top:1px solid var(--border);background:var(--bg-subtle);min-height:42px;color:var(--text-primary);font-family:var(--font-mono);align-items:center;gap:8px;padding:10px 14px;font-size:12.5px;display:flex}.vistas{width:100%}.vista{scroll-margin-top:var(--nav-h);padding-bottom:var(--s8);display:none}.vista:target{display:block}.vistas:not(:has(.vista:target)) #biblioteca{display:block}.huff-hero{padding:var(--s7) 0 var(--s6);text-align:center;position:relative;overflow:hidden}.huff-glow{pointer-events:none;background:radial-gradient(closest-side,#2450d624,#0000);width:900px;height:560px;position:absolute;top:-140px;left:50%;transform:translate(-50%)}.huff-hero-inner{flex-direction:column;align-items:center;display:flex;position:relative}.huff-hero-inner h1{margin-top:var(--s2);font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(36px,5vw,64px);font-weight:800;line-height:1.1}.huff-hero-inner h1 em{color:var(--accent);font-style:italic;font-weight:700}.huff-sub{max-width:560px;margin-top:var(--s3);color:var(--text-secondary);font-size:17px;line-height:1.65}.huff-sub code{font-family:var(--font-mono);color:var(--text-primary);font-size:.92em}.etapas{margin-top:var(--s4);color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:8px 28px;font-size:14px;list-style:none;display:flex}.etapas li{align-items:center;gap:10px;display:inline-flex}.etapas span{border:1px solid var(--border-strong);width:26px;height:26px;font-family:var(--font-mono);border-radius:50%;place-items:center;font-size:12px;display:grid}.etapas .is-actual{color:var(--text-primary);font-weight:500}.etapas .is-actual span{border-color:var(--accent);background:var(--accent);color:var(--accent-fg);box-shadow:0 0 0 4px var(--accent-glow)}.campo{flex:1;display:block;position:relative}.campo svg{width:18px;height:18px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.campo input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);width:100%;color:var(--text-primary);padding:14px 16px 14px 46px;font-size:15px;transition:border-color .2s,box-shadow .2s}.campo input::placeholder{color:var(--text-muted)}.campo input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring);outline:none}.campo--compacto{flex:none;margin-bottom:12px}.campo--compacto svg{width:16px;height:16px;left:12px}.campo--compacto input{padding:9px 12px 9px 38px;font-size:14px}.enlace-libro{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);max-width:720px;box-shadow:var(--shadow-md);gap:12px;margin:0 auto;padding:8px;display:flex}.enlace-libro .campo input{background:var(--bg-subtle);border-color:#0000}.enlace-nota{text-align:center;color:var(--text-muted);margin-top:12px;font-size:13px}.biblioteca-head{justify-content:space-between;align-items:baseline;gap:var(--s2);margin:var(--s7) 0 var(--s3);display:flex}.biblioteca-head h2{font-family:var(--font-display);font-size:clamp(26px,3vw,36px);font-weight:700}.biblioteca-cuenta{color:var(--text-muted);font-size:14px}.libros{gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.libro{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-sm);gap:18px;padding:14px;transition:border-color .2s,box-shadow .25s;display:flex}.libro:hover,.libro:focus-visible{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow), var(--shadow-md)}.libro:focus-visible{outline:none}.libro-portada{width:92px;height:128px;box-shadow:inset 6px 0 0 #1c1b191f, var(--shadow-sm);border-radius:4px 8px 8px 4px;flex-direction:column;flex-shrink:0;justify-content:space-between;padding:14px 10px 12px 16px;display:flex;position:relative;overflow:hidden}.libro-portada:after{content:"";opacity:.35;background:currentColor;height:1px;position:absolute;inset:auto 10px 34px 16px}.libro-portada--azul{color:#f4f1ea;background:linear-gradient(160deg,#3a63e0,#1c3fb0)}.libro-portada--hueso{border:1px solid var(--border-strong);color:var(--text-primary);background:linear-gradient(160deg,#fbf9f4,#ece6da)}.libro-portada--tinta{color:#eee8dc;background:linear-gradient(160deg,#3a3833,#1c1b19)}.libro-portada-inicial{font-family:var(--font-display);font-size:46px;font-style:italic;font-weight:700;line-height:1}.libro-portada-autor{letter-spacing:.08em;text-transform:uppercase;opacity:.8;font-size:10px}.libro-info{flex-direction:column;gap:6px;min-width:0;padding-top:4px;display:flex}.libro-info h3{font-size:17px;font-weight:600;line-height:1.3}.libro-info p{color:var(--text-secondary);font-size:14px}.libro-datos{flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto;display:flex}.libro-id{font-family:var(--font-mono);color:var(--text-muted);font-size:12px}.chip-dato{border-radius:var(--radius-pill);background:var(--bg-subtle);color:var(--text-secondary);white-space:nowrap;padding:3px 10px;font-size:12px}.chip-dato--acento{background:var(--accent-light);color:var(--accent)}.vista-barra{align-items:center;gap:var(--s2) var(--s3);padding:var(--s4) 0 var(--s3);flex-wrap:wrap;display:flex}.vista-barra .btn{margin-left:auto}.btn-volver{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:var(--shadow-sm);align-items:center;gap:8px;padding:9px 16px;font-size:14px;font-weight:500;transition:border-color .2s;display:inline-flex}.btn-volver svg{width:16px;height:16px}.btn-volver:hover{border-color:var(--border-strong)}.vista-libro{flex-direction:column;gap:2px;min-width:0;display:flex}.vista-libro h1{font-family:var(--font-display);font-size:clamp(26px,3vw,34px);font-weight:700;line-height:1.2}.vista-libro h1 code{font-family:var(--font-mono);font-size:.75em;font-weight:500}.vista-libro span{color:var(--text-muted);font-size:14px}.fases{margin-bottom:var(--s3);flex-wrap:wrap;gap:8px;list-style:none;display:flex}.fases li{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-surface);color:var(--text-muted);align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:inline-flex}.fases svg{width:14px;height:14px}.fases .is-hecha{background:var(--accent-light);color:var(--accent);border-color:#2450d640}.huff-metricas{margin-bottom:var(--s3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-sm);grid-template-columns:repeat(5,1fr);display:grid}.huff-metricas>div{border-right:1px solid var(--border);flex-direction:column;gap:2px;padding:18px 22px;display:flex}.huff-metricas>div:last-child{border-right:0}.huff-metricas dt{color:var(--text-muted);order:0;font-size:13px;font-weight:500}.huff-metricas dd{font-family:var(--font-display);font-size:30px;font-weight:800;line-height:1.2}.huff-metricas span{font-family:var(--font-mono);color:var(--text-muted);font-size:12px}.proceso-grid{align-items:start;gap:var(--s3);grid-template-columns:minmax(0,1fr) 360px;display:grid}.proceso-grid .code-panel{max-width:none}.proceso-columna{gap:var(--s3);flex-direction:column;min-width:0;display:flex}.panel{padding:var(--s3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.panel h2{font-size:16px;font-weight:600}.panel-head{margin-bottom:var(--s2);justify-content:space-between;align-items:center;gap:12px;display:flex}.panel-acciones{gap:6px;display:flex}.panel-cuenta{color:var(--text-muted);font-size:13px}.icono-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;place-items:center;transition:border-color .2s,color .2s;display:grid}.icono-btn svg{width:16px;height:16px}.icono-btn:hover{border-color:var(--border-strong);color:var(--text-primary)}.icono-btn--principal{border-color:var(--accent);background:var(--accent);width:42px;height:42px;box-shadow:0 6px 20px var(--accent-glow);color:var(--accent-fg);border-radius:50%}.icono-btn--principal:hover{background:var(--accent-hover);color:var(--accent-fg)}.arbol-lienzo{border:1px solid var(--border);border-radius:var(--radius-md);background:radial-gradient(120% 80% at 50% 0%, var(--accent-glow), transparent 60%), var(--bg-subtle);overflow-x:auto}.arbol-svg{width:100%;min-width:600px;height:auto;padding:8px;display:block}.arbol-arista{stroke:var(--border-strong);stroke-width:1.5px}.arbol-arista.is-ruta{stroke:var(--accent);stroke-width:2.5px}.arbol-bit{fill:var(--text-muted);font-family:var(--font-mono);text-anchor:middle;dominant-baseline:middle;font-size:12px}.arbol-bit.is-ruta{fill:var(--accent);font-weight:500}.arbol-nodo circle,.arbol-nodo rect,.arbol-hoja circle,.arbol-hoja rect{fill:var(--bg-surface);stroke:var(--border-strong);stroke-width:1.5px}.arbol-nodo text,.arbol-hoja text{text-anchor:middle;dominant-baseline:middle}.arbol-nodo.is-ruta circle,.arbol-nodo.is-ruta rect,.arbol-hoja.is-ruta circle,.arbol-hoja.is-ruta rect{stroke:var(--accent);stroke-width:2px;filter:drop-shadow(0 0 6px #2450d659)}.arbol-hoja.is-ruta rect{fill:var(--accent-light)}.arbol-peso{fill:var(--text-secondary);font-family:var(--font-mono);font-size:10px}.arbol-simbolo{fill:var(--text-primary);font-family:var(--font-mono);font-size:16px;font-weight:500}.arbol-subarbol{fill:var(--border-strong)}.arbol-nota{margin:10px 0 var(--s2);color:var(--text-muted);font-size:13px}.arbol-nota b,.arbol-nota code{color:var(--accent);font-family:var(--font-mono);font-weight:500}.reproductor{padding-top:var(--s2);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px 16px;display:flex}.reproductor-botones{align-items:center;gap:6px;display:flex}.reproductor-progreso{border-radius:var(--radius-pill);background:var(--bg-muted);flex:1;min-width:120px;height:4px}.reproductor-progreso span{width:var(--p);border-radius:inherit;background:var(--accent);height:100%;display:block}.reproductor-paso{font-family:var(--font-mono);color:var(--text-secondary);font-size:13px}.velocidades{border-radius:var(--radius-md);background:var(--bg-subtle);padding:3px;display:flex}.velocidades button{color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:5px 10px;font-size:12px}.velocidades .is-activa{background:var(--bg-surface);box-shadow:var(--shadow-sm);color:var(--text-primary)}.tabla-letras{border-collapse:collapse;width:100%;font-size:13px}.tabla-letras th{border-bottom:1px solid var(--border);color:var(--text-muted);text-align:left;padding:0 8px 8px;font-size:12px;font-weight:500}.tabla-letras th:last-child{text-align:right}.tabla-letras td{border-bottom:1px solid var(--bg-muted);color:var(--text-secondary);white-space:nowrap;padding:7px 8px}.tabla-letras small{color:var(--text-muted);font-size:11px}.tabla-letras tr.is-seleccionada td{background:var(--accent-light)}.tabla-letras tr.is-seleccionada td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.simbolo{border:1px solid var(--border);background:var(--bg-surface);min-width:28px;height:26px;color:var(--text-primary);font-family:var(--font-mono);border-radius:6px;place-items:center;font-size:14px;display:inline-grid}.frecuencia{min-width:92px;font-family:var(--font-mono);color:var(--text-primary);padding:2px 6px;display:inline-block;position:relative}.frecuencia:before{content:"";z-index:-1;width:var(--w);background:var(--accent-light);border-radius:4px;position:absolute;inset:0 auto 0 0}.tabla-letras tr.is-seleccionada .frecuencia:before{background:#2450d62e}.tabla-letras .codigo{color:var(--accent);font-family:var(--font-mono);text-align:right}.letras-pie{text-align:center;color:var(--text-muted);padding-top:10px;font-size:13px}.swatch--accent{background:var(--accent)}.archivo-listo{align-items:center;gap:var(--s2);background:radial-gradient(120% 120% at 100% 0%, var(--accent-glow), transparent 60%), var(--bg-surface);border-color:#2450d64d;grid-template-columns:auto 1fr;display:grid}.archivo-listo p{color:var(--text-secondary);margin-top:2px;font-size:14px}.archivo-listo code{font-family:var(--font-mono);color:var(--text-primary)}.archivo-icono{border-radius:var(--radius-md);background:var(--accent-light);width:48px;height:48px;color:var(--accent);place-items:center;display:grid}.archivo-icono svg{width:24px;height:24px}.archivo-acciones{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:10px;display:grid}.archivo-acciones .btn{padding:11px 14px}.frase{margin-bottom:var(--s3)}.frase h2{margin-bottom:var(--s2)}.frase-fichas{flex-wrap:wrap;gap:8px;display:flex}.frase-ficha{border:1px solid var(--border);background:var(--bg-subtle);border-radius:8px;flex-direction:column;align-items:center;gap:4px;min-width:36px;padding:8px 8px 6px;display:flex}.frase-ficha b{font-family:var(--font-mono);font-size:16px;font-weight:500}.frase-ficha code{font-family:var(--font-mono);color:var(--accent);font-size:11px}.bits-leyenda{flex-wrap:wrap;gap:6px;display:flex}.bits-lista{font-family:var(--font-mono);padding:4px 0;font-size:13px;line-height:2;list-style:none;position:relative;overflow-x:auto;-webkit-mask-image:linear-gradient(#000 70%,#0000);mask-image:linear-gradient(#000 70%,#0000)}.bits-lista li{gap:var(--s3);white-space:pre;display:flex}.bits-offset{color:var(--text-muted)}.bits-fila{color:var(--text-primary);letter-spacing:.04em}.bits-pie{padding-top:var(--s2);text-align:center;color:var(--text-muted);font-size:13px}@media (width<=1080px){.huff-metricas{grid-template-columns:repeat(3,1fr)}.huff-metricas>div:nth-child(3){border-right:0}.huff-metricas>div:nth-child(-n+3){border-bottom:1px solid var(--border)}}@media (width<=960px){.proceso-grid{flex-direction:column;align-items:stretch;display:flex}.proceso-columna{display:contents}.panel--arbol{order:1}.panel--letras{order:2}.proceso-grid .code-panel{order:3}.archivo-listo{order:4}}@media (width<=600px){.huff-hero{padding-top:var(--s6)}.enlace-libro{flex-direction:column}.libros{grid-template-columns:minmax(0,1fr)}.huff-metricas{grid-template-columns:repeat(2,1fr)}.huff-metricas>div{padding:14px 16px}.huff-metricas>div:nth-child(3){border-right:1px solid var(--border)}.huff-metricas>div:nth-child(2n){border-right:0}.huff-metricas>div:nth-child(-n+4){border-bottom:1px solid var(--border)}.huff-metricas dd{font-size:24px}.panel{padding:var(--s2)}.vista-barra .btn{margin-left:0}}
