/* Mazzard H (Pepper Type) incrustada: 400, 500, 600 y 700, subconjunto latino */
@font-face{font-family:'Mazzard H';src:url(../fonts/MazzardH-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Mazzard H';src:url(../fonts/MazzardH-Medium.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Mazzard H';src:url(../fonts/MazzardH-SemiBold.woff2) format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Mazzard H';src:url(../fonts/MazzardH-Bold.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}
/* =========================================================
   TOKENS — colores de la agencia y de cada clase
   (acento: degradado de blancos --accent → --accent2; si lo cambias, cambia también BRAND.accent)
   ========================================================= */
:root{
  --bg:#0A0A0A; --bg2:#111111; --panel:#161616; --panel2:#1F1F1F;
  --line:#2A2A2A; --line2:#3D3D3D;
  --text:#F2F2F2; --muted:#A3A3A3; --dim:#6E6E6E;
  --accent:#FFFFFF; --accent2:#A8A8A8; --on-accent:#0A0A0A;
  --ok:#34DBA8; --warn:#FFC940;
  --c-product:#5AA9FF; --c-story:#B57BFF; --c-experience:#34DBA8; --c-price:#FFC940;
  --radius:18px;
  --hex:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);
  --cut:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);
  --fd:"Mazzard H",system-ui,sans-serif;
  --fb:"Mazzard H",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg)}
body{min-height:100vh;color:var(--text);font:16px/1.55 var(--fb);-webkit-font-smoothing:antialiased;overflow-x:hidden;
  background:#000}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
input,textarea{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--fd);letter-spacing:-.01em;line-height:1.1}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
:focus-visible{outline:2px solid #fff;outline-offset:3px}
[tabindex="-1"]:focus{outline:none}

/* ---------- top bar ---------- */
.top{max-width:1160px;margin:0 auto;padding:18px 20px;display:flex;align-items:center;gap:20px}
.logo{display:block;height:46px;width:auto}
.xp{margin-left:auto;display:flex;align-items:center;gap:12px}
.lvl{width:40px;height:46px;clip-path:var(--hex);background:linear-gradient(160deg,var(--accent),var(--accent2));display:grid;place-items:center;font:700 13px var(--fd);color:var(--on-accent)}
.xpbox{min-width:150px}
.xpbox small{display:flex;justify-content:space-between;gap:10px;font:600 11px var(--fd);letter-spacing:.1em;color:var(--muted);text-transform:uppercase}
.xpbar{height:6px;background:var(--line);border-radius:6px;overflow:hidden;margin-top:4px}
.xpbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#8E8E8E,#FFFFFF);transition:width .6s cubic-bezier(.2,.8,.2,1)}
.saved{font-size:12px;color:var(--dim);display:flex;align-items:center;gap:6px;opacity:0;transition:opacity .3s}
.saved.on{opacity:1}
.saved::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok)}

/* ---------- mission log ---------- */
.wrap{max-width:1160px;margin:0 auto;padding:0 20px 60px}
.quests{display:flex;gap:6px;list-style:none;margin:4px 0 22px}
.quests li{flex:1}
.quests button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;text-align:left;color:var(--dim);transition:background .2s,color .2s}
.quests button:not([disabled]):hover{background:var(--panel)}
.quests button[disabled]{cursor:default}
.quests .n{flex-shrink:0;width:28px;height:32px;clip-path:var(--hex);background:var(--line);display:grid;place-items:center;font:700 12px var(--fd);color:var(--muted)}
.quests .t{font:600 13px/1.2 var(--fd);letter-spacing:.02em}
.quests .t small{display:block;font:500 10px var(--fd);letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.quests .done{color:var(--muted)}
.quests .done .n{background:var(--ok);color:#06231A}
.quests .cur{color:var(--text);background:var(--panel)}
.quests .cur .n{background:linear-gradient(160deg,var(--accent),var(--accent2));color:var(--on-accent)}
.qmobile{display:none}

/* ---------- panels + buttons ---------- */
.screen{display:none}
.screen.on{display:block;animation:in .45s cubic-bezier(.2,.8,.2,1)}
@keyframes in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.panel{background:linear-gradient(180deg,var(--panel),var(--bg2));border:1px solid var(--line);border-radius:var(--radius);padding:32px;position:relative}
.kicker{font:600 12px var(--fd);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.kicker::before{content:"";width:18px;height:2px;background:currentColor}
h2{font-size:32px;margin-bottom:10px}
h2:focus{outline:none}
.lead{color:var(--muted);font-size:17px;max-width:620px}
.sub{color:var(--muted);max-width:640px;margin-bottom:24px}
.btn{font:600 15px/1 var(--fd);letter-spacing:.08em;text-transform:uppercase;min-height:52px;padding:0 28px;display:inline-flex;align-items:center;justify-content:center;gap:10px;color:var(--on-accent);
  background:linear-gradient(135deg,var(--accent),var(--accent2));clip-path:var(--cut);transition:transform .15s,filter .2s}
.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn:hover:not(.ghost){filter:brightness(.94)}
.btn:focus-visible{background:var(--accent2);color:var(--on-accent);outline:none;text-decoration:underline;text-underline-offset:4px}
.btn[disabled]{opacity:.35;cursor:not-allowed;transform:none;filter:grayscale(.7)}
.btn.ghost{background:var(--panel2);color:var(--text)}
.btn.ghost:focus-visible{background:#fff;color:var(--bg)}
.btn.sm{min-height:42px;padding:0 18px;font-size:13px}
.btn svg{width:18px;height:18px}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:28px}
.actions .hint{font-size:13px;color:var(--muted)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;border:1px solid var(--line2);font:600 12px var(--fd);letter-spacing:.06em;color:var(--muted)}
.chip svg{width:14px;height:14px}
.xpchip{color:var(--warn);border-color:rgba(255,201,64,.35)}

/* ---------- emblem ---------- */
.emb{--c:var(--dim);width:46px;height:52px;flex-shrink:0;clip-path:var(--hex);background:linear-gradient(160deg,var(--c),color-mix(in srgb,var(--c) 45%,#000));display:grid;place-items:center;color:#0A0A0A}
.emb svg{width:46%;height:46%}
.emb.q{font:700 20px var(--fd);color:var(--muted);background:var(--line)}

/* ---------- 0 · start ---------- */
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding:22px 0}
.title{font:700 clamp(36px,4.6vw,58px)/1.02 var(--fd);letter-spacing:-.02em;margin:8px 0 16px;color:#fff}
.title span{background:linear-gradient(100deg,#FFFFFF 10%,#8E8E8E);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead b{color:#fff}
.why{display:flex;gap:12px;align-items:flex-start;margin:20px 0 0;padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.22);max-width:620px}
.why svg{width:22px;height:22px;flex-shrink:0;color:var(--accent);margin-top:1px}
.why p{font-size:14px;color:var(--muted)}
.why b{color:#fff}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 0;max-width:620px}
.steps li{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.steps i{flex-shrink:0;width:26px;height:30px;clip-path:var(--hex);background:var(--line2);display:grid;place-items:center;font:700 12px var(--fd);font-style:normal}
.steps b{display:block;font:600 14px var(--fd)}
.steps span{display:block;font-size:12px;color:var(--muted);line-height:1.3}
.fnote{font-size:13px;color:var(--muted);margin-top:14px}
.meta{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 4px}
.classes{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cls{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;gap:14px;align-items:flex-start;transition:border-color .2s,transform .2s}
.cls:hover{border-color:var(--c);transform:translateY(-2px)}
.cls small{font:600 10px var(--fd);letter-spacing:.14em;text-transform:uppercase;color:var(--c)}
.cls b{display:block;font:700 18px var(--fd);margin:1px 0 2px}
.cls p{font-size:13px;color:var(--muted);line-height:1.4}
.resume{margin-top:14px;font-size:14px;color:var(--muted)}

/* ---------- 1 · create ---------- */
.two{display:grid;grid-template-columns:1fr 360px;gap:24px;align-items:start}
.form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field label{display:block;font:600 13px var(--fd);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.field label em{font-style:normal;text-transform:none;letter-spacing:0;color:var(--dim);font-family:var(--fb);font-weight:400}
.field input,.field textarea{width:100%;background:var(--bg);border:1.5px solid var(--line);border-radius:12px;padding:13px 15px;outline:none;transition:border-color .2s,box-shadow .2s}
.field input::placeholder,.field textarea::placeholder{color:var(--dim)}
.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(255,255,255,.15)}
.field textarea{min-height:120px;resize:vertical}
.field .help{font-size:12px;color:var(--dim);margin-top:6px;display:flex;justify-content:space-between}
.full{grid-column:1/-1}
.seg{display:flex;gap:8px}
.seg button{flex:1;min-height:48px;border:1.5px solid var(--line);border-radius:12px;font-weight:500;font-size:14px;transition:all .15s}
.seg button[aria-checked=true]{border-color:var(--accent);background:rgba(255,255,255,.12);color:#fff}

/* ---------- trading card ---------- */
.tcard{--cc:#8E8E8E;position:relative;border-radius:22px;padding:22px 22px 18px;overflow:hidden;
  background:linear-gradient(165deg,color-mix(in srgb,var(--cc) 30%,#1B1B1B) 0%,#131313 50%,#0B0B0B 100%);
  border:1.5px solid color-mix(in srgb,var(--cc) 65%,transparent);
  box-shadow:0 30px 80px -30px color-mix(in srgb,var(--cc) 70%,transparent),inset 0 1px 0 rgba(255,255,255,.08)}
.tcard::after{content:"";position:absolute;inset:-40%;background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.10) 50%,transparent 58%);transform:translateX(-60%);transition:transform 1.1s ease;pointer-events:none}
.tcard:hover::after{transform:translateX(60%)}
.tc-top{display:flex;align-items:center;gap:14px}
.ovr{text-align:center;padding-right:14px;border-right:1px solid rgba(255,255,255,.12)}
.ovr b{display:block;font:700 50px/.9 var(--fd);color:var(--cc)}
.ovr span{font:600 10px var(--fd);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.tc-cls{display:flex;gap:10px;align-items:center;min-width:0}
.tc-cls small{display:block;font:600 10px var(--fd);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.tc-cls strong{display:block;font:700 18px/1.1 var(--fd)}
.tc-cls em{font-style:normal;font-size:12px;color:var(--muted)}
.tc-name{font:700 25px/1.1 var(--fd);margin-top:18px;overflow-wrap:anywhere}
.tc-meta{font-size:13px;color:var(--muted);min-height:20px}
.tc-radar{max-width:250px;margin:4px auto 0}
.tc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 10px;border-top:1px solid rgba(255,255,255,.1);padding-top:12px}
.tc-stats div{display:flex;align-items:baseline;gap:7px}
.tc-stats b{font:700 21px var(--fd);min-width:30px}
.tc-stats span{font:600 11px var(--fd);letter-spacing:.1em;color:var(--muted)}
.tc-foot{margin-top:12px;font:600 10px var(--fd);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);display:flex;justify-content:space-between}

/* ---------- radar ---------- */
.radar svg{width:100%;height:auto;display:block;overflow:visible}
.radar .ring{fill:rgba(255,255,255,.015);stroke:rgba(255,255,255,.09);stroke-width:1}
.radar .ring.odd{fill:rgba(255,255,255,.035)}
.radar .axis{stroke:rgba(255,255,255,.09)}
.radar .shape{stroke-width:2.2;stroke-linejoin:round}
.radar .dot{stroke:#0B0B0B;stroke-width:2}
.radar .lab{font:700 12px var(--fd);letter-spacing:.08em}
.radar .val{font:700 15px var(--fd);fill:var(--text)}
.radar .active .ringhl{opacity:1}

/* ---------- 2 · scan ---------- */
.scan{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:stretch}
.qhead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.segs{display:flex;gap:4px;margin:18px 0 26px}
.segs i{flex:1;height:5px;border-radius:4px;background:var(--line);transition:background .3s}
.segs i.a{background:var(--c)}
.segs i.cur{background:#fff;transform-origin:left;animation:segfill .45s cubic-bezier(.2,.8,.2,1)}
@keyframes segfill{from{transform:scaleX(.15);opacity:.4}}
.qbody{will-change:transform,opacity}
.opt .k{transition:background .2s,color .2s}
.opt.ok .k{background:var(--c);color:#0A0A0A}
#qCount.bump{animation:bump .35s ease-out}
@keyframes bump{40%{transform:scale(1.08);border-color:var(--c);color:#fff}}
.qtext{font:600 25px/1.3 var(--fd);min-height:98px;margin-bottom:18px}
.scaleq{font:600 13px var(--fd);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.opts{display:grid;gap:9px}
.opt{display:flex;align-items:center;gap:14px;min-height:54px;padding:10px 16px;border:1.5px solid var(--line);border-radius:14px;text-align:left;transition:border-color .15s,background .15s,transform .15s}
.opt:hover{border-color:var(--line2);background:rgba(255,255,255,.02)}
.opt .k{width:30px;height:34px;flex-shrink:0;clip-path:var(--hex);background:var(--line);display:grid;place-items:center;font:700 13px var(--fd);color:var(--muted)}
.opt .l{font-weight:500}
.opt .bars{margin-left:auto;display:flex;gap:3px}
.opt .bars i{width:5px;height:14px;border-radius:2px;background:var(--line)}
.opt[aria-pressed=true]{border-color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent)}
.opt[aria-pressed=true] .k{background:var(--c);color:#0A0A0A}
.opt[aria-pressed=true] .bars i.f{background:var(--c)}
.opt.flash{transform:scale(.98)}
.honest{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--muted);background:rgba(255,201,64,.07);border:1px solid rgba(255,201,64,.2);border-radius:12px;padding:10px 14px;margin-top:20px}
.honest svg{width:18px;height:18px;color:var(--warn);flex-shrink:0;margin-top:1px}
.radarpanel{display:flex;flex-direction:column}
.radarpanel .radar{max-width:380px;width:100%;margin:10px auto}
.legend{display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:center;font-size:12px;color:var(--muted);margin-top:auto}
.legend span{display:flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;clip-path:var(--hex);background:var(--c)}

/* ---------- 3 · reveal ---------- */
.reveal{text-align:center;max-width:760px;margin:0 auto;padding:44px 32px}
.bigemb{position:relative;width:150px;height:170px;margin:10px auto 18px}
.bigemb .emb{width:100%;height:100%;position:relative;z-index:1}
.bigemb::before{content:"";position:absolute;inset:-30px;background:radial-gradient(circle,color-mix(in srgb,var(--c) 55%,transparent),transparent 65%);filter:blur(8px);animation:glow 2.4s ease-in-out infinite}
@keyframes glow{50%{opacity:.55;transform:scale(.92)}}
.screen.on .bigemb .emb{animation:spin .9s cubic-bezier(.2,.8,.2,1)}
@keyframes spin{from{transform:rotateY(180deg) scale(.4);opacity:0}to{transform:none;opacity:1}}
.reveal h2{font-size:46px;margin:4px 0 6px}
.reveal .clsline{font:600 14px var(--fd);letter-spacing:.12em;text-transform:uppercase;color:var(--c)}
.reveal p.lead{margin:14px auto 0}
.power{display:grid;gap:12px;text-align:left;max-width:560px;margin:30px auto 0}
.pw{display:grid;grid-template-columns:34px 130px 1fr 38px;gap:12px;align-items:center}
.pw .emb{width:30px;height:34px}
.pw b{font:600 15px var(--fd)}
.pw .track{height:10px;border-radius:6px;background:var(--line);overflow:hidden}
.pw .track i{display:block;height:100%;width:0;border-radius:6px;background:var(--c);transition:width 1s cubic-bezier(.2,.8,.2,1)}
.pw .v{font:700 17px var(--fd);text-align:right}
.tie{margin:22px auto 0;max-width:560px;font-size:14px;color:var(--warn)}

/* ---------- 4 · build ---------- */
.build{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:start}
.tree{position:relative;display:grid;gap:14px;justify-items:center;padding:12px 0 4px}
.tree svg.links{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.tree svg.links line{stroke:var(--line2);stroke-width:2;stroke-dasharray:4 5}
.tier{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px}
.tier .row{display:flex;gap:30px}
.tlabel{font:600 12px var(--fd);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px}
.tlabel i{width:10px;height:11px;clip-path:var(--hex)}
.socket{--cc:var(--line2);width:112px;height:128px;clip-path:var(--hex);background:var(--cc);padding:3px;transition:transform .15s,background .2s}
.socket.big{width:138px;height:158px;--cc:color-mix(in srgb,var(--warn) 55%,var(--line2))}
.socket[data-t=baja]:not(.filled){background:repeating-linear-gradient(45deg,var(--line2) 0 6px,transparent 6px 12px)}
.socket .in{width:100%;height:100%;clip-path:var(--hex);background:var(--bg2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center;padding:0 12px}
.socket .in .ph{font-size:12px;color:var(--dim);line-height:1.3}
.socket .in .ph b{display:block;font:700 22px var(--fd);color:var(--line2)}
.socket.filled .in{background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--cc) 38%,var(--bg2)),var(--bg2) 75%)}
.socket.filled .in svg{width:34px;height:34px;color:var(--cc)}
.socket.filled .in b{font:700 13px/1.1 var(--fd)}
.socket.filled .in small{font:600 11px var(--fd);color:var(--muted)}
.socket{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.socket.filled{touch-action:none;cursor:grab}
.socket:hover{transform:scale(1.03)}
.socket.lifted .in>*{animation:bob 1.1s ease-in-out infinite}
.socket.incoming{background:var(--line2)!important}
.socket.incoming .in{background:var(--bg2)!important}
.socket.incoming .in>*{opacity:0}
/* wrapper: el brillo va fuera del hexágono (clip-path recorta sombras) */
.sw{display:inline-block;position:relative;transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.sw.ready{animation:ready 1.5s ease-in-out infinite}
@keyframes ready{0%,100%{filter:drop-shadow(0 0 1px rgba(255,255,255,.15))}50%{filter:drop-shadow(0 0 10px rgba(255,255,255,.4))}}
.sw.ready .socket:not(.filled) .ph b{color:var(--accent)}
.sw.hot{animation:none;transform:scale(1.1);filter:drop-shadow(0 0 16px var(--hot))}
.sw.hot .socket{background:var(--hot)!important}
.sw.hot .socket:not(.filled) .ph b{color:var(--hot)}
@keyframes bob{50%{transform:translateY(-5px)}}
/* capa de efectos */
#fxl{position:fixed;inset:0;pointer-events:none;z-index:60;overflow:hidden}
.fly{position:absolute;left:0;top:0;width:66px;height:76px;will-change:transform;
  filter:drop-shadow(0 14px 16px rgba(0,0,0,.55)) drop-shadow(0 0 12px var(--cc))}
.fly .hx{width:100%;height:100%;clip-path:var(--hex);background:linear-gradient(160deg,var(--cc),color-mix(in srgb,var(--cc) 40%,#000));display:grid;place-items:center;color:#0A0A0A}
.fly .hx::after{content:"";position:absolute;inset:0;clip-path:var(--hex);background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);background-size:250% 100%;animation:shine 1.2s linear infinite}
@keyframes shine{from{background-position:120% 0}to{background-position:-120% 0}}
.fly .hx svg{width:28px;height:28px}
.fly b{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:6px;font:700 12px var(--fd);letter-spacing:.06em;white-space:nowrap;color:#fff;text-shadow:0 2px 8px #000;opacity:0;transition:opacity .2s}
.fly.held b{opacity:1}
.pt{position:absolute;left:0;top:0;clip-path:var(--hex);will-change:transform,opacity}
.shock{position:absolute;pointer-events:none}
.shock svg{width:100%;height:100%;overflow:visible}
.ftxt{position:absolute;left:0;top:0;font:700 15px var(--fd);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;text-shadow:0 2px 12px rgba(0,0,0,.8)}
body.dragging,body.dragging *{cursor:grabbing!important;user-select:none}
.tray.ready{border-color:var(--line2)}
.tree svg.links.lit line{stroke:var(--accent);stroke-width:2.5;stroke-dasharray:7 9;animation:flow .9s linear infinite;filter:drop-shadow(0 0 4px var(--accent))}
@keyframes flow{to{stroke-dashoffset:-32}}
.socket:focus-visible{background:#fff;outline:none}
.tray{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;min-height:150px;align-items:center;border:1.5px dashed var(--line);border-radius:16px;padding:12px;transition:border-color .2s}
.tray.drop{border-color:var(--accent)}
.tray .empty{font-size:13px;color:var(--dim);text-align:center}
.token{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.token.incoming .hx{opacity:0}
.token[aria-pressed=true] .hx{animation:bob 1.1s ease-in-out infinite}
.token{--cc:var(--dim);display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 10px;border-radius:14px;cursor:grab;transition:background .15s,box-shadow .15s}
.token .hx{width:66px;height:76px;clip-path:var(--hex);background:linear-gradient(160deg,var(--cc),color-mix(in srgb,var(--cc) 40%,#000));display:grid;place-items:center;color:#0A0A0A;transition:transform .2s}
.token .hx svg{width:28px;height:28px}
.token b{font:600 13px var(--fd)}
.token small{font:600 11px var(--fd);color:var(--muted)}
.token:hover .hx{transform:translateY(-3px)}
.token[aria-pressed=true]{background:var(--panel2);box-shadow:0 0 0 2px var(--cc)}
.token[aria-pressed=true] .hx{transform:translateY(-5px) scale(1.06)}
.counts{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.counts .chip.ok{color:var(--ok);border-color:rgba(52,219,168,.4)}
.info{margin-top:16px;border-radius:14px;background:var(--bg);border:1px solid var(--line);padding:16px 18px;min-height:132px}
.info h3{font-size:17px;margin-bottom:4px;display:flex;gap:10px;align-items:center}
.info p{font-size:14px;color:var(--muted)}
.info ul{list-style:none;display:grid;gap:8px;font-size:14px;color:var(--muted)}
.info li b{color:var(--text)}
.note{font-size:13px;color:var(--muted);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:10px 14px;margin-bottom:14px}

/* ---------- 5 · oath ---------- */
.oath{max-width:780px;margin:0 auto}
.oath .field{margin-bottom:20px}
.oath .field label{display:flex;justify-content:space-between;gap:10px;align-items:flex-end;text-transform:none;letter-spacing:0;font:600 16px var(--fd);color:var(--text)}

/* ---------- 6 · result ---------- */
.rgrid{display:grid;gap:20px}
.rtop{display:grid;grid-template-columns:360px 1fr;gap:20px;align-items:stretch}
.rcard{display:flex}
.rcard .tcard{flex:1;display:flex;flex-direction:column}
.rcard .tc-radar{flex:1;display:flex;align-items:center;justify-content:center;max-width:none;width:100%}
.rcard .tc-radar svg{max-width:250px}
.rsum{display:flex;flex-direction:column}
.rsum h2{margin-bottom:6px}
.rsum .sub{margin-bottom:20px}
.rsum-act{margin-top:auto;padding-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rsum-act #pdfBtn{grid-column:1/-1}
.rsum-act .btn{white-space:nowrap}
.rsec{margin-bottom:18px}
.rsec h3,.rhead h3{font:600 12px var(--fd);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.rblock{padding:26px 28px}
.rhead{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.rhead h3{margin:0;color:var(--text)}
.rhead span{font-size:13px;color:var(--dim)}
.rend{justify-content:flex-end;margin-top:0}
.buildrow{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.bslot{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--bg);display:flex;gap:10px;align-items:center;min-width:0}
.bslot .emb{width:34px;height:39px}
.bslot small{display:block;font:600 10px var(--fd);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.bslot b{font:700 14px/1.15 var(--fd)}
.bslot.main{border-color:var(--c);background:color-mix(in srgb,var(--c) 10%,var(--bg))}
.bslot.weak{border-style:dashed}
.badges{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.badge{border:1px solid var(--line);border-radius:14px;padding:16px 14px;text-align:center;background:var(--bg)}
.badge .bh{width:44px;height:50px;margin:0 auto 8px;clip-path:var(--hex);display:grid;place-items:center;background:linear-gradient(160deg,var(--warn),#E08A00);color:#241A00}
.badge .bh svg{width:22px;height:22px}
.badge b{display:block;font:600 13px/1.2 var(--fd)}
.badge small{display:block;font-size:11px;color:var(--muted);line-height:1.35;margin-top:4px}
.badge.locked{opacity:.4}
.badge.locked .bh{background:var(--line);color:var(--dim)}
.plan{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pcard{border-radius:14px;padding:16px;background:var(--bg);border:1px solid var(--line)}
.pcard small{font:600 10px var(--fd);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.pcard p{font-size:14px;margin-top:6px}
.moves{list-style:none;display:grid;gap:8px}
.moves li{display:flex;gap:12px;align-items:flex-start;font-size:14px;padding:10px 12px;border-radius:12px;background:var(--bg);border:1px solid var(--line)}
.moves li i{flex-shrink:0;width:24px;height:27px;clip-path:var(--hex);background:var(--c);color:#0A0A0A;display:grid;place-items:center;font:700 12px var(--fd);font-style:normal}
.funnel{display:grid;grid-template-columns:320px 1fr;gap:20px;align-items:stretch;position:relative}
.fstack{align-content:start;padding-top:6px}
.fstack{display:grid;gap:5px;justify-items:center}
.fstep{--a:70%;width:var(--w);min-height:72px;clip-path:polygon(0 0,100% 0,92% 100%,8% 100%);background:color-mix(in srgb,var(--c) var(--a),var(--bg2));
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8px 20px;opacity:.42;filter:saturate(.55);
  transition:opacity .45s cubic-bezier(.2,.8,.2,1),transform .45s cubic-bezier(.2,.8,.2,1),filter .45s}
.fstep:hover{opacity:.75;filter:none}
.fstep{position:relative}
.fstep::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);background-size:250% 100%;background-position:120% 0;opacity:0;pointer-events:none}
.fstep.sweep::after{animation:fsweep .8s cubic-bezier(.2,.8,.2,1)}
@keyframes fsweep{0%{opacity:1;background-position:120% 0}100%{opacity:0;background-position:-120% 0}}
.fstep[aria-selected=true]{opacity:1;filter:none;transform:scale(1.05)}
.fstep b{font:700 15px/1.1 var(--fd);color:#0A0A0A}
.fstep small{font:600 10px var(--fd);letter-spacing:.06em;color:rgba(10,10,10,.75);text-transform:uppercase}
.fstep .key{font:700 9px var(--fd);letter-spacing:.12em;background:#0A0A0A;color:#fff;border-radius:999px;padding:2px 8px;margin-top:4px}
.fdetail{border:1px solid var(--line);border-radius:14px;background:var(--bg);padding:20px 22px;min-height:100%;position:relative;overflow:hidden}
.fdetail::before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:linear-gradient(90deg,var(--c),transparent);transform-origin:left;transform:scaleX(var(--prog,.25));transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.fnotch{position:absolute;left:calc(320px + 20px - 11px);width:11px;height:18px;top:0;background:var(--c);clip-path:polygon(100% 0,0 50%,100% 100%);
  filter:drop-shadow(0 0 6px var(--c));transform:translateY(calc(var(--ny,0px) - 9px));transition:transform .5s cubic-bezier(.2,.8,.2,1);z-index:2;pointer-events:none}
.fbody{will-change:transform,opacity}
.fdots{display:flex;gap:6px;align-items:center}
.fdots i{width:6px;height:6px;border-radius:50%;background:var(--line2);transition:all .35s cubic-bezier(.2,.8,.2,1)}
.fdots i.on{width:18px;border-radius:3px;background:var(--c)}
@media (max-width:980px){.fnotch{display:none}}
.fdetail .fh{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap}
.fdetail h4{font:700 19px var(--fd)}
.fdetail h4 span{font:500 13px var(--fb);color:var(--muted);margin-left:6px}
.fdetail .obj{font-size:14px;margin:6px 0 12px;color:#fff}
.fdetail .obj b{color:var(--c)}
.fdetail .why{margin:0 0 12px;max-width:none}
.kpi{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--muted);margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.kpi b{font:700 11px var(--fd);letter-spacing:.12em;color:var(--ok);border:1px solid rgba(52,219,168,.4);border-radius:999px;padding:2px 8px;flex-shrink:0}
.boosts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.boost{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:var(--bg);height:100%}
.boost .bt{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.boost .bt .emb{width:30px;height:34px}
.boost small{display:block;font:600 10px var(--fd);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.boost b{font:700 14px var(--fd)}
.boost p{font-size:13px;color:var(--muted)}
.boost.no{border-style:dashed}
.p90{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.p90>div{border:1px solid var(--line);border-radius:14px;padding:16px 18px;background:var(--bg)}
.p90 small{font:600 11px var(--fd);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.p90 b{display:block;font:700 16px var(--fd);margin:2px 0 8px}
.p90 ul{list-style:none;display:grid;gap:7px;font-size:13px;color:var(--muted)}
.p90 li{padding-left:14px;position:relative}
.p90 li::before{content:"";position:absolute;left:0;top:7px;width:6px;height:7px;clip-path:var(--hex);background:var(--accent)}
.alerts{border:1px solid rgba(255,201,64,.3);background:rgba(255,201,64,.06);border-radius:14px;padding:14px 16px;font-size:14px}
.alerts li{margin:6px 0 0 18px;color:var(--muted)}
.alerts b{color:var(--warn);font-family:var(--fd);letter-spacing:.04em}
.credit{text-align:center;font-size:12px;color:var(--dim);margin-top:30px}
.credit a{color:inherit}

/* ---------- privacidad ---------- */
.consent{display:grid;gap:10px;margin-top:22px;max-width:620px}
.ck{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:var(--muted);cursor:pointer;line-height:1.45}
.ck input{appearance:none;-webkit-appearance:none;flex-shrink:0;width:20px;height:20px;margin-top:1px;border:1.5px solid var(--line2);border-radius:6px;background:var(--bg);cursor:pointer;display:grid;place-items:center;transition:all .15s}
.ck input:checked{background:var(--accent);border-color:var(--accent)}
.ck input:checked::after{content:"";width:10px;height:6px;border:2px solid var(--on-accent);border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
.ck input:focus-visible{outline:2px solid #fff;outline-offset:2px}
.ck b{color:var(--text);font-weight:600}
.ck small{display:block;color:var(--dim);font-size:12px;margin-top:2px}
.linkbtn{color:var(--text);text-decoration:underline;text-underline-offset:3px;font:inherit;cursor:pointer}
.legal{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-top:10px}
.legal button{font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.priv{font-size:12px;color:var(--dim);margin-top:6px}
dialog.doc{max-width:720px;max-height:86vh;overflow:auto;padding:30px}
dialog.doc h3{font-size:24px;margin-bottom:4px}
dialog.doc h4{font:600 13px var(--fd);letter-spacing:.1em;text-transform:uppercase;color:var(--text);margin:20px 0 6px}
dialog.doc p,dialog.doc li{font-size:14px;color:var(--muted);line-height:1.55}
dialog.doc ul{margin:4px 0 0 18px;display:grid;gap:4px}
dialog.doc b{color:var(--text)}
dialog.doc .meta2{font-size:12px;color:var(--dim)}
dialog.doc .todo{color:var(--warn)}
.datalist{display:grid;gap:6px;margin-top:10px;font-size:13px}
.datalist div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:6px 0;color:var(--muted)}
.datalist div b{color:var(--text);font-weight:500;text-align:right;overflow-wrap:anywhere}

/* ---------- envío del diagnóstico ---------- */
.rsend{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px;align-items:start}
.rsend-t{font-size:24px;margin:2px 0 8px}
.rsend-copy p{color:var(--muted);font-size:14px}
.rsend-list{list-style:none;display:grid;gap:8px;margin-top:14px;font-size:14px;color:var(--text)}
.rsend-list li{padding-left:18px;position:relative}
.rsend-list li::before{content:"";position:absolute;left:0;top:6px;width:8px;height:9px;clip-path:var(--hex);background:var(--accent)}
.rsend-form .consent{margin-top:16px}
.rsend-form .actions{margin-top:18px}
.field input.err{border-color:#FF6B6B}
.rsend-ok{grid-column:2;display:flex;gap:14px;align-items:flex-start;border:1px solid rgba(52,219,168,.35);background:rgba(52,219,168,.06);border-radius:14px;padding:18px}
.rsend-ok b{display:block;font:600 16px var(--fd);color:var(--text)}
.rsend-ok p{font-size:13.5px;color:var(--muted);margin-top:4px}
.rsend-ok .ic{width:30px;height:34px;flex-shrink:0;clip-path:var(--hex);background:var(--ok);display:grid;place-items:center;color:#06231A;font-weight:700}
@media (max-width:980px){.rsend{grid-template-columns:1fr}.rsend-ok{grid-column:1}}

/* ---------- toast, dialog, confetti ---------- */
.toasts{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);display:grid;gap:8px;z-index:50;pointer-events:none}
.toast{font:600 14px var(--fd);letter-spacing:.04em;background:var(--panel2);border:1px solid var(--line2);padding:10px 18px;border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.4);animation:toast 2.4s ease forwards;display:flex;gap:8px;align-items:center;white-space:nowrap}
.toast.xp{color:var(--warn)}
@keyframes toast{0%{opacity:0;transform:translateY(10px)}10%,80%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-6px)}}
dialog{margin:auto;background:var(--panel);color:var(--text);border:1px solid var(--line2);border-radius:18px;padding:26px;max-width:420px;width:calc(100% - 32px)}
dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(3px)}
dialog h3{font-size:22px;margin-bottom:8px}
dialog p{color:var(--muted);font-size:15px}
#fx{position:fixed;inset:0;pointer-events:none;z-index:40}

/* ---------- responsive ---------- */
@media (max-width:980px){
  .hero,.two,.scan,.build,.rtop,.funnel{grid-template-columns:1fr}
  .rcard .tcard{max-width:420px;margin:0 auto}
  .buildrow{grid-template-columns:1fr 1fr}
  .tcard{max-width:420px;margin:0 auto}
  .quests{display:none}
  .qmobile{display:block;margin:0 0 18px}
  .qmobile small{display:flex;justify-content:space-between;font:600 12px var(--fd);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
  .qmobile .xpbar i{background:linear-gradient(90deg,var(--accent2),var(--accent))}
}
@media (max-width:640px){
  .top{padding:14px 16px;gap:12px}
  .logo{height:36px}
  .wrap{padding:0 16px 48px}
  .xpbox{min-width:96px}
  .saved{display:none}
  .panel{padding:22px 18px}
  h2{font-size:26px}
  .classes,.form,.plan,.steps{grid-template-columns:1fr}
  .qtext{font-size:22px;min-height:0}
  .buildrow{grid-template-columns:1fr 1fr}
  .boosts,.p90{grid-template-columns:1fr}
  .rblock{padding:20px 16px}
  .rsum-act{grid-template-columns:1fr}
  .badges{grid-template-columns:1fr 1fr}
  .pw{grid-template-columns:30px 1fr 38px}
  .pw .track{grid-column:1/-1;order:3}
  .socket{width:92px;height:106px}
  .socket.big{width:114px;height:130px}
  .tier .row{gap:18px}
  .reveal{padding:30px 18px}
  .reveal h2{font-size:34px}
  .actions .btn{flex:1}
}
/* ---------- mobile usability ---------- */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-height:100dvh;-webkit-tap-highlight-color:transparent}
button,a,.opt,.seg button,.ck,.token,.socket{touch-action:manipulation}
input,textarea,select{font-size:16px}
input,textarea{-webkit-appearance:none;appearance:none}
.btn.sm{min-height:44px}
@media (max-width:640px){
  .top{padding:calc(12px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 12px calc(16px + env(safe-area-inset-left))}
  .wrap{padding:0 calc(16px + env(safe-area-inset-right)) calc(40px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}
  .lead{font-size:16px}
  .sub{margin-bottom:18px}
  .actions{gap:10px;margin-top:22px}
  .actions .btn{min-height:54px;width:100%}
  .actions .hint{width:100%;text-align:center}
  .opt{min-height:56px;padding:12px 14px}
  .seg{flex-wrap:wrap}
  .seg button{min-height:50px;flex:1 1 calc(50% - 4px)}
  .ck{padding:4px 0;line-height:1.45}
  .field .help{flex-wrap:wrap;gap:4px 10px}
  .tray{min-height:120px}
  .info{min-height:0}
  .tc-name{font-size:22px}
}
@media (max-width:380px){
  .panel{padding:18px 14px}
  h2{font-size:23px}
  .qtext{font-size:20px}
  .reveal h2{font-size:28px}
  .socket{width:80px;height:92px}
  .socket.big{width:98px;height:112px}
  .badges{grid-template-columns:1fr}
  .btn{padding:0 18px;letter-spacing:.05em}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
