/* ============================================================
   AGENT 404 // extras — wallet gate + cold-boot reveal
   ============================================================ */

/* ---- holder gate ---- */
.gate{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid var(--line);border-radius:9px;padding:12px 16px;background:var(--bg-1);margin-bottom:14px}
.gate .gstatus{font-size:12px;color:var(--muted);letter-spacing:.4px}
.gate .gstatus b{color:var(--green)}
.gate #gate-connect{margin-left:auto;padding:9px 16px;font-size:11px}
.gate.live{border-color:var(--green-dim);box-shadow:var(--glow-soft)}
.gate .mini{font-size:11px;color:var(--muted-2);text-decoration:underline;cursor:pointer;background:none;border:0;font-family:var(--mono)}
.gate .mini:hover{color:var(--green)}
.term.live{box-shadow:0 0 30px rgba(61,255,151,.28)}

/* ---- denied modal ---- */
.denied{position:fixed;inset:0;z-index:120;background:rgba(5,7,5,.88);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center}
.denied.show{display:flex}
.denied .box{border:1px solid #3a7a52;border-radius:12px;background:var(--bg-2);padding:34px;text-align:center;max-width:420px;box-shadow:var(--glow-soft)}
.denied h3{color:var(--white)}
.denied p{color:var(--muted);font-size:13px;margin:12px 0 22px;line-height:1.6}
.denied .x{position:absolute;top:80px;right:30px;color:var(--muted);background:none;border:0;font-size:20px;cursor:pointer}

/* ---- cold-boot reveal ---- */
.reveal{margin-top:18px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.rstage{width:min(320px,82vw);aspect-ratio:1;border:1px solid var(--line);border-radius:12px;background:radial-gradient(circle at 50% 40%,#0f1a12,#050805);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.rstage .rhint{color:var(--muted-2);font-size:12px;letter-spacing:1px}
.rstage .blog{font-size:12px;color:var(--green);white-space:pre-wrap;padding:18px;align-self:flex-start;width:100%}
.rstage img{width:74%}
.rstage .rid{position:absolute;bottom:10px;left:0;right:0;text-align:center;font-size:12px;color:var(--white);letter-spacing:1px}
.rstage.flash::after{content:"";position:absolute;inset:0;background:var(--green);animation:rflash .26s steps(2)}
@keyframes rflash{0%{opacity:0}40%{opacity:.55}100%{opacity:0}}
.rstage.null{border-color:#2f6b48}
.rstage.null img{animation:nullflick 1.6s infinite}
.rstage.null .n404{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:56px;font-weight:800;color:#fff;mix-blend-mode:difference;animation:n404 1.6s infinite}
@keyframes n404{0%,80%,100%{opacity:0;transform:translateX(0)}85%{opacity:.9;transform:translateX(4px)}88%{transform:translateX(-5px)}92%{opacity:.9;transform:translateX(2px)}}
.rstage.root{border-color:#3dff97;box-shadow:inset 0 0 60px rgba(61,255,151,.28)}
.rstage.root img{filter:drop-shadow(0 0 16px rgba(234,255,242,.75))}

@media(prefers-reduced-motion:reduce){
  .rstage.flash::after,.rstage.null img,.rstage.null .n404{animation:none}
}

/* ---- roadmap timeline ---- */
.phase{border-left:2px solid var(--line);padding:0 0 26px 24px;position:relative}
.phase::before{content:"";position:absolute;left:-7px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--green-dim)}
.phase.live::before{background:var(--green);box-shadow:var(--glow)}
.phase.done::before{background:var(--green-dim)}
.phase:last-child{border-left-color:transparent}
.phase h3{margin-bottom:4px}
.phase .ph-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.tag.done{color:var(--green-dim);border-color:var(--line)}
.tag.live{color:#021006;background:var(--green);border-color:var(--green);box-shadow:var(--glow-soft)}
.tag.next{color:var(--green);border-color:var(--green-dim)}
.tag.plan{color:var(--muted-2)}

/* ---- tweet board ---- */
.tweetcard{border:1px solid var(--line);border-radius:10px;background:var(--bg-1);padding:16px 18px;position:relative;margin-bottom:14px}
.tweetcard .lab{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--green-2);margin-bottom:10px}
.tweetcard .tw{white-space:pre-wrap;color:var(--white);font-size:13.5px;line-height:1.62}
.tweetcard .copybtn{position:absolute;top:12px;right:12px;background:var(--bg-2);border:1px solid var(--line);color:var(--muted);font-family:var(--mono);font-size:10px;letter-spacing:1px;padding:6px 11px;border-radius:5px;cursor:pointer;transition:.15s}
.tweetcard .copybtn:hover{color:var(--green);border-color:var(--green-dim)}
.tweetcard .copybtn.copied{color:#021006;background:var(--green);border-color:var(--green)}

/* ---- allowlist quest ---- */
.altrack{margin:20px 0 28px}
.alhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.task{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;background:var(--bg-1);padding:16px 18px;margin-bottom:12px;transition:.15s}
.task.done{border-color:var(--green-dim);box-shadow:var(--glow-soft)}
.task .n{width:26px;height:26px;flex:0 0 26px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted)}
.task.done .n{background:var(--green);color:#021006;border-color:var(--green)}
.task .body{flex:1;min-width:0}
.task .t-label{font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--white)}
.task .t-desc{font-size:12px;color:var(--muted);margin-top:3px}
.task .t-act{margin-top:11px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.task .t-act .btn{padding:8px 14px;font-size:11px}
.task input[type=text]{background:var(--bg);border:1px solid var(--line);color:var(--white);font-family:var(--mono);font-size:13px;padding:10px 12px;border-radius:6px;width:min(440px,100%);outline:none}
.task input.ok{border-color:var(--green-dim);box-shadow:var(--glow-soft)}
.task input.bad{border-color:#7a3a3a}
.task .chk{margin-left:auto;font-size:11px;color:var(--green);white-space:nowrap}
#al-submit:disabled{opacity:.4;cursor:not-allowed}
.al-success{display:none;text-align:center;border:1px solid var(--green-dim);border-radius:12px;background:var(--bg-2);padding:38px;box-shadow:var(--glow-soft)}
.al-success.show{display:block;animation:rflash .4s steps(2)}
.al-success .rid{font-size:13px;color:var(--green);letter-spacing:2px;margin:10px 0 16px}
