:root{--bg:#06080d;--card:#0d1119;--card2:#111725;--line:#1c2433;--tx:#e8ecf3;--mut:#9aa3b8;--acc:#39ffb6;--acc2:#7c8cff;--r:14px;--mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;--c:var(--acc)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.6 -apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Roboto,sans-serif;min-height:100vh;overflow-x:hidden}
#bg{position:fixed;inset:0;width:100%;height:100%;z-index:-1;opacity:.55;pointer-events:none}
body::before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(900px 500px at 15% -10%,#39ffb61f,transparent 60%),radial-gradient(800px 500px at 100% 0,#7c8cff1c,transparent 60%);pointer-events:none}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:6px}
.wrap{max-width:1080px;margin:0 auto;padding-left:20px;padding-right:20px}
.mono{font-family:var(--mono)}.acc{color:var(--acc)}
/* header */
.top{position:sticky;top:0;z-index:20;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#06080dcc;border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top)}
.topin{display:flex;justify-content:space-between;align-items:center;height:64px}
.logo{font-family:var(--mono);font-size:19px;letter-spacing:-.5px;display:flex;align-items:center;gap:8px}
.logo img{width:40px;height:40px;flex:none;display:block;border-radius:10px}
.logo b{color:var(--acc);text-shadow:0 0 12px #39ffb699}
.dot{width:10px;height:10px;border-radius:3px;background:var(--acc);box-shadow:0 0 14px var(--acc)}
.cur{animation:blink 1s steps(1) infinite;color:var(--acc)}@keyframes blink{50%{opacity:0}}
nav{display:flex;align-items:center;gap:4px}
nav>a,.ddb{padding:8px 12px;border-radius:10px;color:var(--mut);font-size:15px;background:none;border:0;font-family:inherit;cursor:pointer}
nav>a:hover,.ddb:hover,nav>a.on{color:var(--tx);background:#ffffff0d}
nav>a.on{color:var(--acc)}
.btn-acc{display:inline-block;margin-left:8px;padding:9px 16px;border-radius:999px;border:1px solid var(--acc);background:linear-gradient(135deg,#39ffb6,#2ad4ff);color:#04110b;font-weight:700;font-size:14px;cursor:pointer;font-family:inherit;box-shadow:0 0 22px #39ffb644;transition:transform .15s,box-shadow .15s}
.btn-acc:hover{transform:translateY(-1px);box-shadow:0 0 32px #39ffb677}
.dd{position:relative}
.ddm{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);min-width:560px;display:none;grid-template-columns:1fr 1fr;gap:4px;padding:10px;background:#0b0f17f5;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px #000a}
.dd:hover .ddm,.dd.open .ddm,.dd:focus-within .ddm{display:grid}
.ddm::before{content:"";position:absolute;top:-10px;left:0;right:0;height:10px}
.ddi{padding:10px;border-radius:12px;display:flex;gap:10px}
.ddi:hover{background:#ffffff08}
.ddi .ci{flex:none}
.ddi strong{display:block;font-size:14px}.ddi strong:hover{color:var(--c)}
.ddi .subs{display:flex;flex-wrap:wrap;gap:2px 8px;margin-top:2px}
.ddi .subs a{font-size:12.5px;color:var(--mut)}.ddi .subs a:hover{color:var(--c)}
.burger{display:none;background:none;border:0;padding:10px;cursor:pointer}
.burger span{display:block;width:22px;height:2px;background:var(--tx);margin:5px 0;border-radius:2px}
/* category icon */
.ci{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent);border:1px solid color-mix(in srgb,var(--c) 35%,transparent)}
.ci svg{width:22px;height:22px}
.ci.sm{width:30px;height:30px;border-radius:8px}.ci.sm svg{width:17px;height:17px}
/* hero */
.hero{padding:64px 0 36px;text-align:center;position:relative}
.kicker{display:inline-flex;gap:8px;align-items:center;font-family:var(--mono);font-size:13px;color:var(--acc);border:1px solid #39ffb64d;background:#39ffb60f;padding:5px 12px;border-radius:999px}
.hero h1{font-size:clamp(38px,7.4vw,78px);line-height:1.02;margin:22px 0 16px;letter-spacing:-2.5px;font-weight:850}
.hero h1 .g{background:linear-gradient(90deg,#39ffb6,#2ad4ff 50%,#b77cff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 24px #39ffb655)}
.hero p.sub{color:var(--mut);font-size:clamp(16px,2.2vw,19px);max-width:620px;margin:0 auto 28px}
.term{max-width:680px;margin:0 auto;text-align:left;background:#080b12;border:1px solid var(--line);border-radius:16px;box-shadow:0 0 0 1px #39ffb614,0 30px 80px #0009,0 0 60px #39ffb614;overflow:hidden}
.term .bar{display:flex;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:12px;color:var(--mut);align-items:center}
.term .bar i{width:10px;height:10px;border-radius:50%;background:#ff5f57}.term .bar i:nth-child(2){background:#febc2e}.term .bar i:nth-child(3){background:#28c840;margin-right:8px}
.search{display:flex;align-items:center;gap:10px;padding:14px 16px;font-family:var(--mono)}
.search .pr{color:var(--acc);white-space:nowrap}
.search input{flex:1;min-width:0;background:none;border:0;color:var(--tx);font:16px var(--mono);outline:none}
.search input::placeholder{color:#6b7488}
.hint{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px}
.hint button{background:#ffffff06;border:1px solid var(--line);color:var(--mut);border-radius:999px;padding:6px 12px;font:13px var(--mono);cursor:pointer;transition:.15s}
.hint button:hover{border-color:var(--acc);color:var(--acc)}
/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:30px 0 10px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;text-align:center}
.stat b{display:block;font:800 30px/1.1 var(--mono);color:var(--acc);text-shadow:0 0 18px #39ffb655}
.stat small{color:var(--mut);font-size:13px}
h2{font-size:22px;margin:44px 0 16px;display:flex;align-items:center;gap:10px;letter-spacing:-.4px}
h2::before{content:"//";font-family:var(--mono);color:var(--acc);font-size:18px}
h2 .more{margin-left:auto;font-size:14px;color:var(--mut);font-weight:400}
/* cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.card{position:relative;background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--line);border-radius:var(--r);padding:18px;transition:transform .2s,border-color .2s,box-shadow .2s;overflow:hidden;display:block}
.card::after{content:"";position:absolute;inset:auto -40% -60% auto;width:180px;height:180px;background:radial-gradient(var(--c),transparent 70%);opacity:0;transition:opacity .25s}
.card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 60%,transparent);box-shadow:0 12px 40px #0008,0 0 28px color-mix(in srgb,var(--c) 22%,transparent)}
.card:hover::after{opacity:.18}
.card h3{margin:12px 0 4px;font-size:17px}.card small{color:var(--mut)}
.card.dim{opacity:.55}
.feat{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.fcard{display:flex;flex-direction:column;gap:10px;min-height:180px}
.fcard h3{margin:0;font-size:17px;line-height:1.3}
.fcard p{margin:0;color:var(--mut);font-size:14px;flex:1}
.fcard .ft{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.cat-l{font:12px var(--mono);color:var(--c);text-transform:uppercase;letter-spacing:.8px;display:flex;align-items:center;gap:8px}
/* list */
.list{display:flex;flex-direction:column;gap:8px}
.row{display:flex;justify-content:space-between;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--c);border-radius:12px;padding:13px 16px;transition:.15s}
.row:hover{background:var(--card2);transform:translateX(3px);box-shadow:0 0 22px color-mix(in srgb,var(--c) 15%,transparent)}
.row .l{display:flex;gap:12px;align-items:center;min-width:0}
.row h3{margin:0;font-size:15.5px;font-weight:600}.row small{color:var(--mut);font-size:13px}
mark{background:#39ffb633;color:var(--tx);border-radius:3px;padding:0 2px}
/* badges */
.badge{font:700 11px var(--mono);letter-spacing:.6px;padding:4px 9px;border-radius:999px;white-space:nowrap;border:1px solid;display:inline-flex;align-items:center;gap:6px}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
.b-verificado{color:#39ffb6;background:#39ffb614;border-color:#39ffb655}
.b-comunidad{color:#7c8cff;background:#7c8cff14;border-color:#7c8cff55}
.b-documentado{color:#2ad4ff;background:#2ad4ff14;border-color:#2ad4ff55}
.b-probable{color:#ffc53d;background:#ffc53d14;border-color:#ffc53d55}
.b-experimental{color:#ff6b6b;background:#ff6b6b14;border-color:#ff6b6b55}
.st{font:600 11px var(--mono);padding:4px 9px;border-radius:999px;background:#ffffff0d;color:var(--mut);border:1px solid var(--line);white-space:nowrap}
.lvl{font:12px var(--mono);color:var(--mut)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:13px;padding:5px 11px;border-radius:999px;background:#ffffff08;border:1px solid var(--line);color:var(--mut);cursor:default}
a.chip,button.chip{cursor:pointer;font-family:inherit}a.chip:hover,button.chip:hover,.chip.on{border-color:var(--c);color:var(--c)}
/* ficha */
.back{display:inline-block;color:var(--mut);font-size:14px;margin:26px 0 14px;font-family:var(--mono)}.back:hover{color:var(--acc)}
.fhead{position:relative;border:1px solid var(--line);border-radius:20px;padding:26px;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 12%,var(--card)),var(--card) 60%);overflow:hidden}
.fhead::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(var(--c),transparent 70%);opacity:.15}
.fhead h1{font-size:clamp(26px,4.2vw,38px);line-height:1.15;margin:12px 0 10px;letter-spacing:-1px}
.meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:var(--mut);font-size:13px}
.flay{display:grid;grid-template-columns:1fr 280px;gap:20px;margin-top:20px;align-items:start}
.side{position:sticky;top:84px;display:flex;flex-direction:column;gap:12px}
.box{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.box h4{margin:0 0 10px;font:600 12px var(--mono);color:var(--mut);text-transform:uppercase;letter-spacing:1px}
.sec{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;margin-bottom:12px}
.sec h4{margin:0 0 12px;font:700 13px var(--mono);color:var(--c);text-transform:uppercase;letter-spacing:1px}
.sec p{margin:0}.sec ul,.sec ol{margin:0;padding-left:20px}.sec li{margin:6px 0}
.steps{list-style:none;padding:0!important;counter-reset:s}
.steps li{counter-increment:s;position:relative;padding-left:42px;margin:12px 0!important}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font:700 13px var(--mono);color:#04110b;background:var(--c)}
code{font-family:var(--mono);font-size:.88em;background:#000;border:1px solid var(--line);color:#b6ffe0;padding:1px 6px;border-radius:6px;word-break:break-word}
.src li{margin:8px 0}.src a{color:var(--acc2);text-decoration:underline;text-underline-offset:3px}
.demo{border:1px dashed #ffc53d66;border-radius:var(--r);padding:16px;background:#ffc53d08}
.tag{font:700 11px var(--mono);color:#ffc53d}
.btn{background:var(--card2);border:1px solid var(--line);color:var(--tx);padding:9px 14px;border-radius:10px;cursor:pointer;font:14px inherit;margin:4px 6px 4px 0}
.btn:hover,.btn.on{border-color:var(--acc);color:var(--acc)}
textarea,.modal input{width:100%;background:#05070b;border:1px solid var(--line);color:var(--tx);border-radius:10px;padding:10px 12px;font:15px inherit;margin:8px 0}
textarea{min-height:70px;resize:vertical}
.cm{border-top:1px solid var(--line);padding:10px 0;font-size:14px}.cm small{color:var(--mut)}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:18px 0}
.kv div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}.kv small{display:block;color:var(--mut);font-size:12px}
.empty{color:var(--mut);padding:24px;text-align:center;border:1px dashed var(--line);border-radius:12px}
.soon{text-align:center;padding:70px 0}.soon h1{font-size:42px;margin:14px 0}
.glitch{font-family:var(--mono);color:var(--acc);text-shadow:2px 0 #ff3d6e,-2px 0 #2ad4ff}
.loading{padding:120px 0;text-align:center;font-family:var(--mono);color:var(--mut)}
.ctitle{display:flex;align-items:center;gap:14px;margin:4px 0 10px}.ctitle h1{margin:0;font-size:34px;letter-spacing:-1px}
.lev{display:grid;gap:12px}.lev .box{display:grid;grid-template-columns:240px 1fr;gap:14px;align-items:center}
footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:var(--mut);font-size:13px;padding-top:40px;padding-bottom:max(40px,env(safe-area-inset-bottom));margin-top:60px;border-top:1px solid var(--line)}
footer a{color:var(--tx)}
/* modal */
.modal{position:fixed;inset:0;z-index:50;background:#000b;backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px}
.modal[hidden]{display:none}
.mbox{width:100%;max-width:420px;background:linear-gradient(180deg,#0f1522,#0a0e16);border:1px solid #39ffb64d;border-radius:20px;padding:24px;box-shadow:0 0 60px #39ffb622,0 30px 80px #000;position:relative;animation:pop .2s ease-out}
@keyframes pop{from{transform:scale(.96);opacity:0}}
.mbox h3{margin:0 0 4px;font-size:22px}
.tabs{display:flex;background:#05070b;border:1px solid var(--line);border-radius:12px;padding:4px;margin:16px 0}
.tabs button{flex:1;background:none;border:0;color:var(--mut);padding:8px;border-radius:9px;cursor:pointer;font:600 14px inherit}
.tabs button.on{background:var(--card2);color:var(--acc)}
.mbox label{font-size:13px;color:var(--mut)}
.mbox .x{position:absolute;top:12px;right:14px;background:none;border:0;color:var(--mut);font-size:22px;cursor:pointer}
.note{font-size:12.5px;color:#ffc53d;background:#ffc53d0f;border:1px solid #ffc53d40;border-radius:10px;padding:10px 12px;margin-top:12px}
.mbox .btn-acc{width:100%;margin:10px 0 0;padding:12px}
.oauth{width:100%;margin-top:8px;background:#ffffff08;border:1px solid var(--line);color:var(--mut);padding:11px;border-radius:999px;font:14px inherit;cursor:not-allowed}
@media (max-width:860px){
 .burger{display:block}
 nav{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;align-items:stretch;background:#06080df7;border-bottom:1px solid var(--line);padding:10px 16px 16px;max-height:calc(100vh - 64px);overflow:auto}
 nav.open{display:flex}
 .ddm{position:static;transform:none;min-width:0;grid-template-columns:1fr;display:grid;background:none;border:0;box-shadow:none;padding:0 0 0 6px}
 .ddb{text-align:left}.btn-acc{margin:10px 0 0;text-align:center}
 .flay{grid-template-columns:1fr}.side{position:static}
 .stats{grid-template-columns:repeat(2,1fr)}
 .lev .box{grid-template-columns:1fr}
}
@media (max-width:520px){.hero{padding-top:40px}.search .pr{display:none}.row{flex-direction:column;align-items:flex-start}.fhead{padding:20px}.sec{padding:16px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}#bg{display:none}}

.ngrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.ncard{border-top:3px solid var(--c);display:flex;flex-direction:column;gap:8px}.ncard .cat-l{color:var(--c)}.ncard h3{margin:0}.ncard p{margin:0;color:var(--mut);font-size:14px}.nmeta{display:flex;justify-content:space-between;gap:8px}.kvs{display:flex;gap:16px;flex-wrap:wrap;font-size:14px}.kvs small{display:block;color:var(--mut);font-size:11px;text-transform:uppercase}.nsrc{font-size:12px}.nsrc a{color:var(--c)}.ncard .ft{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:auto}
/* v0.3 · plataformas, chips compactos, migas */
.plats{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:10px}
.plat{display:flex;align-items:center;gap:12px;padding:12px 14px;background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--line);border-left:3px solid var(--c);border-radius:12px;transition:.15s;min-width:0}
.plat:hover{border-color:color-mix(in srgb,var(--c) 60%,transparent);box-shadow:0 0 22px color-mix(in srgb,var(--c) 18%,transparent)}
.plat .ci{flex:none}.plat .pt{flex:1;min-width:0;display:flex;flex-direction:column}
.plat b{font-size:15.5px}.plat small{color:var(--mut);font-size:12.5px;line-height:1.35}
.plat .ps{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}.plat .ps i{font:normal 11px var(--mono);color:var(--c);background:color-mix(in srgb,var(--c) 10%,transparent);border-radius:6px;padding:1px 6px}
.plat .pn{font:800 22px var(--mono);color:var(--c);min-width:34px;text-align:right}
.plat.dim{opacity:.5}
.probs{display:flex;flex-wrap:wrap;gap:8px}
.chip .n{font:11px var(--mono);opacity:.75;margin-left:2px}.chip.off{opacity:.45}
.fbar{display:flex;flex-direction:column;gap:8px;margin:6px 0 4px}
.chips.sm .chip{font-size:12px;padding:4px 10px}.chips .sep{width:1px;background:var(--line);margin:0 4px}
.crumbs{font:13px var(--mono);color:var(--mut);margin:24px 0 12px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.crumbs a:hover{color:var(--acc)}
.bkb{background:none;border:1px solid var(--line);color:var(--mut);border-radius:8px;padding:3px 9px;font:13px var(--mono);cursor:pointer;margin-right:6px}.bkb:hover{color:var(--acc);border-color:var(--acc)}
.cdesc{margin:2px 0 0;color:var(--mut);font-size:14px}
.sec li a,.sec p a{color:var(--acc2);text-decoration:underline}
@media (max-width:620px){
 .wrap{padding-left:14px;padding-right:14px}
 .hero{padding:28px 0 16px}.hero h1{letter-spacing:-1.5px;margin:16px 0 10px}.hero p.sub{font-size:15px;margin-bottom:18px}
 .hint{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding-bottom:4px;scrollbar-width:none}.hint button{flex:none}
 .stats{gap:8px;margin:18px 0 0}.stat{padding:10px}.stat b{font-size:22px}.stat small{font-size:11.5px}
 h2{font-size:18px;margin:30px 0 12px}
 .plats{grid-template-columns:1fr;gap:8px}.plat{padding:10px 12px}.plat .ci{width:34px;height:34px}.plat small{display:none}
 .chips.scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-14px;padding-right:14px}.chips.scroll::-webkit-scrollbar,.hint::-webkit-scrollbar{display:none}.chips.scroll .chip{flex:none}
 .feat{grid-template-columns:1fr}.fcard{min-height:0}
 .row{flex-direction:row;align-items:center;padding:11px 12px}.row .badge{display:none}.row h3{font-size:14.5px}
 .ctitle h1{font-size:26px}.fhead h1{font-size:24px}
 .steps li{padding-left:36px}.steps li::before{width:24px;height:24px}
 code{font-size:.82em}
}
/* v0.4 · botón Explorar + panel (megamenú / hoja inferior) */
.xbtn{position:relative;display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;border:1px solid #39ffb680;background:linear-gradient(135deg,#39ffb61f,#7c8cff1f);color:var(--tx);font:700 14px inherit;cursor:pointer;overflow:hidden;isolation:isolate;transition:transform .2s,box-shadow .2s,border-color .2s}
.xbtn::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,#39ffb6,#2ad4ff,#b77cff,#ff3d6e,#39ffb6);background-size:300% 100%;opacity:0;transition:opacity .25s;animation:xflow 4s linear infinite}
.xbtn:hover,.xbtn[aria-expanded=true]{transform:translateY(-1px) scale(1.03);border-color:transparent;color:#04110b;box-shadow:0 0 26px #39ffb666,0 0 50px #b77cff33}
.xbtn:hover::before,.xbtn[aria-expanded=true]::before{opacity:1}
.xbtn:active{transform:scale(.97)}
.xg{display:inline-block;color:var(--acc);transition:transform .4s}.xbtn:hover .xg,.xbtn[aria-expanded=true] .xg{color:inherit;transform:rotate(180deg)}
@keyframes xflow{to{background-position:300% 0}}
.topin .xbtn{margin-left:auto;margin-right:8px}
.xrow{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;margin-top:20px}
.xrow .more{color:var(--mut);font-size:14px}.xrow .more:hover{color:var(--acc)}
.xbtn.big{padding:13px 22px;font-size:16px;box-shadow:0 0 30px #39ffb622}
.feat.row1{grid-template-columns:repeat(3,1fr)}
html.xlock,html.xlock body{overflow:hidden}
.xp{position:fixed;inset:0;z-index:60}
.xp-bd{position:absolute;inset:0;background:#02040acc;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .25s}
.xp.open .xp-bd{opacity:1}
.xp-box{position:absolute;left:50%;top:76px;width:min(1040px,calc(100% - 32px));max-height:calc(100vh - 100px);overflow:auto;overscroll-behavior:contain;transform:translate(-50%,-14px) scale(.98);opacity:0;transition:transform .28s cubic-bezier(.2,.9,.3,1.2),opacity .2s;background:linear-gradient(180deg,#0f1522f7,#090d15f7);border:1px solid #39ffb640;border-radius:22px;padding:18px 18px 20px;box-shadow:0 30px 90px #000c,0 0 60px #39ffb61c}
.xp.open .xp-box{transform:translate(-50%,0) scale(1);opacity:1}
.xp-grab{display:none}
.xp-h{display:flex;align-items:center;gap:12px;margin:0 2px 14px}.xp-h h2{margin:0;font-size:20px}.xp-h h2::before{content:"✦";color:var(--acc)}
.xp-x{margin-left:auto;width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:#ffffff08;color:var(--tx);font-size:22px;cursor:pointer;transition:.2s}.xp-x:hover{background:#ff3d6e;border-color:#ff3d6e;transform:rotate(90deg)}
.xp-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;align-items:start}
.xi{border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 7%,var(--card)),var(--card));overflow:hidden;opacity:0;transform:translateY(12px);transition:opacity .3s calc(var(--i)*45ms + 60ms),transform .35s calc(var(--i)*45ms + 60ms) cubic-bezier(.2,.9,.3,1.2),border-color .2s,box-shadow .2s}
.xp.open .xi,.xp.open .xq{opacity:1;transform:none}
.xi:hover,.xi.on{border-color:color-mix(in srgb,var(--c) 70%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 30%,transparent),0 10px 34px color-mix(in srgb,var(--c) 22%,transparent)}
.xh{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;transition:background .25s,transform .2s}
.xh:focus-visible{outline:2px solid var(--c);outline-offset:-2px;border-radius:16px}
.xh:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--c) 22%,transparent),transparent 75%)}
.xh:active{transform:scale(.985)}
.xh .ci{transition:transform .25s,box-shadow .25s}.xh:hover .ci,.xi.on .ci{transform:scale(1.1) rotate(-4deg);box-shadow:0 0 18px color-mix(in srgb,var(--c) 60%,transparent);background:color-mix(in srgb,var(--c) 26%,transparent)}
.xt{flex:1;min-width:0;display:flex;flex-direction:column}.xt b{font-size:15.5px;transition:color .2s}.xt small{color:var(--mut);font-size:12.5px;line-height:1.3}
.xh:hover .xt b,.xi.on .xt b{color:var(--c)}
.xn{font:800 20px var(--mono);color:var(--c);text-shadow:0 0 14px color-mix(in srgb,var(--c) 55%,transparent)}
.xc{color:var(--mut);transition:transform .3s,color .2s}.xi.on .xc{transform:rotate(180deg);color:var(--c)}
.xs{display:flex;flex-wrap:wrap;gap:7px;padding:2px 14px 14px}
.xa{display:inline-flex;gap:6px;align-items:center;font-size:13.5px;padding:7px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--c) 35%,transparent);background:color-mix(in srgb,var(--c) 8%,transparent);color:var(--tx);animation:xin .3s calc(var(--k,0)*35ms) both;transition:background .2s,color .2s,transform .2s,box-shadow .2s}
.xa span{font:11px var(--mono);opacity:.75}
.xa:hover,.xa:focus-visible{background:var(--c);color:#05070b;transform:translateY(-2px);box-shadow:0 6px 20px color-mix(in srgb,var(--c) 45%,transparent)}
.xa.all{font-weight:700;border-color:var(--c)}.xa.off{opacity:.45}
@keyframes xin{from{opacity:0;transform:translateY(6px) scale(.96)}}
.xq{grid-column:1/-1;opacity:0;transform:translateY(12px);transition:opacity .3s calc(var(--i)*45ms + 60ms),transform .35s calc(var(--i)*45ms + 60ms);padding:6px 2px 0}
.xq small{font:12px var(--mono);color:var(--mut);text-transform:uppercase;letter-spacing:1px}
.xq div{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}
.xq a{font-size:13px;padding:6px 11px;border-radius:999px;border:1px solid var(--line);color:var(--mut);transition:.2s}.xq a:hover{color:#05070b;background:linear-gradient(90deg,#39ffb6,#2ad4ff);border-color:transparent;transform:translateY(-2px)}
@media (max-width:760px){
 .topin .xbtn{padding:7px 12px;font-size:13px}
 .feat.row1{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:82%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-right:-14px;padding-right:14px}.feat.row1>*{scroll-snap-align:start}
 .xt small{display:none}
}
@media (prefers-reduced-motion:reduce){.xp-box,.xi,.xq,.xa,.xp-bd{transition:none!important;animation:none!important}.xbtn::before{animation:none}.xi,.xq{opacity:1;transform:none}}
.xs[hidden],.xp[hidden]{display:none!important}
/* v0.5 · ficha pro: datos, índice, pasos con progreso, copiar, feedback, paleta */
.facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.fact{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--mut);background:#00000040;border:1px solid var(--line);border-radius:10px;padding:6px 10px}.fact b{color:var(--tx)}.fact small{color:var(--mut)}
.dots{display:inline-flex;gap:3px}.dots b{width:7px;height:12px;border-radius:2px;background:#ffffff22}
.d-basico .dots b:nth-child(1),.d-intermedio .dots b:nth-child(-n+2),.d-avanzado .dots b{background:var(--c);box-shadow:0 0 8px var(--c)}
.toc{position:sticky;top:64px;z-index:15;display:flex;gap:6px;align-items:center;overflow-x:auto;scrollbar-width:none;margin:14px -4px 0;padding:8px 4px;background:#06080de6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.toc::-webkit-scrollbar{display:none}.toc-t{font:11px var(--mono);color:var(--mut);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;margin-right:4px}
.toc a{flex:none;font-size:13px;padding:5px 11px;border-radius:999px;color:var(--mut);border:1px solid transparent;transition:.2s}
.toc a:hover{color:var(--tx);background:#ffffff0a}.toc a.on{color:#05070b;background:var(--c);box-shadow:0 0 16px color-mix(in srgb,var(--c) 50%,transparent)}
.sec{scroll-margin-top:130px}.sec:focus{outline:none}
.prog{display:flex;align-items:center;gap:12px;margin:-2px 0 6px}.pbar{flex:1;height:8px;border-radius:9px;background:#ffffff10;overflow:hidden}
.pbar i{display:block;height:100%;width:0;border-radius:9px;background:linear-gradient(90deg,var(--c),#2ad4ff);box-shadow:0 0 14px var(--c);transition:width .4s cubic-bezier(.2,.9,.3,1)}
#pbt{font:12px var(--mono);color:var(--mut);white-space:nowrap}.sec.complete #pbt{color:var(--acc)}
.sec.complete{border-color:color-mix(in srgb,var(--acc) 50%,transparent);box-shadow:0 0 30px #39ffb61a}
.steps.chk li{padding-left:0;display:flex;gap:12px;align-items:flex-start}.steps.chk li::before{display:none}
.ck{position:relative;flex:none;cursor:pointer;margin-top:1px}.ck input{position:absolute;opacity:0;width:28px;height:28px;margin:0;cursor:pointer}
.box2{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;border:2px solid var(--c);font:700 13px var(--mono);color:var(--c);transition:.2s;counter-increment:none}
.steps.chk li{counter-increment:s}.box2::after{content:counter(s)}
.ck input:checked+.box2{background:var(--c);color:#04110b;transform:scale(1.06);box-shadow:0 0 14px var(--c)}.ck input:checked+.box2::after{content:"✓"}
.ck input:focus-visible+.box2{outline:2px solid var(--acc);outline-offset:2px}
.stx{flex:1;min-width:0;transition:opacity .2s}.steps.chk li.done .stx{opacity:.55;text-decoration:line-through;text-decoration-color:#ffffff40}
.btn.sm{font-size:12px;padding:5px 10px;margin-top:6px;color:var(--mut)}
code.hc{border-top-right-radius:0;border-bottom-right-radius:0}
.cpy{display:inline-grid;place-items:center;vertical-align:baseline;height:1.65em;min-width:1.9em;margin-left:-1px;border:1px solid var(--line);border-left:0;border-radius:0 6px 6px 0;background:#ffffff0d;color:var(--mut);font-size:.85em;cursor:pointer;transition:.15s;padding:0 5px}
.cpy:hover{background:var(--c);color:#05070b}.cpy.ok{background:var(--acc);color:#04110b}
#toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translate(-50%,20px);opacity:0;z-index:80;background:#0f1522;border:1px solid #39ffb666;color:var(--tx);padding:10px 16px;border-radius:999px;font-size:14px;box-shadow:0 10px 40px #000a,0 0 24px #39ffb633;transition:.25s;pointer-events:none}#toast.on{opacity:1;transform:translate(-50%,0)}
.fb .fbq{display:flex;gap:10px;flex-wrap:wrap}
.fbb{flex:1;min-width:140px;padding:12px 16px;border-radius:14px;border:1px solid var(--line);background:var(--card2);color:var(--tx);font:600 15px inherit;cursor:pointer;transition:transform .15s,background .2s,box-shadow .2s,border-color .2s}
.fbb:hover{transform:translateY(-2px);border-color:var(--acc);box-shadow:0 8px 24px #39ffb622}.fbb.on{background:linear-gradient(135deg,#39ffb6,#2ad4ff);color:#04110b;border-color:transparent}
.fbb.no:hover{border-color:#ff6b6b;box-shadow:0 8px 24px #ff6b6b22}.fbb.no.on{background:#ff6b6b;color:#1a0505}
.fbm{min-height:1.2em;margin:10px 0 0!important;color:var(--mut)}.fb .tag{display:block;margin-top:10px;font-weight:400}
.spark{position:fixed;width:7px;height:7px;border-radius:50%;z-index:90;pointer-events:none;animation:spk .7s ease-out forwards}@keyframes spk{to{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}
.kbtn{display:inline-flex;align-items:center;gap:8px;margin-left:auto;margin-right:8px;padding:7px 10px;border-radius:10px;border:1px solid var(--line);background:#ffffff08;color:var(--mut);font:14px inherit;cursor:pointer;transition:.2s}.kbtn:hover{color:var(--tx);border-color:var(--acc);box-shadow:0 0 18px #39ffb633}
.topin .xbtn{margin-left:0}
kbd{font:11px var(--mono);padding:2px 6px;border-radius:5px;border:1px solid var(--line);border-bottom-width:2px;background:#0b0f17;color:var(--mut)}
.pal{position:fixed;inset:0;z-index:70}.pal[hidden]{display:none}
.pal-bd{position:absolute;inset:0;background:#02040acc;backdrop-filter:blur(6px)}
.pal-box{position:absolute;left:50%;top:12vh;width:min(640px,calc(100% - 24px));transform:translate(-50%,-8px) scale(.98);opacity:0;transition:.18s;background:linear-gradient(180deg,#101624,#0a0e16);border:1px solid #39ffb655;border-radius:18px;box-shadow:0 30px 90px #000d,0 0 50px #39ffb622;overflow:hidden}
.pal.open .pal-box{transform:translate(-50%,0) scale(1);opacity:1}
.pal-in{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);color:var(--acc);font-size:20px}
.pal-in input{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--tx);font:17px inherit}
#pall{list-style:none;margin:0;padding:6px;max-height:min(56vh,440px);overflow:auto}
.pg{font:11px var(--mono);color:var(--mut);text-transform:uppercase;letter-spacing:1px;padding:10px 10px 4px}
.po{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:12px;cursor:pointer;transition:background .12s}
.po[aria-selected=true]{background:linear-gradient(90deg,color-mix(in srgb,var(--c,#39ffb6) 22%,transparent),transparent);box-shadow:inset 3px 0 0 var(--c,#39ffb6)}
.pt2{flex:1;min-width:0;display:flex;flex-direction:column}.pt2 b{font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pt2 small{color:var(--mut);font-size:12px}
.pe{color:var(--mut);opacity:0}.po[aria-selected=true] .pe{opacity:1}
.pempty{padding:24px;text-align:center;color:var(--mut)}
.pal-f{display:flex;gap:16px;padding:9px 14px;border-top:1px solid var(--line);font-size:12px;color:var(--mut)}
@media (min-width:861px){.flay .side{top:132px}}
@media (max-width:760px){.kbtn kbd{display:none}.kbtn{padding:7px 9px;margin-right:6px}.pal-box{top:10px}.pal-f{display:none}.toc{top:64px;margin:12px -14px 0;padding:8px 14px}.fact{font-size:12px;padding:5px 8px}}
@media (prefers-reduced-motion:reduce){.pbar i,.pal-box,#toast{transition:none!important}}
.gcn{flex-basis:100%;font-size:12px;color:var(--mut)}
/* v0.5 Manuales y guías */
.mbtn{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;margin-right:8px;border-radius:10px;border:1px solid #39ffb655;background:linear-gradient(135deg,#39ffb61a,#7c8cff14);color:var(--tx);font-size:14px;font-weight:600;transition:.2s}
.mbtn:hover,.mbtn:focus-visible{border-color:var(--acc);box-shadow:0 0 18px #39ffb633;transform:translateY(-1px)}
@media(max-width:560px){.mbt{display:none}.mbtn{padding:7px 9px;margin-right:6px}}
.acw{position:relative;max-width:680px;margin:0 auto;z-index:20}
.ac{position:absolute;left:0;right:0;top:6px;list-style:none;margin:0;padding:6px;background:#0b0f18;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px #000c;text-align:left}
.ac li{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;cursor:pointer}
.ac li b{display:block;font-weight:600}.ac li small{color:var(--mut);font-size:12px}
.ac li[aria-selected=true],.ac li:hover{background:color-mix(in srgb,var(--c) 14%,transparent)}
.grp{margin:22px 0}.grp h2{display:flex;align-items:center;gap:10px;font-size:18px}
.gt{font-size:12px;text-transform:uppercase;letter-spacing:.08em;padding:3px 9px;border-radius:999px;background:#39ffb61a;color:var(--acc);border:1px solid #39ffb640}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin:8px 0 10px}
.mlink{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--tx);transition:.2s}
a.mlink:hover,a.mlink:focus-visible{border-color:var(--c);box-shadow:0 0 0 1px var(--c),0 10px 30px #0008;transform:translateY(-2px)}
.mlink b{display:block;font-size:14px}.mlink small{color:var(--mut);font-size:12px}.mlink .ext{margin-left:auto;color:var(--c)}
.mlink.none{opacity:.55;border-style:dashed}.mlink.none small{color:#ffc53d}
.mi{font-size:20px;width:28px;text-align:center}
.apn{font-size:12px;color:var(--mut);white-space:nowrap}
.apgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:10px 0 24px}
.apcard{display:flex;flex-direction:column;gap:6px;transition:.2s}
.apcard:hover,.apcard:focus-visible{border-color:var(--c);box-shadow:0 0 30px color-mix(in srgb,var(--c) 25%,transparent);transform:translateY(-3px)}
.apcard h3{margin:4px 0 0;font-size:16px}.apcard small{color:var(--mut)}
.lks{display:flex;gap:4px;align-items:center;margin-top:auto;padding-top:6px}.lks i{font-style:normal;font-size:13px}.lks i.n{opacity:.2;filter:grayscale(1)}.lks span{margin-left:auto;font-size:12px;color:var(--mut)}
.msearch{max-width:520px;margin:18px auto 0;border:1px solid var(--line);border-radius:12px;background:#080b12}
.chips .chip.on{border-color:var(--acc);color:var(--acc)}
a.chip:hover{border-color:var(--c);color:var(--tx)}
.aph{display:flex;gap:18px;align-items:flex-start;margin:10px 0 18px}.aph h1{margin:6px 0}
.apic .ci{width:64px;height:64px;border-radius:18px}.apic .ci svg{width:34px;height:34px}
.ap section{margin:26px 0}.apnote{color:#ffc53d;font-size:14px}.apnote.small{color:var(--mut);font-size:12px}
@media(max-width:560px){.aph{flex-direction:column;gap:8px}.mgrid{grid-template-columns:1fr}}
.xman{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;border:1px solid #39ffb655;background:linear-gradient(135deg,#39ffb61f,#7c8cff1a);color:var(--tx);margin-bottom:10px;transition:.25s}
.xman:hover,.xman:focus-visible{box-shadow:0 0 28px #39ffb640;transform:translateY(-2px) scale(1.01)}
.xman .xt{flex:1}.xman small{display:block;color:var(--mut);font-size:12px}

/* v0.8 portada: tarjetas de noticias + chips */
.nbox{margin:6px auto 0;max-width:980px}
.nbh{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 10px}
.nbh h2{margin:0}.nball{font-size:14px;white-space:nowrap}
.nbl{display:grid;gap:12px;grid-template-columns:1fr}
@media(min-width:720px){.nbl{grid-template-columns:repeat(3,1fr)}}
.nbc{display:flex;flex-direction:column;background:rgba(14,19,30,.78);border:1px solid rgba(255,255,255,.08);border-top:2px solid var(--c);border-radius:14px;overflow:hidden;color:inherit;text-decoration:none;min-width:0}
.nbc:hover,.nbc:focus-visible{border-color:var(--c)}
.nbi{display:block;aspect-ratio:1.91/1;background:#0b111c;overflow:hidden}
.nbi img{width:100%;height:100%;object-fit:cover;display:block}
.nbf{display:flex;width:100%;height:100%;align-items:center;justify-content:center;color:var(--c);background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--c) 22%,transparent),transparent 70%)}
.nbf svg{width:56px;height:56px}
.nbt{display:flex;flex-direction:column;gap:5px;padding:11px 13px 13px}
.nbm{font-size:12px;opacity:.8;font-family:ui-monospace,monospace}.nbm b{color:var(--c);font-weight:600}
.nbt strong{font-size:15px;line-height:1.3}
.nbr{font-size:13.5px;line-height:1.45;color:var(--mut,#9aa7b8);overflow-wrap:anywhere}
.nbcr{font-size:11px;opacity:.55}
.hchips{display:flex;gap:8px;overflow-x:auto;padding:16px 0 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.hchips::-webkit-scrollbar{display:none}.hchips .chip{flex:none}
@media(min-width:720px){.hchips{flex-wrap:wrap;justify-content:center}}
.ncard.nhl{outline:2px solid var(--c,#2ad4ff);outline-offset:3px}

/* v0.9 guías en español + marca de idioma */
.lang{font-size:.78em;color:var(--mut,#9aa7b8);font-weight:400;white-space:nowrap}
.guia h3{font-size:15px;margin:18px 0 8px;color:var(--c,#2ad4ff)}
.guia ul{padding-left:20px}.guia li{margin:4px 0}
.specs{display:grid;gap:6px;margin:0;grid-template-columns:1fr}
@media(min-width:720px){.specs{grid-template-columns:1fr 1fr}}
.specs div{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:8px 10px}
.specs dt{font-size:12px;opacity:.7}.specs dd{margin:2px 0 0;font-size:14px}
.mlink.es{border-color:rgba(57,255,182,.45)}

footer .tg{opacity:.9}
/* Herramientas (/herramientas/) */
.tool fieldset{border:1px solid var(--line);border-radius:var(--r);background:var(--card);margin:0 0 14px;padding:14px 16px}
.tool legend{padding:0 6px;font-weight:700}.tool label{display:inline-flex;gap:8px;align-items:center;margin:6px 16px 6px 0;cursor:pointer}
.tool select,.tool input[type=number]{background:var(--card2);color:var(--tx);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:inherit}
.tool .res{border:1px solid var(--acc);border-radius:var(--r);background:var(--card2);padding:16px 18px;margin:18px 0}
.tool .res h2{margin-top:0}.tool .big{font:700 40px/1.1 var(--mono);color:var(--acc)}.tool .warn{color:#ffcf5c}.tool .tip{margin:8px 0}
.tool table{border-collapse:collapse;width:100%;font-size:14px}.tool td,.tool th{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left}
.tlist{list-style:none;padding:0}.tlist li{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:14px 16px;margin:0 0 12px}
.tool a:not(.btn-acc):not(.back){color:var(--acc);text-decoration:underline;text-underline-offset:2px}
/* Variables de guía (vars.js) */
.vars{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:flex-end;border:1px dashed var(--acc);border-radius:var(--r);background:var(--card);padding:12px 14px;margin:0 0 16px}
.vars-t{width:100%;font-family:var(--mono);color:var(--acc);font-size:14px}.vars label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--mut)}
.vars input{background:var(--card2);color:var(--tx);border:1px solid var(--line);border-radius:10px;padding:7px 10px;font:14px var(--mono);width:170px}
.vars small{width:100%;color:var(--mut);font-size:12px}code.vset{outline:1px solid #39ffb655;border-radius:4px}
/* Comandos del buscador (/random, /stack, easter egg) */
.cmdbox{font-family:var(--mono);border:1px solid var(--line);border-radius:var(--r);background:#05070b;padding:16px 18px;margin:12px 0;white-space:pre-wrap;line-height:1.55;font-size:14px}
.cmdbox .ok{color:var(--acc)}.cmdbox .er{color:#ff6b7a}.cmdbox .mu{color:var(--mut)}
/* Impresión: cada ficha en una hoja A4 limpia, sin menú ni pie, con la URL */
@media print{
 @page{size:A4;margin:11mm 12mm}
 html,body{background:#fff!important;color:#000!important;font:9.6pt/1.38 "Inter",Arial,sans-serif!important}
 body::before,#bg,header.top,footer,#nav,.toc,.cpy,.bkb,.crumbs,.vars,#s-feedback,.prog,#rst,.ck,#toast,#modal,#pal,#xp,.acw,.side .box:nth-child(n+3),.apnote .btn-acc,.btn-acc,.xrow,.hint,.mgrid .mi{display:none!important}
 *{box-shadow:none!important;text-shadow:none!important;animation:none!important;transition:none!important}
 a{color:#000!important;text-decoration:none!important}
 .wrap,main{max-width:none!important;padding:0!important;margin:0!important}
 .ficha,.ap,main.seo{color:#000}
 .ficha h1,.ap h1,main.seo h1{font-size:15pt!important;line-height:1.2!important;margin:2pt 0 4pt!important;color:#000!important;-webkit-text-fill-color:#000!important;background:none!important}
 .fhead,.aph{margin:0 0 6pt!important;padding:0!important;border:0!important;background:none!important}
 .facts,.meta{gap:6pt!important;margin:2pt 0!important}.fact,.badge,.chip,.lvl{border:1px solid #999!important;background:none!important;color:#000!important;padding:0 4pt!important;font-size:8pt!important}
 .flay{display:block!important}.side{display:flex!important;gap:10pt;margin-top:4pt!important}.side .box{border:1px solid #bbb!important;background:none!important;padding:4pt 6pt!important;flex:1}
 .sec,.ap section,main.seo h2{break-inside:avoid-page;margin:0 0 5pt!important;padding:0!important;border:0!important;background:none!important}
 .sec h4,.ap h2,.ap h3,main.seo h2{font-size:10.5pt!important;margin:5pt 0 2pt!important;color:#000!important}
 p,li{margin:0 0 2pt!important}ol,ul{margin:0 0 3pt!important;padding-left:14pt!important}
 .steps li,.steps.chk li{padding:0!important;margin:0 0 2pt!important;border:0!important;background:none!important;display:list-item!important}.steps.chk{list-style:decimal!important}.stx{display:inline}
 code{background:#f1f1f1!important;color:#000!important;border:1px solid #ddd!important;font-size:8.6pt!important;padding:0 2pt!important;white-space:pre-wrap!important;word-break:break-all}
 .src li{font-size:8.2pt!important}.src a::after{content:" — " attr(href);color:#444;word-break:break-all}
 .ficha::after,.ap::after,main.seo::after{content:"Friki Labs · " attr(data-url);display:block;margin-top:6pt;padding-top:4pt;border-top:1px solid #999;font:8.5pt monospace;color:#000}
 .ap .apgrid,.ap .chips,.ap .list{display:none!important}
 ol.steps,ol.steps.chk{list-style:decimal outside!important;padding-left:16pt!important}.steps li::before{display:none!important}
}
.tool input[type=text]{background:var(--card2);color:var(--tx);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:inherit}

/* Explorar: rejilla de tarjetas (2 columnas en móvil, 3-4 en escritorio) sobre fondo opaco */
.xp-bd{background:#04060bf2!important;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}
.xp-box{background:#080b12!important;border:1px solid var(--line)}
.xp-list{display:block!important}
.xgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.xcard{position:relative;display:flex;flex-direction:column;gap:8px;min-height:148px;padding:16px 14px 14px;border-radius:18px;border:1px solid color-mix(in srgb,var(--c) 32%,var(--line));background:radial-gradient(120% 90% at 0% 0%,color-mix(in srgb,var(--c) 16%,transparent),transparent 60%),var(--card);color:var(--tx);text-decoration:none;opacity:0;transform:translateY(10px);transition:opacity .3s calc(var(--i)*35ms + 40ms),transform .3s calc(var(--i)*35ms + 40ms),box-shadow .2s,border-color .2s,background .2s;-webkit-tap-highlight-color:transparent}
.xp.open .xcard{opacity:1;transform:none}
.xe{font-size:34px;line-height:1;width:54px;height:54px;display:grid;place-items:center;border-radius:14px;background:color-mix(in srgb,var(--c) 18%,#0000);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 40%,transparent);transition:transform .2s,box-shadow .2s}
.xct{display:flex;flex-direction:column;gap:3px;min-width:0}.xct b{font-size:16px;line-height:1.2}
.xct small{color:#b4bccd;font-size:12.5px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.xcn{position:absolute;top:14px;right:14px;font:800 15px var(--mono);color:var(--c)}
.xcard:hover,.xcard:focus-visible,.xcard:active{border-color:var(--c);box-shadow:0 0 0 1px var(--c),0 0 28px color-mix(in srgb,var(--c) 45%,transparent);background:radial-gradient(120% 90% at 0% 0%,color-mix(in srgb,var(--c) 26%,transparent),transparent 65%),var(--card2)}
.xcard:hover .xe,.xcard:focus-visible .xe,.xcard:active .xe{transform:scale(1.08) rotate(-4deg);box-shadow:inset 0 0 0 1px var(--c),0 0 22px color-mix(in srgb,var(--c) 60%,transparent)}
.xcard:focus-visible{outline:3px solid var(--c);outline-offset:3px}
.xcard:hover .xct b,.xcard:focus-visible .xct b{color:var(--c)}
.xp-x:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
.xq{margin-top:16px}
@media (max-width:980px){.xgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){
 .xp-box{inset:0!important;left:0!important;top:0!important;width:100%!important;max-height:none!important;height:100%!important;border-radius:0!important;border:0!important;transform:translateY(16px)!important;padding:14px 14px calc(18px + env(safe-area-inset-bottom))!important;transition:transform .3s cubic-bezier(.2,.9,.25,1),opacity .25s!important}
 .xp.open .xp-box{transform:none!important}
 .xp-h{position:sticky;top:-14px;z-index:2;background:#080b12;padding:10px 2px;margin:-14px 0 10px!important}
 .xgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .xcard{min-height:132px;padding:14px 12px 12px}
 .xe{font-size:28px;width:46px;height:46px}
 .xct b{font-size:15px}
}
@media (prefers-reduced-motion:reduce){.xcard{transition:none!important;opacity:1;transform:none}}
/* ===== /cursos/ ===== */
.cursos .cgrid,.cursos .ruta,.cursos .senales{list-style:none;padding:0;margin:18px 0}
.cursos .cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.cursos .ccard{--c:var(--acc);border:1px solid var(--line);border-left:4px solid var(--c);border-radius:var(--r);background:var(--card);padding:14px 16px}
.cursos .ccard h2{font-size:17px;margin:6px 0}.cursos .ccard[hidden]{display:none}
.cursos .cmeta{margin:0;display:flex;flex-wrap:wrap;gap:6px}
.cursos .cpill{--c:var(--line);display:inline-block;font:600 12px/1 var(--mono);padding:5px 8px;border-radius:99px;border:1px solid var(--c);color:var(--tx);background:var(--card2)}
.cursos .ccard .cpill:first-child{border-color:var(--c)}.cursos .cpill.free{border-color:#39ffb6;color:#39ffb6}
.cursos .cprov{color:var(--mut);font-size:14px;margin:4px 0}.cursos .cval{margin:6px 0 0;font-size:14px}.cursos .stars{color:#ffcf5c;letter-spacing:1px}
.cursos .cdat th{width:34%;color:var(--mut);font-weight:600;vertical-align:top}.cursos .cdat small{color:var(--mut)}
.cursos .cnote{color:var(--mut);font-size:14px;border-top:1px solid var(--line);padding-top:12px;margin-top:24px}
.cursos .chips{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.cursos .chips[hidden]{display:none}
.cursos .chip{font:inherit;font-size:14px;color:var(--tx);background:var(--card2);border:1px solid var(--line);border-radius:99px;padding:6px 12px;cursor:pointer;display:inline-flex;gap:6px;align-items:center;margin:0}
.cursos .chip[aria-pressed=true]{border-color:var(--acc);color:var(--acc)}.cursos .chip:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.cursos .ruta{counter-reset:paso}.cursos .ruta li,.cursos .senales li{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:14px 16px;margin:0 0 12px}
.cursos .ruta li h2::before{counter-increment:paso;content:counter(paso) ". ";color:var(--acc);font-family:var(--mono)}
.cursos .ruta h2,.cursos .senales h2{font-size:18px;margin:0 0 6px}.cursos .sem{margin:6px 0 0}
.cursos .cnav{display:flex;flex-wrap:wrap;gap:10px}.cursos .btn-ghost{display:inline-block;border:1px solid var(--line);border-radius:12px;padding:10px 16px;color:var(--tx)}
@media print{.cursos .chips,.cursos .cnav{display:none}}
/* ===== cabecera: sin desbordes; «Más» desplegable ===== */
nav>a,.moreb,.btn-acc,.xbtn,.kbtn,.logo{white-space:nowrap}
.topin>*{flex:none}
.more{position:relative}
.moreb{display:inline-flex;align-items:center;gap:5px;padding:8px 12px;border-radius:10px;color:var(--mut);font-size:15px;background:none;border:0;font-family:inherit;cursor:pointer;white-space:nowrap}
.moreb:hover,.more.open .moreb{color:var(--tx);background:#ffffff0d}.moreb.on{color:var(--acc)}
.moreb span{font-size:11px;transition:transform .2s}.more.open .moreb span{transform:rotate(180deg)}
.morem{display:none;position:absolute;top:calc(100% + 8px);right:0;min-width:190px;flex-direction:column;gap:2px;padding:8px;background:#0b0f17;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 60px #000c;z-index:30}
.more.open .morem{display:flex}
.morem a{padding:9px 12px;border-radius:10px;color:var(--mut);font-size:15px;white-space:nowrap}
.morem a:hover,.morem a:focus-visible{color:var(--tx);background:#ffffff0d}.morem a.on{color:var(--acc)}
nav a:focus-visible,.moreb:focus-visible,.burger:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
@media (max-width:1199px){
 .burger{display:block}
 nav{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;align-items:stretch;background:#06080df7;border-bottom:1px solid var(--line);padding:10px 16px 16px;max-height:calc(100vh - 64px);overflow:auto}
 nav.open{display:flex}
 .moreb{display:none}.morem{display:flex;position:static;min-width:0;padding:0;background:none;border:0;box-shadow:none}
 .morem a{padding:8px 12px}
 #authbtn{margin:10px 0 0;text-align:center}
}
.top .topin{max-width:1360px;gap:0}
@media (max-width:1365px){.topin .kbtn kbd{display:none}.topin .kbtn{padding:7px 9px}nav>a,.moreb{padding:8px 10px}}
/* ===== páginas estáticas: migas, metadatos, páginas pilar ===== */
main.seo .crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px 6px;padding:0;margin:8px 0 14px;font:13px/1.5 var(--mono);color:var(--mut)}
main.seo .crumbs li+li::before{content:"›";margin-right:6px;color:var(--mut)}
main.seo .crumbs a{color:var(--mut)}main.seo .crumbs a:hover{color:var(--acc)}main.seo .crumbs [aria-current]{color:var(--tx)}
main.seo .fmeta{color:var(--mut);font-size:14px;margin:6px 0 18px}
main.seo .htoc{font-size:14px;color:var(--mut);margin:0 0 10px;line-height:1.9}
main.seo ul.hub{padding-left:18px}main.seo ul.hub li{margin:0 0 10px}main.seo ul.hub small{color:var(--mut)}
main.seo .nitem{border-top:1px solid var(--line);padding-top:10px}main.seo .nitem h2{font-size:18px}
@media print{main.seo .crumbs,main.seo .htoc{display:none}}
footer .ftemas a{white-space:nowrap}
.cursos details.faq{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:10px 14px;margin:0 0 8px}
.cursos details.faq summary{cursor:pointer;font-weight:700}.cursos details.faq p{margin:8px 0 2px}
.cursos details.faq summary:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
main.seo nav.crumbs,main.seo nav.htoc{display:block!important;position:static!important;background:none!important;border:0!important;padding:0!important;max-height:none!important;overflow:visible!important;gap:0}
/* «Para saber más» (enlaces editoriales externos) */
ul.saber .smk{display:inline-block;font:12px/1.4 var(--mono);color:var(--acc);margin-right:4px}
ul.saber small{color:var(--mut)}
