/* random events + easter eggs (layered over theme-cipher.css) */
.rev{position:fixed;right:18px;bottom:18px;z-index:60;width:min(360px,calc(100vw - 36px));display:flex;gap:.8rem;padding:1rem 1.1rem;border-radius:16px;
  background:rgba(10,12,16,.92);border:1px solid rgba(47,107,255,.5);box-shadow:var(--glow),0 20px 60px rgba(0,0,0,.6);backdrop-filter:blur(14px);animation:revIn .45s cubic-bezier(.2,.9,.3,1.3)}
.rev--uncommon{border-color:rgba(168,85,247,.6);box-shadow:0 0 0 1px rgba(168,85,247,.3),0 0 26px rgba(168,85,247,.3),0 20px 60px rgba(0,0,0,.6)}
.rev--rare{border-color:rgba(245,158,11,.6);box-shadow:0 0 0 1px rgba(245,158,11,.3),0 0 26px rgba(245,158,11,.3),0 20px 60px rgba(0,0,0,.6)}
.rev h3{margin:.1rem 0 .4rem;font-size:1.05rem}.rev p{margin:.3rem 0 .6rem;font-size:.88rem;color:#cbd5e1}
.rev__tier{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-secondary)}
.rev--uncommon .rev__tier{color:#c084fc}.rev--rare .rev__tier{color:#fbbf24}.rev--common .rev__tier{color:#7ea2ff}
.rev__art{font-size:2.4rem;line-height:1;filter:drop-shadow(0 0 10px rgba(47,107,255,.6));animation:revBob 2.4s ease-in-out infinite}
.rev__x{position:absolute;top:6px;right:8px;background:none;border:0;color:#9aa3b2;font-size:1.3rem;cursor:pointer}.rev__x:hover{color:#fff}
.rev__opts{display:flex;flex-wrap:wrap;gap:.4rem}.rev__opts .btn{text-align:left}
.rev__gate{font-size:1.4rem;padding:.4rem .6rem;margin:.2rem 0 .6rem;border:1px dashed rgba(168,85,247,.5);border-radius:10px;text-align:center;color:#e9d5ff}
.rev--out{opacity:0;transform:translateY(10px);transition:.3s}
@keyframes revIn{from{opacity:0;transform:translateY(30px) scale(.94)}}@keyframes revBob{50%{transform:translateY(-5px)}}
/* badges */
.bdg{display:inline-block;font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;padding:.12rem .45rem;border-radius:999px;margin-left:.3rem;
  border:1px solid rgba(47,107,255,.45);color:#cfe0ff;background:rgba(47,107,255,.08);vertical-align:middle}
.bdg--cabal{border-color:rgba(239,68,68,.6);color:#fca5a5;background:rgba(239,68,68,.1);text-shadow:0 0 6px rgba(239,68,68,.6)}
/* Cabal takeover */
body.cabal-glitch #app,body.cabal-glitch header{animation:glitch .18s steps(2) infinite}
body.cabal-on{overflow:hidden}
body.cabal-glitch #app,body.cabal-glitch header{filter:saturate(1.8) hue-rotate(-30deg) contrast(1.3);text-shadow:3px 0 rgba(255,0,60,.7),-3px 0 rgba(0,255,255,.6)}
.cabal-pre{position:fixed;inset:0;z-index:99;pointer-events:none;background:rgba(255,0,40,.08);mix-blend-mode:screen}
.cabal-pre i{position:absolute;left:0;right:0;background:linear-gradient(90deg,rgba(255,0,60,.55),rgba(0,255,255,.35),rgba(255,255,255,.6));transform:translateX(var(--dx));animation:tear .12s steps(2) infinite}
@keyframes tear{50%{transform:translateX(calc(var(--dx) * -1));opacity:.4}}
.player--frozen{filter:grayscale(1) contrast(1.4) brightness(.7);pointer-events:none}
.frozen-frame{display:grid;place-items:center;height:100%;min-height:220px;color:#ef4444;font-size:1.4rem;letter-spacing:.3em;
  background:repeating-linear-gradient(0deg,#111 0 2px,#1a0c0c 2px 4px)}
#cabal{position:fixed;inset:0;z-index:100;background:radial-gradient(circle at 50% 40%,#2a0507 0%,#070203 70%);display:grid;place-items:center;color:#ff4d4d;animation:cabIn .25s}
.cabal__scan{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(180deg,rgba(255,0,0,.07) 0 1px,transparent 1px 3px);animation:scan 6s linear infinite}
.cabal__noise{position:absolute;inset:0;pointer-events:none;opacity:.12;background:repeating-radial-gradient(circle at 30% 20%,#f00 0 1px,transparent 1px 3px);animation:glitch .3s steps(3) infinite}
.cabal__term{position:relative;width:min(760px,92vw);padding:1.6rem;border:1px solid rgba(239,68,68,.55);border-radius:14px;background:rgba(10,0,0,.7);
  box-shadow:0 0 0 1px rgba(239,68,68,.25),0 0 40px rgba(239,68,68,.35),inset 0 0 40px rgba(239,68,68,.08)}
.cabal__term pre{margin:0 0 1rem;font-size:.85rem;color:#ff8080;white-space:pre-wrap;min-height:12em;text-shadow:0 0 6px rgba(255,0,0,.6)}
.cabal__alert{font-size:clamp(1.6rem,5vw,3rem);font-weight:800;letter-spacing:.08em;color:#ff2a2a;text-shadow:0 0 14px #f00,0 0 40px rgba(255,0,0,.6);animation:blink 1s steps(2) infinite}
.cabal__msg{position:relative;font-size:1.15rem;color:#ffd1d1;margin:.6rem 0 1.2rem}
.cabal__msg::before,.cabal__msg::after{content:attr(data-text);position:absolute;inset:0;opacity:.7}
.cabal__msg::before{color:#0ff;transform:translate(-2px,0);clip-path:inset(0 0 55% 0);animation:glitch .9s infinite}
.cabal__msg::after{color:#f0f;transform:translate(2px,0);clip-path:inset(55% 0 0 0);animation:glitch 1.3s infinite reverse}
.cabal__btn{background:rgba(239,68,68,.12);border:1px solid #ef4444;color:#fff;box-shadow:0 0 18px rgba(239,68,68,.5);font-size:1rem;padding:.6rem 1.4rem}
.cabal__btn:hover{box-shadow:0 0 28px rgba(239,68,68,.8)}
@keyframes glitch{0%{transform:translate(0)}25%{transform:translate(-3px,1px);filter:hue-rotate(20deg)}50%{transform:translate(3px,-2px)}75%{transform:translate(-1px,2px);filter:hue-rotate(-20deg)}100%{transform:translate(0)}}
@keyframes scan{to{background-position:0 100vh}}@keyframes blink{50%{opacity:.55}}@keyframes cabIn{from{opacity:0;filter:brightness(3)}}
/* secret channel */
#secretch{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:#05060a;color:#7ea2ff;text-align:center;
  background-image:repeating-linear-gradient(180deg,rgba(47,107,255,.08) 0 1px,transparent 1px 3px)}
.sc__ch{color:#22c55e;letter-spacing:.3em;font-size:.8rem}.sc__t{position:relative;font-size:clamp(2.4rem,8vw,5rem);margin:.4rem 0;color:#fff;text-shadow:0 0 18px #2f6bff;animation:glitch .4s steps(2) 6}
.sc__t::after{content:attr(data-text);position:absolute;inset:0;color:#a855f7;opacity:.6;transform:translate(3px,-1px);clip-path:inset(40% 0 30% 0)}
@media (prefers-reduced-motion: reduce){
  body.cabal-glitch #app,body.cabal-glitch header{animation:none!important}
  .rev--out{transition:none}
}
