.afbtns{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 12px}.afb{display:flex;flex-direction:column;align-items:center;padding:12px 6px;border-radius:16px;color:#fff;text-decoration:none;font-size:26px;text-align:center;box-shadow:0 3px 10px #0003}
.afb b{font-size:15px}.afb small{font-size:11px;opacity:.9}.afb.camp{background:linear-gradient(135deg,#2c8a63,#0f3d2e)}.afb.onl{background:linear-gradient(135deg,#2f6fd6,#18306e)}.afb.sv{background:linear-gradient(135deg,#8a5a1f,#4a2e0c)}
.camp h2 small{font-size:14px;color:var(--mut)}.cbar{height:10px;background:#0002;border-radius:9px;overflow:hidden;margin-bottom:12px}.cbar i{display:block;height:100%;background:var(--acc)}
.cw{background-size:cover;background-position:center;border-radius:18px;padding:10px 12px 16px;margin-bottom:12px;color:#fff}.cw h3{margin:0 0 6px;text-shadow:0 2px 4px #000}
.cpath{display:flex;flex-direction:column;gap:6px}.cn{position:relative;width:74px;height:74px;border-radius:50%;border:4px solid #fff;background:#fffd;color:#0f3d2e;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:20px;box-shadow:0 4px 10px #0007;cursor:pointer}
.cn small{font-size:11px;font-weight:700}.cn.p0{margin-left:8%}.cn.p1{margin-left:38%}.cn.p2{margin-left:66%}.cn.p3{margin-left:38%}.cn.p4{margin-left:8%}
.cn.done{background:#f2b84b;color:#3a2600}.cn.next{background:#2c8a63;color:#fff;animation:afp 1.2s infinite}.cn.lock{background:#555b;color:#ddd;border-color:#aaa;cursor:default}.cn.boss{width:88px;height:88px;border-color:#ff7a3c}
.cn em{position:absolute;right:-10px;top:-8px;font-style:normal;font-size:22px}@keyframes afp{50%{transform:scale(1.08);box-shadow:0 0 0 8px #2c8a6355}}
.afpack .afcards{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-height:60vh;overflow:auto;margin:8px 0}
.onl,.svg{padding:4px}.afgo{width:100%;font-size:20px;padding:18px}.radar{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px}.radar i{width:90px;height:90px;border-radius:50%;border:4px solid #2f6fd6;animation:afr 1.4s infinite}
@keyframes afr{0%{transform:scale(.5);opacity:1}100%{transform:scale(1.4);opacity:0}}.botoffer{background:#fff3d6;border-radius:12px;padding:12px;margin:10px 0;display:flex;flex-direction:column;gap:6px}
.ohud{position:fixed;left:6px;right:6px;bottom:8px;z-index:60;background:#18306ef2;color:#fff;border-radius:14px;padding:8px 12px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;font-size:14px;box-shadow:0 4px 14px #0006}
.ohud .on{color:#7dffa0}.ohud .off{color:#ffb36b}.ohud .tm.low{color:#ff6b6b;font-weight:800}.ohud i.up{color:#7dffa0}.ohud i.dn{color:#ff8a8a}
.afback{position:fixed;left:50%;transform:translateX(-50%);bottom:14px;z-index:61}.svg textarea{width:100%;font:12px monospace;border-radius:10px;padding:8px}
.afbtns{grid-template-columns:repeat(2,1fr)}.afb.ch{background:linear-gradient(135deg,#d9a320,#7a4b00)}
.tok{position:relative;width:var(--w);aspect-ratio:5/7;border-radius:14px;padding:6px;overflow:hidden;color:#3a2600;flex:0 0 auto}
.tok.honor{background:linear-gradient(135deg,#fff3b0,#d4a017 30%,#fff8d6 50%,#b8860b 70%,#ffe680);box-shadow:0 0 0 2px #fff6,0 0 18px #ffd70099}
.tok.exclusive{background:linear-gradient(135deg,#1b1b3a,#5a3fd6 40%,#e0c3ff 55%,#3b2a8a);color:#fff;box-shadow:0 0 16px #8a5cff99}
.tok .holo{position:absolute;inset:-50%;background:conic-gradient(from 0deg,#ff00a033,#00ffd533,#fff20033,#7a00ff33,#ff00a033);mix-blend-mode:overlay;animation:holo 5s linear infinite}
@keyframes holo{to{transform:rotate(360deg)}}.tok .tin{position:relative;height:100%;border-radius:10px;border:2px solid #fff9;background:#fff3;display:flex;flex-direction:column;align-items:center;justify-content:space-around;text-align:center;padding:6px}
.tok .tin b{font-size:14px;line-height:1.2}.tok .tin i{font-style:normal;font-size:44px}.tok .tin em{font-style:normal;font-weight:800;font-size:15px}.tok .tin small{font-size:10px;font-weight:700;letter-spacing:.06em}
.afpack.finale .mbox{background:radial-gradient(circle at 50% 0,#fff3b0,#fff 60%);position:relative;overflow:hidden}.fin{text-align:center;font-size:24px;color:#8a5a00;animation:afp 1s infinite}
.burst{position:absolute;inset:-40%;background:repeating-conic-gradient(#ffd70033 0 10deg,transparent 10deg 20deg);animation:holo 12s linear infinite;pointer-events:none}
.afcards.sup .lfc{box-shadow:0 0 18px #b04fd6}.champ .lockc{background:#0001;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px}
.brk{display:flex;gap:6px;overflow-x:auto;margin:10px 0}.bcol{flex:1 0 110px}.bcol h4{margin:4px 0;font-size:12px}.bm{background:#fff;border-radius:10px;margin-bottom:6px;display:flex;flex-direction:column;font-size:12px;box-shadow:0 1px 4px #0002}
.bm span{padding:4px 6px}.bm span.w{font-weight:800;background:#f2b84b55}.bm.me{outline:2px solid #2c8a63}.chres{font-size:20px;font-weight:800;text-align:center}.tro{background:#fff3d6;border-radius:10px;padding:8px;margin:4px 0}

/* Cyrus, the World Ender: final campaign boss */
.cyrusbar{margin:14px 0;padding:14px;border:2px solid #d4a646;border-radius:14px;background-size:cover;background-position:center 20%;color:#f6d77a;display:grid;gap:4px;box-shadow:0 0 30px #ff1a2a88}
.cyrusbar small{color:#fff}.cyrusbar em{font-style:normal;font-weight:700;color:#ff6a6a}
.cyintro .mbox{background:radial-gradient(circle at 50% 0,#5a0010,#000 70%);color:#f3e3c0;border:2px solid #d4a646;max-width:440px}
.cyintro img{width:100%;border-radius:10px;box-shadow:0 0 40px #ff1a2a}.cyintro h2{color:#f0c060;text-shadow:0 0 16px #ff1a2a}.cyintro .cyst{font-size:.85em;color:#ffb0a0}.cyintro .cyp{font-weight:700;color:#ff5a5a}
.cydom{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;text-align:center;font:700 1.4em serif;color:#ffd7a0;text-shadow:0 0 18px #ff1a2a;background:radial-gradient(circle,#3a0008cc,#000e);animation:cydom 1.4s ease forwards;pointer-events:none}
@keyframes cydom{0%{opacity:0;transform:scale(1.2)}20%{opacity:1;transform:scale(1)}80%{opacity:1}100%{opacity:0}}
.cyseized{filter:drop-shadow(0 0 14px #ff1a2a) hue-rotate(-40deg) saturate(1.6);animation:cyshake .2s 6}
@keyframes cyshake{50%{transform:translateX(4px) rotate(2deg)}}
