/* Shadow Wars phase 1 (preview only) */
.sw-auth{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}
.hdr .btn-follow{margin-left:8px}
.sw-login{padding:.5em .9em}
.sw-me{display:inline-flex;align-items:center;gap:8px;color:var(--txt);font-weight:700;font-size:.85rem}
.sw-me img{display:block;flex:0 0 auto;width:34px;height:34px;box-sizing:border-box;border-radius:50%;object-fit:cover;background:#0b0b14;color:transparent;border:2px solid var(--cyan,#28c8ff);box-shadow:0 0 10px rgba(40,200,255,.55)}
.sw-me[aria-current="page"]{cursor:default}
.sw-me{-webkit-tap-highlight-color:transparent}
.sw-avatar-big{background:#0b0b14;color:transparent}
.sw-logout{margin:0}.sw-logout button{background:none;border:1px solid var(--line);color:var(--mute);border-radius:999px;padding:.35em .8em;font:600 .75rem var(--fb);cursor:pointer}
.sw-logout button:hover{color:#fff;border-color:var(--mag)}
.sw-accept{margin:2em 0;padding:1.4em;border:1px solid var(--mag);border-radius:var(--r);background:rgba(235,40,220,.08);box-shadow:0 0 24px rgba(235,40,220,.25)}
.sw-accept button{border:0;cursor:pointer}
.sw-profile{padding-top:28px;padding-bottom:40px}
.sw-card{display:flex;gap:24px;align-items:center;flex-wrap:wrap;padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 0 30px rgba(140,70,255,.18)}
.sw-avatar-big{width:140px;height:140px;border-radius:50%;object-fit:cover;border:3px solid var(--cyan);box-shadow:0 0 22px rgba(40,200,255,.6),0 0 44px rgba(235,40,220,.3)}
.sw-id h1{margin:0}.sw-id p{margin:.3em 0}
.sw-handle{color:var(--cyan);font-weight:700}
.sw-badge{display:inline-block;font:700 .7rem var(--fh);letter-spacing:.1em;padding:.35em .7em;border-radius:6px}
.sw-founding{color:#ffd76a;border:1px solid #ffd76a;box-shadow:0 0 12px rgba(255,215,106,.45);background:rgba(255,215,106,.08)}
.sw-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}
.sw-stat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}
.sw-stat-n{font:800 1.6rem var(--fh);color:#fff;text-shadow:0 0 12px rgba(140,70,255,.7)}
.sw-stat-l{font:700 .68rem var(--fh);letter-spacing:.14em;color:var(--mute);text-transform:uppercase}
.sw-tier{font:800 1.1rem var(--fh);letter-spacing:.08em;padding:.15em 0}
.sw-tier-bronze{color:#e0915a;text-shadow:0 0 10px rgba(224,145,90,.6)}.sw-tier-silver{color:#d6dbe8}.sw-tier-gold{color:#ffd76a}
.sw-tier-platinum{color:#8ff0ff}.sw-tier-diamond{color:var(--cyan)}.sw-tier-shadow{color:var(--mag)}
@media (max-width:520px){.sw-stats{grid-template-columns:1fr 1fr 1fr;gap:6px}.sw-stat{padding:10px 4px}.sw-stat-n{font-size:1.2rem}.sw-avatar-big{width:96px;height:96px}.sw-me img{width:30px;height:30px}}
.sw-own-logout{margin-top:6px}
@media (max-width:520px){.sw-auth .sw-logout{display:none}.sw-auth+.btn-follow{margin-left:6px}.hdr{gap:6px}}
@media (max-width:420px){.hdr .wm{font-size:.82rem}.hdr .brand img{width:36px;height:36px}.sw-login{padding:.45em .7em;font-size:.78rem}}

/* ===== Shadow Wars phases 2-3 (preview only) ===== */
.sw-nav-play{color:#fff!important;font-weight:800;text-shadow:0 0 10px rgba(235,40,220,.8)}
.sw-crown{display:inline-flex;align-items:center;gap:2px;margin-left:4px;vertical-align:middle}
.sw-crown .sw-av{width:20px;height:20px}
.sw-av{display:inline-block;border-radius:50%;object-fit:cover;background:#0b0b14;border:2px solid var(--line);vertical-align:middle;flex:0 0 auto}
.sw-f-frame_cyan{border-color:var(--cyan);box-shadow:0 0 10px rgba(40,200,255,.8)}
.sw-f-frame_mag{border-color:var(--mag);box-shadow:0 0 10px rgba(235,40,220,.85)}
.sw-f-frame_gold{border-color:#ffc83d;box-shadow:0 0 12px rgba(255,200,61,.9)}
.sw-crowned{border-color:#ffc83d!important;box-shadow:0 0 14px rgba(255,200,61,.7)}
.sw-who{display:inline-flex;align-items:center;gap:5px;font-weight:700;color:var(--cyan)}
.sw-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:.55em 1.1em;border:0;border-radius:999px;cursor:pointer;
  font:800 .82rem var(--fh);letter-spacing:.05em;color:#07060f;background:linear-gradient(90deg,var(--cyan),var(--mag));box-shadow:0 0 16px rgba(235,40,220,.45);text-decoration:none!important;margin:4px 6px 4px 0}
.sw-btn:disabled{opacity:.55;cursor:wait}
.sw-btn.sw-ghost{background:transparent;color:var(--cyan);border:1px solid var(--cyan);box-shadow:inset 0 0 10px rgba(40,200,255,.2)}
.sw-btn.sw-alt{background:linear-gradient(90deg,#ffc83d,#ff8a3d);box-shadow:0 0 14px rgba(255,200,61,.45)}
.sw-btn.sw-steal{background:linear-gradient(90deg,#ff3d6e,var(--mag));color:#fff;box-shadow:0 0 18px rgba(255,61,110,.6)}
.sw-mini{display:inline-block;font:700 .75rem var(--fb);color:var(--mute);background:none;border:0;padding:6px 0;cursor:pointer}
.sw-note,.sw-owntag,.sw-shieldtag{display:inline-flex;align-items:center;gap:4px;font:700 .78rem var(--fb);padding:.4em .8em;border-radius:999px;border:1px solid var(--line);margin:4px 6px 4px 0}
.sw-owntag{color:#ffe08a;border-color:#ffc83d;background:rgba(255,200,61,.1)}
.sw-shieldtag{color:#8ff0ff;border-color:var(--cyan);background:rgba(40,200,255,.1)}
.sw-rule{color:var(--soft);border-left:3px solid var(--mag);padding:.3em .7em;margin:.8em 0;background:rgba(235,40,220,.06);font-size:.8rem}
/* cards */
.sw-cardbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.sw-like,.sw-like-s{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:.25em .8em;border-radius:999px;border:1px solid var(--line);background:rgba(17,14,36,.8);color:var(--soft);font:700 .8rem var(--fb);cursor:pointer}
.sw-like-s{min-height:30px;padding:.15em .65em}
.sw-like.on,.sw-like-s.on{color:#fff;border-color:var(--mag);background:rgba(235,40,220,.18);box-shadow:0 0 10px rgba(235,40,220,.45)}
.sw-like.on .sw-heart,.sw-like-s.on .sw-heart{color:var(--mag)}
.sw-ownchip{font-size:.78rem;color:#ffe08a}
.sw-ownchip .sw-who{color:#ffe08a}
.sw-free{font:700 .74rem var(--fb);color:var(--mute)}
/* story panel */
.sw-gp{margin:18px 0;padding:16px;border-radius:var(--r);border:1px solid var(--mag);background:linear-gradient(160deg,rgba(235,40,220,.1),rgba(40,200,255,.06));box-shadow:0 0 26px rgba(235,40,220,.22)}
.sw-gp-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.sw-gp-h h2{margin:0;font-size:.95rem}
.sw-gp-top{display:flex;gap:14px;align-items:center;margin:10px 0}
.sw-val{display:flex;flex-direction:column;align-items:center;min-width:92px;padding:8px 10px;border-radius:12px;background:#0b0918;border:1px solid var(--line)}
.sw-val-n{font:900 1.5rem var(--fh);color:#fff;text-shadow:0 0 12px rgba(40,200,255,.8)}
.sw-val-l{font:700 .6rem var(--fh);letter-spacing:.14em;color:var(--mute)}
.sw-gp-meta{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.sw-gp-owner{margin:6px 0 8px}
.sw-gp-acts{display:flex;flex-wrap:wrap;align-items:center}
/* ticker */
.sw-ticker{display:flex;align-items:center;gap:8px;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:rgba(11,9,24,.85);padding:4px 6px;margin:12px 0;min-height:34px}
.sw-tk-lab{flex:0 0 auto;font:900 .65rem var(--fh);letter-spacing:.12em;color:#fff;background:#ff3d6e;border-radius:999px;padding:.35em .7em;box-shadow:0 0 10px rgba(255,61,110,.7);animation:swpulse 1.6s infinite}
.sw-tk-track{overflow:hidden;flex:1;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.sw-tk-in{display:inline-flex;gap:28px;white-space:nowrap;animation:swscroll 60s linear infinite;font-size:.8rem;color:var(--soft)}
.sw-tk.big{color:#ffe08a}.sw-tk i{color:var(--mute);font-style:normal;font-size:.7rem}
@keyframes swscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes swpulse{50%{box-shadow:0 0 2px rgba(255,61,110,.3)}}
/* play pages */
.sw-page{padding-top:16px;padding-bottom:40px;max-width:760px}
.sw-tabs{display:flex;gap:6px;overflow-x:auto;padding:4px 0 10px;scrollbar-width:none}
.sw-tabs a{flex:0 0 auto;padding:.5em .9em;border-radius:999px;border:1px solid var(--line);color:var(--soft);font:700 .78rem var(--fb);background:var(--panel)}
.sw-tabs a[aria-current]{color:#07060f;background:linear-gradient(90deg,var(--cyan),var(--mag));border-color:transparent}
.sw-box{margin:14px 0;padding:14px;border-radius:var(--r);border:1px solid var(--line);background:var(--panel)}
.sw-box h2{font-size:.9rem;margin:0 0 10px}
.sw-box-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.sw-mebar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:14px;border-radius:var(--r);border:1px solid var(--cyan);background:linear-gradient(120deg,rgba(40,200,255,.12),rgba(235,40,220,.1));box-shadow:0 0 22px rgba(40,200,255,.2)}
.sw-mebar.sw-out{justify-content:space-between}.sw-mebar.sw-out p{margin:.2em 0}
.sw-me-av{width:54px;height:54px;border-width:3px}
.sw-me-id{display:flex;flex-direction:column;gap:2px;min-width:120px}
.sw-me-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;width:100%}
.sw-me-stats span{display:flex;flex-direction:column;align-items:center;padding:6px 2px;border-radius:10px;background:rgba(7,6,15,.6)}
.sw-me-stats b{font:900 1.05rem var(--fh);color:#fff}.sw-me-stats .sw-pts{color:var(--cyan);text-shadow:0 0 10px rgba(40,200,255,.8)}
.sw-me-stats i{font:700 .55rem var(--fh);letter-spacing:.12em;color:var(--mute);font-style:normal}
.sw-tierb{display:inline-block;font:800 .66rem var(--fh);letter-spacing:.1em;padding:.2em .6em;border-radius:6px;border:1px solid currentColor;width:max-content}
.sw-buff{font:700 .7rem var(--fb);color:#7dffb0}
.sw-season{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:12px 0;padding:10px 14px;border-radius:var(--r);background:#0b0918;border:1px dashed var(--purp);font-size:.85rem}
.sw-season b{font:800 .95rem var(--fh);color:var(--mag);text-shadow:0 0 10px rgba(235,40,220,.7)}
.sw-paused{padding:10px;border-radius:10px;background:rgba(255,200,61,.12);border:1px solid #ffc83d}
.sw-cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sw-cta{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px;border-radius:var(--r);border:1px solid var(--line);background:var(--panel);color:var(--txt);text-decoration:none!important}
.sw-cta span{font-size:1.6rem}.sw-cta b{font:800 .85rem var(--fh)}.sw-cta i{font-style:normal;font-size:.75rem;color:var(--mute)}
.sw-cta-wheel{grid-column:1/-1;border-color:var(--mag);background:linear-gradient(120deg,rgba(235,40,220,.22),rgba(140,70,255,.18));box-shadow:0 0 24px rgba(235,40,220,.35)}
.sw-cta-wheel b{font-size:1.05rem}
.sw-cap{margin:6px 0}.sw-cap span{display:flex;justify-content:space-between;font-size:.8rem}.sw-cap i{font-style:normal;color:var(--mute)}
.sw-capbar{height:8px;border-radius:99px;background:#0b0918;overflow:hidden}.sw-capbar b{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--mag))}
.sw-top3{list-style:none;margin:0;padding:0}.sw-top3 li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid rgba(42,35,80,.6)}.sw-top3 b{margin-left:auto;color:var(--cyan)}
.sw-ters{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sw-ter{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border-radius:12px;border:1px solid var(--line);background:#0b0918;color:var(--txt);text-align:center;text-decoration:none!important}
.sw-ter-h{font:800 .75rem var(--fh);letter-spacing:.06em}.sw-ter b{font-size:.8rem;color:#ffe08a}.sw-ter i{font-style:normal;font-size:.7rem;color:var(--mute)}.sw-ter-empty{font-size:.75rem;color:var(--mute);padding:12px 0}
.sw-ter-tech,.sw-ter-movies{border-color:rgba(40,200,255,.5)}.sw-ter-anime,.sw-ter-games{border-color:rgba(235,40,220,.5)}
.sw-feed{list-style:none;margin:0;padding:0}
.sw-ev{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid rgba(42,35,80,.6);font-size:.85rem}
.sw-ev .sw-av{width:30px;height:30px}.sw-ev-t{display:flex;flex-direction:column}.sw-ev-t a{color:var(--txt)}.sw-ev i{font-style:normal;font-size:.7rem;color:var(--mute)}
.sw-ev.big .sw-ev-t a,.sw-ev.big .sw-ev-t{color:#ffe08a}.sw-ev-steal.big{background:linear-gradient(90deg,rgba(255,61,110,.12),transparent)}
.sw-ev-ic{font-size:1.2rem;width:30px;text-align:center}
.sw-prow{display:flex;gap:10px;padding:10px;margin:8px 0;border-radius:12px;border:1px solid var(--line);background:#0b0918}
.sw-prow-img{width:84px;height:84px;object-fit:cover;border-radius:8px;flex:0 0 auto}
.sw-ph{display:flex;align-items:center;justify-content:center;font-size:2rem;background:var(--panel)}
.sw-prow-b{min-width:0;flex:1}
.sw-prow-t{display:block;font-weight:700;color:var(--txt);font-size:.88rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sw-prow-m{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.75rem;margin:4px 0;color:var(--soft)}
.sw-v{font-weight:800;color:#fff}
.sw-prow-o{font-size:.78rem}
.sw-prow-a .sw-btn{min-height:38px;font-size:.72rem;padding:.4em .9em}
.sw-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}
.sw-chips button{flex:0 0 auto;border:1px solid var(--line);background:#0b0918;color:var(--soft);border-radius:999px;padding:.45em .8em;font:700 .75rem var(--fb);cursor:pointer}
.sw-chips button.on{border-color:var(--cyan);color:#fff;box-shadow:0 0 10px rgba(40,200,255,.4)}
.sw-wheelbox{text-align:center}
.sw-wheel{position:relative;width:min(84vw,340px);margin:10px auto 16px}
#sw-rot{overflow:hidden;border-radius:50%;box-shadow:0 0 0 6px #0b0918,0 0 0 8px var(--mag),0 0 40px rgba(235,40,220,.55)}
.sw-wheel-svg{width:100%;height:auto;display:block;border-radius:50%}
.sw-wheel-svg text{fill:#fff;font:900 9px var(--fh);letter-spacing:.06em}
.sw-pointer{position:absolute;top:-14px;left:50%;transform:translateX(-50%);z-index:2;color:#fff;font-size:1.6rem;text-shadow:0 0 10px var(--cyan),0 0 20px var(--cyan)}
.sw-spin{font-size:1rem;min-width:220px;min-height:52px}
.sw-win{margin:14px 0;padding:10px;border-radius:14px;border:2px solid;animation:swpop .5s ease-out}
.sw-win-k{font:900 .95rem var(--fh);margin:4px 0}
@keyframes swpop{from{transform:scale(.85);opacity:0}to{transform:none;opacity:1}}
.sw-shop{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sw-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;border-radius:12px;border:1px solid var(--line);background:#0b0918}
.sw-item p{margin:0;color:var(--soft)}.sw-item .sw-btn{margin-top:auto}
.sw-item-cosmetic{border-color:rgba(255,200,61,.4)}
.sw-lb{list-style:none;margin:0;padding:0}
.sw-lb li{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid rgba(42,35,80,.6)}
.sw-lb li.me{background:rgba(40,200,255,.08);border-radius:10px}
.sw-rank{font:900 1rem var(--fh);width:28px;text-align:center;color:var(--mute)}
.sw-lb li:nth-child(1) .sw-rank{color:#ffc83d}.sw-lb li:nth-child(2) .sw-rank{color:#d6dbe8}.sw-lb li:nth-child(3) .sw-rank{color:#e0915a}
.sw-lb-id{flex:1;min-width:0;line-height:1.35}.sw-lb-id a{font-weight:800}
.sw-lb-pr{display:flex;flex-direction:column;align-items:flex-end;font:900 1.05rem var(--fh);color:#fff}.sw-lb-pr i{font:700 .55rem var(--fh);color:var(--mute);font-style:normal}
.sw-fm{color:#ffd76a}
.sw-leader{display:flex;align-items:center;gap:12px;margin:12px 0 0;padding:10px 14px;border-radius:var(--r);border:1px solid #ffc83d;background:rgba(255,200,61,.08);box-shadow:0 0 18px rgba(255,200,61,.25);color:var(--txt);text-decoration:none!important;max-width:520px}
.sw-leader>span{display:flex;flex-direction:column}.sw-leader-k{font:800 .62rem var(--fh);letter-spacing:.12em;color:#ffe08a}.sw-leader b{color:#fff}
.sw-toast{position:fixed;left:50%;bottom:18px;transform:translate(-50%,30px);opacity:0;z-index:99;max-width:92vw;padding:.8em 1.2em;border-radius:12px;background:#110e24;border:1px solid var(--cyan);box-shadow:0 0 22px rgba(40,200,255,.45);font-weight:700;font-size:.88rem;transition:.3s}
.sw-toast.on{opacity:1;transform:translate(-50%,0)}.sw-toast.bad{border-color:#ff3d6e;box-shadow:0 0 22px rgba(255,61,110,.45)}
.sw-modal{position:fixed;inset:0;z-index:98;background:rgba(3,2,8,.75);display:flex;align-items:flex-end;justify-content:center;padding:12px}
.sw-modal-box{width:100%;max-width:440px;padding:18px;border-radius:18px;background:var(--panel);border:1px solid var(--mag);box-shadow:0 0 30px rgba(235,40,220,.4)}
.sw-modal-box h3{margin:0 0 .5em}.sw-modal-btns{display:flex;justify-content:flex-end;gap:6px;margin-top:10px}
.sw-lab{display:flex;flex-direction:column;gap:4px;margin:8px 0;font-size:.8rem;font-weight:700}
.sw-lab select,.sw-lab textarea{background:#0b0918;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:.6em;font:500 .9rem var(--fb)}
.sw-p-extra .sw-box{margin:12px 0}
.sw-title{font:800 .72rem var(--fh);letter-spacing:.12em;color:#ffe08a}
.sw-ach{display:flex;flex-wrap:wrap;gap:6px}.sw-ach span{font:700 .72rem var(--fb);padding:.35em .7em;border-radius:999px;border:1px solid var(--line);background:#0b0918}
.sw-ach .k-loyalty{border-color:var(--cyan);color:#8ff0ff}.sw-ach .k-badge{border-color:#ffd76a;color:#ffd76a}
.sw-how td,.sw-how th{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;font-size:.85rem}.sw-how table{border-collapse:collapse;width:100%}
@media (min-width:700px){.sw-modal{align-items:center}.sw-cta-grid{grid-template-columns:repeat(4,1fr)}.sw-cta-wheel{grid-column:auto}.sw-ters{grid-template-columns:repeat(4,1fr)}.sw-shop{grid-template-columns:repeat(3,1fr)}}
@media (max-width:420px){.sw-shop{grid-template-columns:1fr 1fr}.sw-prow-img{width:64px;height:64px}.sw-me-stats b{font-size:.92rem}}
.sw-win .sw-prow{text-align:left}
/* ---------- phase 4: bosses, duels, crews, chat, hall, admin, heat, events ---------- */
.sw-lab input{background:#0b0918;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:.6em;font:500 .9rem var(--fb)}
.sw-hp{position:relative;height:22px;border-radius:999px;background:#1a0d1c;border:1px solid #ff3d6e;overflow:hidden;margin:8px 0}
.sw-hp b{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#ff3d6e,#ff8a3d);box-shadow:0 0 16px rgba(255,61,110,.7);transition:width .6s ease-out}
.sw-hp span{position:relative;display:block;text-align:center;font:800 .72rem/22px var(--fh);color:#fff;text-shadow:0 1px 3px #000}
.sw-hp.enraged{border-color:#ff1a1a;animation:swrage 1s ease-in-out infinite}.sw-hp.enraged b{background:linear-gradient(90deg,#ff1a1a,#ff3df0)}
@keyframes swrage{50%{box-shadow:0 0 18px rgba(255,26,26,.8)}}
.sw-bossban{display:block;margin:12px 0;padding:12px 14px;border-radius:var(--r);border:1px solid #ff3d6e;background:linear-gradient(135deg,rgba(255,61,110,.16),rgba(120,20,90,.18));color:var(--txt);text-decoration:none;box-shadow:0 0 22px rgba(255,61,110,.3)}
.sw-bossban b{display:block;font:900 1.05rem var(--fh);color:#fff}.sw-bossban i{font-style:normal;font-size:.75rem;color:var(--soft)}
.sw-bossban-k{display:block;font:800 .6rem var(--fh);letter-spacing:.14em;color:#ff9db5}
.sw-bossban.enraged{border-color:#ff1a1a;animation:swrage 1.2s infinite}.sw-bossban-next{border-color:var(--line);background:#0b0918;box-shadow:none}
.sw-evban{margin:8px 0;padding:10px 12px;border-radius:12px;font:700 .8rem var(--fb);border:1px solid #ffc83d;background:rgba(255,200,61,.1);color:#ffe9a8}
.sw-evban-hot_post{border-color:#ff7a3d;background:rgba(255,122,61,.1);color:#ffc7a8}.sw-evban a{color:#fff}
.sw-cta-boss{border-color:#ff3d6e !important}
.sw-spots{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.sw-spotc{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border-radius:12px;border:1px solid var(--line);background:#0b0918;text-align:center;color:var(--txt);text-decoration:none}
.sw-spotc b{font-size:.82rem;color:#fff}.sw-spotc i{font-style:normal;font-size:.7rem;color:var(--soft)}
.sw-spot-k{font:800 .58rem var(--fh);letter-spacing:.1em;color:#8ff0ff}.sw-spot-pinned{border-color:#ffc83d}.sw-spot-boss{border-color:#ff3d6e}
.sw-emb{font-size:1.4rem;line-height:1}.sw-emb-l{font-size:2.4rem}
.sw-bossbox{text-align:center;border-color:#ff3d6e}.sw-bossbox.enraged{box-shadow:0 0 30px rgba(255,26,26,.35)}
.sw-bossbox.hit{animation:swshake .35s}
@keyframes swshake{20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}
.sw-boss-k{font:800 .62rem var(--fh);letter-spacing:.14em;color:#ff9db5;margin:0}.sw-boss-n{font:900 1.35rem var(--fh);margin:.2em 0;text-shadow:0 0 16px rgba(255,61,110,.7)}
.sw-atk{margin:12px 0}.sw-atkbtn{font-size:1.05rem;min-width:220px;min-height:54px;background:linear-gradient(135deg,#ff3d6e,#ff7a3d) !important;border-color:#ff3d6e !important}
.sw-energy{display:flex;justify-content:center;gap:4px;margin:8px 0}.sw-energy i{font-style:normal;opacity:.2;filter:grayscale(1)}.sw-energy i.on{opacity:1;filter:none;text-shadow:0 0 8px #ffc83d}
.sw-dmg{font:900 1.8rem var(--fh);color:#ff3d6e;margin:4px 0;animation:swpop .4s ease-out;text-shadow:0 0 14px rgba(255,61,110,.8)}
.sw-bigcd{font:900 1.4rem var(--fh);color:#fff}.sw-h3{font:800 .85rem var(--fh);margin:14px 0 6px;text-align:left}
.sw-bossbox .sw-prow,.sw-bossbox .sw-how{text-align:left}.sw-bossbtn{background:linear-gradient(135deg,#ff3d6e,#a24bff) !important}
.sw-mythtag{border-color:#ff3df0 !important;color:#ffb3f7 !important}
details.sw-how{margin-top:10px;text-align:left}details.sw-how summary{cursor:pointer;font-weight:800;color:#8ff0ff}
.sw-lb-s li{padding:7px 4px}
.sw-heat{display:flex;align-items:center;gap:8px;margin:8px 0;font:800 .7rem var(--fh)}.sw-heat i{font-style:normal;color:#ffb37a;width:26px}
.sw-heatbar{flex:1;height:8px;border-radius:999px;background:#1a1226;overflow:hidden}.sw-heatbar b{display:block;height:100%;background:linear-gradient(90deg,#ffc83d,#ff3d6e);box-shadow:0 0 10px rgba(255,120,60,.7)}
.sw-xlive{margin:0 0 6px}
.sw-duel,.sw-war{padding:10px;margin:8px 0;border-radius:12px;border:1px solid var(--line);background:#0b0918}
.sw-duel-active,.sw-war-active{border-color:var(--cyan)}.sw-duel-pending,.sw-war-proposed{border-color:#ffc83d}
.sw-duel-h{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;font-size:.85rem}.sw-duel-h b{color:#fff}
.sw-vs{font:900 .7rem var(--fh);color:#ff3d6e;padding:0 4px}
.sw-tug{position:relative;height:20px;border-radius:999px;background:#ff3d6e;overflow:hidden;margin:8px 0}
.sw-tug b{position:absolute;inset:0 auto 0 0;background:var(--cyan);box-shadow:0 0 12px rgba(40,200,255,.7);transition:width .6s}
.sw-tug span{position:relative;display:block;text-align:center;font:800 .7rem/20px var(--fh);color:#fff;text-shadow:0 1px 3px #000}
.sw-pickposts{display:flex;flex-direction:column;gap:6px;margin:8px 0;max-height:260px;overflow:auto}
.sw-pp{display:flex;align-items:center;gap:6px;padding:8px;border-radius:10px;border:1px solid var(--line);background:#0b0918;font-size:.8rem}
.sw-pp input{accent-color:var(--cyan);width:18px;height:18px}
.sw-crewtag{font:800 .62rem var(--fh);padding:.15em .45em;border-radius:6px;border:1px solid var(--cyan);color:#8ff0ff}
.sw-crew-h{display:flex;align-items:center;gap:12px}.sw-crew-h h2{margin:0}
.sw-members{list-style:none;margin:8px 0;padding:0}.sw-members li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid rgba(42,35,80,.6);flex-wrap:wrap}
.sw-members .small{margin-left:auto}.sw-crew-acts{display:flex;align-items:flex-end;gap:8px}.sw-crew-acts .sw-lab{flex:1}
.sw-chips button:disabled{opacity:.35}
.sw-chatbox{display:flex;flex-direction:column}
.sw-chat{height:min(56vh,460px);overflow-y:auto;padding:6px;border-radius:12px;border:1px solid var(--line);background:#07060f;margin:8px 0}
.sw-msg{display:flex;gap:8px;padding:6px 4px}.sw-msg p{margin:2px 0 0;font-size:.88rem;word-break:break-word}.sw-msg>div{min-width:0;flex:1}
.sw-msg-h{display:flex;align-items:center;gap:6px;font-size:.75rem}.sw-msg-h a{font-weight:800}.sw-msg-h i{color:var(--mute);font-style:normal}
.sw-msg-h .sw-rep{margin-left:auto;padding:0 .4em;opacity:.5}.sw-msg.mine p{color:#cfefff}
.sw-chatf{display:flex;gap:6px}.sw-chatf input{flex:1;min-width:0;background:#0b0918;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:.7em;font:500 .95rem var(--fb)}
.sw-rewards{padding-left:1.1em}.sw-rewards li{margin:4px 0;font-size:.85rem}
.sw-rep-i{padding:10px 0;border-bottom:1px solid var(--line)}.sw-rep-i blockquote{margin:6px 0;padding:6px 10px;border-left:3px solid #ff3d6e;background:#0b0918;font-size:.85rem}
.sw-rel{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0}.sw-rel .sw-mini{display:inline-flex;align-items:center;gap:6px}.sw-rel img{border-radius:50%}
.sw-fl{font:700 .62rem var(--fh);color:#8ff0ff}.sw-nem{color:#ff9db5}
.sw-pick .sw-chips button{font-size:.8rem}
@media (min-width:700px){.sw-spots{grid-template-columns:repeat(3,1fr)}}
#sw-app[data-view=admin] .sw-chips,.sw-rep-i .sw-chips{flex-wrap:wrap;overflow:visible}
#sw-app[data-view=admin] li,#sw-app[data-view=admin] p{overflow-wrap:anywhere}
.sw-chat{height:min(46vh,460px)}
.sw-f-frame_champion{border-color:#ffd76a;box-shadow:0 0 0 2px #ff3df0,0 0 16px rgba(255,215,106,.95)}
.sw-testgrant{border-color:var(--cyan);box-shadow:0 0 24px rgba(40,200,255,.25)}
.sw-tg-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.sw-tg-big{font-size:1.25rem;padding:14px 22px;flex:1 1 180px}
.sw-tg-bal{margin:12px 0 4px;font-size:1.05rem}
.sw-btn.sw-spin:disabled{cursor:not-allowed}.sw-btn.sw-capped{font-size:.95em}
/* ---------- 🎒 Bag (header badge + /play/bag/) */
.sw-bag{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:rgba(17,14,36,.85);text-decoration:none!important;-webkit-tap-highlight-color:transparent;flex:0 0 auto;transition:border-color .2s,box-shadow .2s}
.sw-bag:hover,.sw-bag[aria-current="page"]{border-color:var(--mag);box-shadow:0 0 12px rgba(235,40,220,.5)}
.sw-bag-ic{font-size:1.15rem;line-height:1}
.sw-bag-n{position:absolute;top:-5px;right:-6px;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:999px;background:linear-gradient(90deg,var(--cyan),var(--mag));color:#07060f;font:900 .62rem/18px var(--fh);text-align:center;box-shadow:0 0 8px rgba(235,40,220,.7)}
.sw-bag-n[hidden]{display:none}
.sw-bag.sw-bump{animation:swbagpop .7s ease-out}
.sw-bag.sw-bump .sw-bag-n{animation:swbagn .7s ease-out}
.sw-bag-plus{position:absolute;left:50%;top:-4px;transform:translateX(-50%);font:900 .8rem var(--fh);color:#fff;text-shadow:0 0 8px var(--mag),0 0 14px var(--cyan);pointer-events:none;animation:swbagup 1.2s ease-out forwards}
@keyframes swbagpop{0%{transform:scale(1)}30%{transform:scale(1.28) rotate(-8deg)}60%{transform:scale(.95) rotate(4deg)}100%{transform:none}}
@keyframes swbagn{0%,100%{transform:none}40%{transform:scale(1.5)}}
@keyframes swbagup{from{opacity:1;transform:translate(-50%,0)}to{opacity:0;transform:translate(-50%,-26px)}}
@media (prefers-reduced-motion:reduce){.sw-bag.sw-bump,.sw-bag.sw-bump .sw-bag-n,.sw-bag-plus{animation:none}}
@media (max-width:520px){.sw-bag{width:34px;height:34px}.sw-bag-ic{font-size:1rem}}
.sw-toast-a{display:inline-block;margin-left:10px;color:var(--cyan);font-weight:800;white-space:nowrap}
.sw-win-bag{margin:8px 0 2px;text-align:center}.sw-win-bag .sw-btn{margin:0}
.sw-bag-tot{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.sw-bag-tot div{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 6px;border-radius:12px;border:1px solid var(--line);background:linear-gradient(160deg,rgba(40,200,255,.1),rgba(235,40,220,.08));text-align:center}
.sw-bag-tot b{font:900 1.25rem var(--fh);color:#fff;text-shadow:0 0 12px rgba(40,200,255,.7);white-space:nowrap}
.sw-bag-tot i{font:700 .6rem var(--fh);font-style:normal;letter-spacing:.12em;color:var(--mute)}
.sw-bag-ctl .sw-chips{padding-bottom:6px;margin-bottom:2px}
.sw-bag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:10px 0}
.sw-bagc{display:flex;flex-direction:column;border-radius:14px;border:1px solid var(--line);background:#0b0918;overflow:hidden;min-width:0}
.sw-bagc.r-common{border-color:#6b6f86}.sw-bagc.r-rare{border-color:#2f8cff;box-shadow:0 0 12px rgba(47,140,255,.3)}
.sw-bagc.r-epic{border-color:#a24bff;box-shadow:0 0 14px rgba(162,75,255,.4)}.sw-bagc.r-legendary{border-color:#ffc83d;box-shadow:0 0 16px rgba(255,200,61,.45)}
.sw-bagc.r-mythic{border-color:#ff3df0;box-shadow:0 0 18px rgba(255,61,240,.5)}
.sw-bagc-img{position:relative;display:block;aspect-ratio:16/9;background:#07060f}
.sw-bagc-img img{width:100%;height:100%;object-fit:cover;display:block}
.sw-bagc-img .sw-ph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:2.4rem}
.sw-bagc-img .rbadge{position:absolute;left:8px;top:8px}
.sw-bagc-b{display:flex;flex-direction:column;gap:6px;padding:10px 12px 12px;flex:1}
.sw-bagc-t{font-weight:800;color:var(--txt);font-size:.9rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sw-bagc-m{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:.75rem;color:var(--soft)}
.sw-bagc-tm{display:flex;flex-wrap:wrap}.sw-bagc-tm>span{margin:0 6px 0 0;font-size:.72rem}
.sw-owntag.sw-warn{color:#ffd28a;border-color:#ff9d3d;background:rgba(255,157,61,.12);box-shadow:0 0 8px rgba(255,157,61,.35)}
.sw-bagc-f{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto}
.sw-bagc-go{color:var(--cyan)!important;padding:4px 0}
.sw-bag-empty{text-align:center;padding:24px 14px}.sw-bag-big{font-size:3rem;margin:0;filter:drop-shadow(0 0 14px rgba(235,40,220,.6))}
.sw-lost ul{list-style:none;margin:0;padding:0}
.sw-lost-i{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.sw-lost-i:first-child{border-top:0}
.sw-lost-i>a{flex:0 0 auto}.sw-lost-i>a>img,.sw-lost-i>a>.sw-ph{width:64px;height:40px;object-fit:cover;border-radius:6px;display:flex;align-items:center;justify-content:center;background:#07060f;filter:grayscale(.6);opacity:.8}
.sw-lost-i>div{min-width:0}.sw-lost-i p{margin:3px 0 0;color:var(--soft)}
.sw-lost-t{font-weight:700;font-size:.82rem;color:var(--txt);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:420px){.sw-bag-grid{grid-template-columns:1fr}.sw-bag-tot{gap:6px}.sw-bag-tot b{font-size:1rem}.sw-bag-tot i{font-size:.52rem;letter-spacing:.08em}}
/* Bag: narrow phones. Header with bag + avatar + Follow must fit 360px without clipping the wordmark (preview only). */
@media (max-width:420px){
 .site-header:has(.sw-bag) .hdr{gap:6px}
 .site-header:has(.sw-bag) .brand{gap:6px}.site-header:has(.sw-bag) .brand img{width:36px;height:36px}
 .site-header:has(.sw-bag) .wm{font-size:.86rem;letter-spacing:.03em;gap:.25em}
 .site-header:has(.sw-bag) .btn-follow{padding:.45em .65em;font-size:.76rem}
 .sw-auth:has(.sw-bag){gap:6px}.sw-bag{width:32px;height:32px}.sw-bag-ic{font-size:.95rem}
}
/* Bag cards on phones: compact rows (thumb left, details right) so several fit on one screen */
@media (max-width:520px){
 .sw-bag-grid{grid-template-columns:1fr;gap:10px}
 .sw-bagc{flex-direction:row;align-items:stretch}
 .sw-bagc-img{flex:0 0 112px;width:112px;aspect-ratio:auto;min-height:112px}
 .sw-bagc-img .rbadge{left:5px;top:5px;font-size:.55rem;padding:.2em .45em}
 .sw-bagc-b{padding:8px 10px;gap:5px}
 .sw-bagc-t{font-size:.84rem}
 .sw-bagc-m{font-size:.7rem;gap:4px 8px}
 .sw-bagc-tm>span{font-size:.68rem;padding:.3em .6em;margin:2px 4px 2px 0}
 .sw-bagc-f .small{font-size:.66rem}
}
.sw-lost .sw-who img{width:18px;height:18px}.sw-lost-sub{margin:-6px 0 6px;font-size:.72rem;color:var(--mute)}
/* ---------- Rarity badges: solid, opaque, readable on any image (preview only; production style.css untouched).
   Was: translucent 15% fill + light-tinted text, so on light thumbnails the text vanished (looked like an empty pill)
   and on dark/busy art the whole tag disappeared. */
.rbadge{display:inline-block;font:900 .64rem/1.25 var(--fh);letter-spacing:.09em;padding:.32em .6em;border-radius:6px;white-space:nowrap;
  border:1.5px solid rgba(7,6,15,.9);color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.55),0 0 2px rgba(0,0,0,.6);
  box-shadow:0 0 0 1px rgba(255,255,255,.22),0 2px 6px rgba(0,0,0,.65)}
.rbadge.rb-common{background:linear-gradient(180deg,#7a8096,#555b70);color:#fff}
.rbadge.rb-rare{background:linear-gradient(180deg,#3b95ff,#1a62d6);color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.25),0 2px 6px rgba(0,0,0,.65),0 0 10px rgba(47,140,255,.55)}
.rbadge.rb-epic{background:linear-gradient(180deg,#a65bff,#7232d6);color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.25),0 2px 6px rgba(0,0,0,.65),0 0 10px rgba(162,75,255,.6)}
.rbadge.rb-legendary{background:linear-gradient(180deg,#ffd75e,#f0ad1c);color:#1b1200;text-shadow:0 1px 0 rgba(255,255,255,.35);box-shadow:0 0 0 1px rgba(255,255,255,.3),0 2px 6px rgba(0,0,0,.65),0 0 12px rgba(255,200,61,.65)}
.rbadge.rb-mythic{background:linear-gradient(180deg,#ff5cf2,#c41fb6);color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.3),0 2px 6px rgba(0,0,0,.65),0 0 12px rgba(255,61,240,.7)}
.rbadge.rb-pending{background:#1a1730;color:#cfd3ea;border:1.5px dashed #6b6f86;text-shadow:none;box-shadow:0 2px 6px rgba(0,0,0,.5)}
.sw-bagc-img .rbadge,.card-img .rbadge,.card .media .rbadge{z-index:2}
@media (max-width:520px){.sw-bagc-img .rbadge{font-size:.58rem;padding:.28em .5em}}
/* Rarity accent on game cards: colored left edge (+ glow for higher tiers) */
.sw-bagc,.sw-prow{border-left-width:4px}
.sw-bagc.r-common,.sw-prow.r-common{border-left-color:#7a8096}
.sw-bagc.r-rare,.sw-prow.r-rare{border-left-color:#2f8cff}
.sw-bagc.r-epic,.sw-prow.r-epic{border-left-color:#a24bff}
.sw-bagc.r-legendary,.sw-prow.r-legendary{border-left-color:#ffc83d}
.sw-bagc.r-mythic,.sw-prow.r-mythic{border-left-color:#ff3df0}
.sw-prow.r-rare{box-shadow:inset 3px 0 10px -6px rgba(47,140,255,.7)}.sw-prow.r-epic{box-shadow:inset 3px 0 10px -6px rgba(162,75,255,.8)}
.sw-prow.r-legendary{box-shadow:inset 3px 0 12px -6px rgba(255,200,61,.8)}.sw-prow.r-mythic{box-shadow:inset 3px 0 12px -6px rgba(255,61,240,.85)}
.sw-win.r-common{border-color:#7a8096}.sw-win.r-rare{border-color:#2f8cff;box-shadow:0 0 18px rgba(47,140,255,.45)}
.sw-win.r-epic{border-color:#a24bff;box-shadow:0 0 20px rgba(162,75,255,.5)}.sw-win.r-legendary{border-color:#ffc83d;box-shadow:0 0 24px rgba(255,200,61,.55)}
.sw-win.r-mythic{border-color:#ff3df0;box-shadow:0 0 24px rgba(255,61,240,.6)}
.sw-win-k .rbadge{font-size:.8rem;vertical-align:middle}
/* ---------- Account menu (avatar = menu button; dropdown server-rendered hidden; wired by sw-auth.js) */
.sw-mm{position:relative;display:inline-flex}
button.sw-me{background:none;border:0;padding:2px 4px 2px 2px;margin:0;border-radius:999px;cursor:pointer;font:700 .85rem var(--fb);color:var(--txt);touch-action:manipulation}
button.sw-me:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.sw-caret{font-size:.7rem;color:var(--cyan);transition:transform .2s;margin-left:-3px}
.sw-me[aria-expanded="true"] .sw-caret{transform:rotate(180deg)}
.sw-me[aria-expanded="true"] img{border-color:var(--mag);box-shadow:0 0 14px rgba(235,40,220,.75)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sw-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:60;width:240px;max-width:calc(100vw - 16px);box-sizing:border-box;padding:6px;border-radius:14px;
  background:linear-gradient(170deg,#141030,#0b0918);border:1px solid var(--cyan);box-shadow:0 0 0 1px rgba(235,40,220,.25),0 0 26px rgba(40,200,255,.35),0 14px 30px rgba(0,0,0,.7);
  animation:swmenu .16s ease-out;transform-origin:top right}
.sw-menu[hidden]{display:none}
/* 2026-11-07: full menu always reachable on short/narrow screens: cap to the viewport, scroll inside, no page scroll chaining */
.sw-menu{max-height:calc(100vh - 84px);max-height:calc(100dvh - 84px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.sw-menu::before{display:none}
.sw-menu::before{content:"";position:absolute;top:-7px;right:16px;width:12px;height:12px;background:#141030;border-left:1px solid var(--cyan);border-top:1px solid var(--cyan);transform:rotate(45deg)}
@keyframes swmenu{from{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.sw-menu{animation:none}}
.sw-menu-h{display:flex;align-items:center;gap:10px;padding:8px 8px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}
.sw-menu-h img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--cyan);box-shadow:0 0 10px rgba(40,200,255,.5);flex:0 0 auto}
.sw-menu-h span{display:flex;flex-direction:column;min-width:0}.sw-menu-h b{color:#fff;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-menu-tier{font:800 .68rem var(--fh);letter-spacing:.12em;text-transform:uppercase}
.sw-menu-i{display:flex;align-items:center;gap:10px;width:100%;box-sizing:border-box;min-height:44px;padding:8px 10px;border-radius:10px;border:0;background:none;
  color:var(--txt)!important;font:700 .88rem var(--fb);text-decoration:none!important;text-align:left;cursor:pointer}
.sw-menu-i>span[aria-hidden]{width:22px;text-align:center;font-size:1.05rem}
.sw-menu-i:hover,.sw-menu-i:focus-visible{background:rgba(40,200,255,.12);outline:none;box-shadow:inset 0 0 0 1px rgba(40,200,255,.45)}
.sw-menu-i[aria-current="page"]{color:var(--cyan)!important}
.sw-menu-n{margin-left:auto;min-width:22px;padding:0 7px;border-radius:999px;background:linear-gradient(90deg,var(--cyan),var(--mag));color:#07060f;font:900 .68rem/20px var(--fh);text-align:center}
.sw-menu-n[hidden]{display:none}
.sw-menu-sep{height:1px;margin:5px 6px;background:linear-gradient(90deg,transparent,var(--line),transparent)}
.sw-menu-out{margin:0}
.sw-menu-logout{color:#ff6b8a!important}.sw-menu-logout:hover,.sw-menu-logout:focus-visible{background:rgba(255,61,110,.14);box-shadow:inset 0 0 0 1px rgba(255,61,110,.55)}
@media (max-width:420px){.site-header:has(.sw-bag) .sw-caret{display:none}.site-header:has(.sw-bag) button.sw-me{padding:2px}}
/* Stat boxes: centered values + labels (multi-line labels too), equal heights (profile, hub me-bar, Bag totals) */
.sw-stats{align-items:stretch}
.sw-stat{justify-content:center;text-align:center;min-width:0;box-sizing:border-box}
.sw-stat-n,.sw-stat-l,.sw-stat .sw-tier{text-align:center;line-height:1.25}
.sw-stat .sw-tier{min-height:1.6rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem}
.sw-me-stats{align-items:stretch}.sw-me-stats span{justify-content:center;text-align:center;min-width:0}
.sw-bag-tot{align-items:stretch}.sw-bag-tot div{justify-content:center;min-width:0}
@media (max-width:520px){.sw-stat-l{letter-spacing:.08em;font-size:.62rem}.sw-stat .sw-tier{font-size:1rem;min-height:1.5rem}}
/* ---------- Pixel-consistent post rows. .sw-prow = grid: [thumb][title] then full-width fixed-column meta row,
   owner, actions. .sw-mg columns: rarity | 💎 value | category | ⏳ time | 🛡️ shield (right-aligned last column).
   All 5 slots always render (empty when n/a); the row never wraps. Category shows icon-only on phones. */
.sw-prow{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;row-gap:6px;align-items:start}
.sw-prow-b{display:contents}
.sw-prow-img{grid-column:1;grid-row:1;width:64px;height:64px}
.sw-prow-t{grid-column:2;grid-row:1;align-self:center;min-height:2.6em}
.sw-prow:not(:has(.sw-prow-img)) .sw-prow-t{grid-column:1/-1}
.sw-prow>.sw-prow-b>.sw-mg,.sw-prow>.sw-mg,.sw-prow-o,.sw-prow-a,.sw-prow-m{grid-column:1/-1}
.sw-prow-a{display:flex;flex-wrap:wrap;align-items:center;gap:0 6px}.sw-prow-a .sw-like-s{margin:4px 6px 4px 0}
.sw-prow-a:empty,.sw-prow-o:empty{display:none}
.sw-mg{display:grid;grid-template-columns:78px 66px 104px 66px minmax(0,1fr);column-gap:6px;align-items:center;min-height:26px;
  white-space:nowrap;font-size:.74rem;color:var(--soft);font-variant-numeric:tabular-nums}
.sw-mg>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.sw-mg-r{overflow:visible!important;line-height:0}.sw-mg-r .rbadge{font-size:.58rem;padding:.28em .5em;line-height:1.25;vertical-align:middle}
.sw-mg-c{display:flex;align-items:center;gap:4px}.sw-mg-c i{font-style:normal;flex:0 0 auto}.sw-mg-c b{font-weight:600;overflow:hidden;text-overflow:ellipsis}
.sw-mg-s{justify-self:end;overflow:visible!important}
.sw-mg .sw-shieldtag,.sw-mg .sw-owntag{margin:0;padding:.25em .55em;font-size:.68rem;white-space:nowrap}
@media (max-width:520px){
 .sw-mg{grid-template-columns:72px 60px 18px 64px minmax(0,1fr);column-gap:5px;font-size:.7rem}
 .sw-mg-c b{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
 .sw-mg .sw-shieldtag{padding:.22em .45em;font-size:.64rem}
}
/* Bag cards: same idea inside the card body. Row 1: category | 💎 value | ⚡ power ; row 2: ⏳ time | 🛡️ shield (right) */
.sw-mg.sw-mg-bag{grid-template-columns:104px 70px minmax(0,1fr);row-gap:6px}
.sw-mg-bag .sw-mg-p{text-align:left}
.sw-mg-bag .sw-mg-t{grid-column:1/3;overflow:visible}
.sw-mg-bag .sw-mg-s{grid-column:3}
@media (max-width:520px){.sw-mg.sw-mg-bag{grid-template-columns:18px 64px minmax(0,1fr)}}
.sw-bagc-b{min-width:0}
.sw-mg-r .rbadge{letter-spacing:.05em}
@media (max-width:400px){
 .sw-prow{padding:10px 8px}
 .sw-mg{grid-template-columns:66px 56px 16px 64px minmax(0,1fr);column-gap:4px;font-size:.66rem}
 .sw-mg-r .rbadge{font-size:.52rem;padding:.3em .42em;letter-spacing:.04em}
 .sw-mg .sw-shieldtag{padding:.2em .4em;font-size:.6rem;gap:2px}
 .sw-mg.sw-mg-bag{grid-template-columns:16px 62px minmax(0,1fr)}
}
/* final column sizes (measured: LEGENDARY badge, "💎 12,345", "⏳ 6d 23h", "🛡️ 12h") */
@media (max-width:520px){.sw-mg{grid-template-columns:84px 62px 18px 72px minmax(0,1fr)}}
@media (max-width:400px){
 .sw-mg{grid-template-columns:70px 54px 16px 66px minmax(0,1fr);column-gap:3px;font-size:.64rem}
 .sw-mg-r .rbadge{font-size:.5rem;padding:.3em .4em}
}

/* power bonus chip (boss card) */
.sw-pb{display:flex;flex-direction:column;align-items:center;gap:3px;margin:10px auto 2px;max-width:100%}
.sw-pb-c{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center;padding:6px 12px;border-radius:999px;border:1px solid #2de2ff;background:rgba(45,226,255,.1);color:#e9fbff;font:800 .78rem var(--fh);letter-spacing:.02em;box-shadow:0 0 12px rgba(45,226,255,.35),inset 0 0 8px rgba(45,226,255,.15);text-shadow:0 0 6px rgba(45,226,255,.6)}
.sw-pb.max .sw-pb-c{border-color:#ffd23d;background:rgba(255,210,61,.12);color:#fff6d6;box-shadow:0 0 14px rgba(255,210,61,.45),inset 0 0 8px rgba(255,210,61,.18);text-shadow:0 0 6px rgba(255,210,61,.6)}
.sw-pb-max{background:#ffd23d;color:#1a1200;border-radius:4px;padding:0 5px;font:900 .66rem var(--fh);letter-spacing:.08em;text-shadow:none}
.sw-pb-en{font-style:normal;color:#ff8a8a;font-size:.72rem}
.sw-pb-h{font-size:.7rem;color:var(--soft)}
.sw-pb-gen .sw-pb-c{border-color:#a24bff;background:rgba(162,75,255,.12);box-shadow:0 0 12px rgba(162,75,255,.35);text-shadow:none}
.sw-pb-today{color:#7ff0ff;white-space:nowrap}
.sw-dmg-pb{margin:0 0 4px;font:800 .82rem var(--fh);color:#7ff0ff;text-shadow:0 0 8px rgba(45,226,255,.6);animation:swpop .4s ease-out}
@media (max-width:400px){.sw-pb-c{font-size:.72rem;padding:5px 10px}}

/* feed reactions */
.sw-ev-t{min-width:0;flex:1}
.sw-rx{position:relative;display:flex;gap:6px;margin-top:5px;flex-wrap:nowrap}
.sw-rxb{display:inline-flex;align-items:center;gap:4px;min-width:46px;height:28px;padding:0 8px;border-radius:999px;border:1px solid #2a2350;background:#0d0a1f;color:var(--txt);font:700 .74rem var(--fb,inherit);line-height:1;cursor:pointer;transition:transform .12s,border-color .12s,box-shadow .12s}
.sw-rxb b{font-weight:800;min-width:1ch;text-align:left}.sw-rxb.z b{color:var(--mute)}
.sw-rxe{font-size:.9rem}
button.sw-rxb:hover{border-color:#a24bff}button.sw-rxb:active{transform:scale(.92)}
button.sw-rxb:focus-visible{outline:2px solid #2de2ff;outline-offset:2px}
.sw-rxb.on{border-color:#2de2ff;background:rgba(45,226,255,.14);box-shadow:0 0 10px rgba(45,226,255,.4)}.sw-rxb.on b{color:#bff6ff}
.sw-rx.ro{cursor:help}.sw-rx.ro .sw-rxb{cursor:help;opacity:.85}
.sw-rx-pop{position:absolute;top:-4px;transform:translateX(-50%);padding:1px 7px;border-radius:999px;background:#0b2a16;border:1px solid #7dff9b;font:900 .8rem var(--fh);color:#7dff9b;text-shadow:0 0 8px rgba(125,255,155,.8);box-shadow:0 0 12px rgba(125,255,155,.5);pointer-events:none;z-index:2;animation:swrxpop 1.4s ease-out forwards}
@keyframes swrxpop{0%{opacity:0;transform:translate(-50%,6px) scale(.8)}15%{opacity:1;transform:translate(-50%,-10px) scale(1.15)}70%{opacity:1;transform:translate(-50%,-18px) scale(1)}100%{opacity:0;transform:translate(-50%,-28px) scale(1)}}
.sw-rx-note{display:block;margin-top:3px;font-size:.7rem;color:#ffd23d}
.sw-feed-f{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 6px}.sw-feed-f .sw-btn[aria-pressed="true"]{border-color:#2de2ff;color:#bff6ff}
.sw-rx-help{margin:2px 0 8px}
@media (max-width:400px){.sw-rx{gap:4px}.sw-rxb{min-width:0;padding:0 7px;height:28px;font-size:.7rem}}

/* game nav: 4 primary tabs + More (no horizontal scroll) */
.sw-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:4px 0 8px;position:relative;z-index:15}
.sw-nt{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:6px 2px;border-radius:14px;border:1px solid var(--line);background:var(--panel);color:var(--soft);font:700 .72rem var(--fb);text-decoration:none;cursor:pointer;width:100%;line-height:1.1}
.sw-nt .sw-ni{font-size:1.15rem;line-height:1}.sw-nt .sw-nl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.sw-nt:hover{border-color:#a24bff;color:var(--txt)}
.sw-nt.on{color:#07060f;background:linear-gradient(135deg,var(--cyan),var(--mag));border-color:transparent;box-shadow:0 0 14px rgba(255,61,200,.35)}
.sw-nt:focus-visible,.sw-sub a:focus-visible,.sw-more-m a:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.sw-nbadge{position:absolute;top:-6px;right:-4px;min-width:22px;padding:1px 5px;border-radius:999px;background:#2a2350;color:#e9e6ff;font:800 .6rem var(--fb);border:1px solid #4b3f8f}
.sw-nbadge.ready{background:#ffd23d;color:#1a1200;border-color:#ffd23d;animation:swpulse 1.4s infinite}.sw-nbadge.full{background:#2bd67b;color:#04210f;border-color:#2bd67b}
@keyframes swpulse{50%{box-shadow:0 0 10px #ffd23d}}
.sw-more{position:relative}.sw-more>.sw-nt{height:100%}
.sw-more-m{position:absolute;right:0;top:calc(100% + 6px);width:min(230px,calc(100vw - 24px));padding:6px;border-radius:14px;border:1px solid #4b3f8f;background:#0d0a1f;box-shadow:0 12px 40px rgba(0,0,0,.6),0 0 18px rgba(162,75,255,.3);display:flex;flex-direction:column}
.sw-more-m[hidden]{display:none}
.sw-more-m a{display:flex;gap:8px;align-items:center;padding:10px 12px;border-radius:10px;color:var(--txt);font:700 .86rem var(--fb);text-decoration:none}
.sw-more-m a:hover,.sw-more-m a:focus{background:rgba(162,75,255,.16)}.sw-more-m a[aria-current]{background:rgba(45,226,255,.14);color:#bff6ff}
.sw-sub{display:flex;gap:6px;margin:0 0 8px;padding:4px;border-radius:12px;background:#0b0918;border:1px solid var(--line)}
.sw-sub a{flex:1 1 0;min-width:0;text-align:center;padding:7px 2px;border-radius:9px;color:var(--soft);font:700 .74rem var(--fb);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sw-sub a[aria-current]{background:rgba(45,226,255,.16);color:#bff6ff;box-shadow:inset 0 0 0 1px rgba(45,226,255,.5)}
@media (max-width:400px){.sw-nav{gap:4px}.sw-nt{font-size:.66rem;min-height:48px;border-radius:12px}.sw-nt .sw-ni{font-size:1.05rem}.sw-sub a{font-size:.68rem}}

/* daily checklist */
.sw-daily h2{display:flex;align-items:center;gap:8px}.sw-dcount{font:800 .75rem var(--fb);padding:2px 8px;border-radius:999px;background:rgba(45,226,255,.14);color:#bff6ff}
.sw-dtrack{position:relative;margin:24px 30px 34px 8px;height:10px}.sw-dreset{margin:-4px 0 0}
.sw-dbar{height:10px;border-radius:999px;background:#1a1533;overflow:hidden;border:1px solid #2a2350}.sw-dbar b{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--mag));box-shadow:0 0 10px rgba(45,226,255,.6);transition:width .6s}
.sw-chest{position:absolute;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:1px;padding:0;border:0;background:none;color:var(--txt);cursor:default}
.sw-chest-i{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;font-size:1.15rem;background:#120e26;border:1px solid #2a2350}
.sw-chest-r{position:absolute;top:38px;font:800 .62rem var(--fb);color:var(--mute);white-space:nowrap}
.sw-chest.locked .sw-chest-i{filter:grayscale(1) brightness(.7)}
.sw-chest.ready{cursor:pointer}.sw-chest.ready .sw-chest-i{border-color:#ffd23d;background:#2a2108;box-shadow:0 0 14px rgba(255,210,61,.7);animation:swchest 1.2s ease-in-out infinite}.sw-chest.ready .sw-chest-r{color:#ffd23d}
.sw-chest.open .sw-chest-i{border-color:#2bd67b;background:#082416}.sw-chest.open .sw-chest-r{color:#7dff9b}
.sw-chest.opening .sw-chest-i{animation:swchestopen .9s ease-out forwards}
@keyframes swchest{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px) rotate(-4deg)}}
@keyframes swchestopen{0%{transform:scale(1)}20%{transform:scale(1.1) rotate(-10deg)}40%{transform:scale(1.1) rotate(10deg)}60%{transform:scale(1.35);box-shadow:0 0 30px #ffd23d}100%{transform:scale(1);box-shadow:0 0 14px rgba(43,214,123,.6)}}
.sw-dtasks{list-style:none;margin:0;padding:0}
.sw-dtasks li{display:grid;grid-template-columns:26px minmax(0,1fr) auto 58px;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid rgba(42,35,80,.6);font-size:.84rem}
.sw-dt-i{text-align:center}.sw-dt-l{min-width:0}.sw-dt-p{font:800 .74rem var(--fb);color:var(--soft)}
.sw-dt-go{justify-self:end;padding:4px 10px;border-radius:999px;border:1px solid #2de2ff;color:#bff6ff;font:800 .72rem var(--fb);text-decoration:none;white-space:nowrap}
.sw-dt-go.done{border-color:transparent;color:#7dff9b}
.sw-dtasks li.done .sw-dt-l{color:var(--mute);text-decoration:line-through}
.sw-dstreak{margin:8px 0 0}

/* battle overview + bots */
.sw-battle{display:grid;gap:10px;margin:10px 0}
.sw-bcard{display:block;padding:12px 14px 12px 54px;position:relative;border-radius:var(--r);border:1px solid var(--line);background:var(--panel);color:var(--txt);text-decoration:none}
.sw-bcard:hover{border-color:#a24bff}.sw-bc-i{position:absolute;left:12px;top:12px;font-size:1.6rem}
.sw-bcard b{display:block;font:900 1rem var(--fh)}.sw-bcard i{display:block;font-style:normal;font-size:.76rem;color:var(--soft);margin-top:2px}
.sw-bcard-boss{border-color:#ff3d6e;background:linear-gradient(135deg,rgba(255,61,110,.14),rgba(120,20,90,.14))}.sw-bcard-boss.enraged{box-shadow:0 0 18px rgba(255,26,26,.4)}
.sw-bcard-bot{border-style:dashed;border-color:#2de2ff}
.sw-botbox{border-color:#2de2ff;border-style:dashed}.sw-bot-why{color:#bff6ff}
.sw-bot-go{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.sw-bot-go .sw-lab{flex:0 0 110px;margin:0}
.sw-botbtn{background:linear-gradient(135deg,#2de2ff,#a24bff) !important}
.sw-botres{margin:12px 0;padding:12px;border-radius:12px;border:1px solid #2a2350;background:#0d0a1f;text-align:center;animation:swpop .4s ease-out}
.sw-botres.win{border-color:#2bd67b;box-shadow:0 0 16px rgba(43,214,123,.35)}.sw-botres.loss{border-color:#ff3d6e}
.sw-botres.fighting{color:var(--soft)}.sw-botres.fighting .sw-botav{display:inline-block;animation:swchest .5s infinite}
.sw-botname{color:#bff6ff}.sw-botav{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#12304a;font-size:1.2rem}
.sw-botscore{font:900 1.6rem var(--fh);margin:4px 0}
/* ---- crew management + Crew Duel (preview) */
.sw-crew-btns{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 4px}
.sw-crew-btns .sw-btn{flex:1 1 130px;justify-content:center;text-align:center}
.sw-manage{margin:12px 0 0;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:rgba(10,8,24,.55)}
.sw-manage[hidden]{display:none}
.sw-manage .sw-h3{margin-top:0}
.sw-mset{padding:10px 0;border-top:1px solid rgba(42,35,80,.7)}
.sw-mset:first-of-type{border-top:0}
.sw-mset h4{margin:0 0 6px;font:800 .9rem var(--fh);color:#fff;letter-spacing:.02em}
.sw-mset .sw-lab input,.sw-mset select{width:100%;box-sizing:border-box}
.sw-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sw-row select{flex:1 1 140px;min-height:38px;background:#0b0920;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:0 8px}
.sw-pay{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 10px}
.sw-pay label{flex:1 1 100%;display:flex;flex-direction:row;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;font-size:.82rem;cursor:pointer}
.sw-pay label:has(input:checked){border-color:var(--cyan);box-shadow:0 0 10px rgba(40,200,255,.3)}
.sw-pay i{margin-left:auto;font-style:normal;color:var(--muted,#9aa)}
.sw-soon{color:#ffd28a}
.sw-danger{margin-top:6px;padding:10px;border:1px solid #ff3d6e;border-radius:12px;background:rgba(255,61,110,.07)}
.sw-danger h4{color:#ff7a9a}
.sw-btn-danger{background:linear-gradient(90deg,#ff3d6e,#c2185b);color:#fff;box-shadow:0 0 14px rgba(255,61,110,.45)}
.sw-btn-danger:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}
.sw-kick{min-width:32px;min-height:32px;padding:0;color:#ff7a9a;border-color:rgba(255,61,110,.5)}
.sw-lb-acts{display:flex;gap:6px;flex-wrap:wrap;width:100%;justify-content:flex-end}
.sw-cduel{border-color:rgba(255,61,110,.55);box-shadow:0 0 18px rgba(255,61,110,.15)}
.sw-cd-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0}
.sw-cd-stats span{display:flex;flex-direction:column;align-items:center;padding:8px 4px;border:1px solid var(--line);border-radius:10px;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#9aa)}
.sw-cd-stats b{font:900 1.05rem var(--fh);color:#fff;text-transform:none;letter-spacing:0}
.sw-cd-form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.sw-cd-form .sw-lab{flex:1 1 120px;margin:0}
.sw-cd-form .sw-lab input{width:100%;box-sizing:border-box}
.sw-cd-form .sw-btn{flex:1 1 150px}
.sw-cd-list{list-style:none;margin:6px 0;padding:0}
.sw-cd-row{padding:8px 0;border-bottom:1px solid rgba(42,35,80,.6);font-size:.85rem;overflow-wrap:anywhere}
.sw-cd-row i{color:var(--muted,#9aa);font-size:.75rem}
.sw-cd-row.win b{color:#5dffb0}.sw-cd-row.loss b{color:#ff7a9a}
.sw-cd-row .sw-row{margin-top:6px}
.sw-chip-bot{font-size:.68rem;padding:.1em .5em;border:1px dashed #2de2ff;border-radius:999px;color:#2de2ff}
.sw-cd-res{margin:8px 0;padding:10px 12px;border-radius:12px;font-size:.85rem;animation:swfadein .4s ease-out}
@keyframes swfadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.sw-cd-res.win{border:1px solid #5dffb0;background:rgba(93,255,176,.08)}
.sw-cd-res.loss{border:1px solid #ff7a9a;background:rgba(255,61,110,.08)}
.sw-cduel .sw-botbox{margin:10px 0;padding:10px 12px;border:1px dashed #2de2ff;border-radius:12px}
.sw-cduel .sw-botbox h3{margin:0 0 4px;font-size:.95rem}
.sw-battle-1{margin:10px 0}
.sw-item-crewname{border-color:rgba(255,200,61,.5)}
@media (prefers-reduced-motion:reduce){.sw-cd-res{animation:none}}
/* ---- crew name/tag fields: hint, counter, inline validation (preview) */
.sw-field{margin:8px 0 10px}
.sw-field .sw-flab{margin:0 0 4px}
.sw-field input,.sw-row input{background:#0b0918;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:.6em;font:500 .9rem var(--fb)}
.sw-field input{width:100%;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}
.sw-field .sw-tagin{text-transform:uppercase;letter-spacing:.08em}
.sw-fh{display:flex;justify-content:space-between;gap:8px;margin-top:4px;font-size:.72rem;color:var(--mute,#9aa);line-height:1.35}
.sw-cnt{flex:0 0 auto;font-variant-numeric:tabular-nums;font-weight:700}
.sw-fmsg{margin:3px 0 0;min-height:1em;font-size:.76rem;font-weight:700}
.sw-field.is-ok input{border-color:#2bd67b;box-shadow:0 0 0 1px rgba(43,214,123,.35)}
.sw-field.is-ok .sw-fmsg,.sw-field.is-ok .sw-cnt{color:#5dffb0}
.sw-field.is-bad input{border-color:#ff3d6e;box-shadow:0 0 0 1px rgba(255,61,110,.4)}
.sw-field.is-bad .sw-fmsg,.sw-field.is-bad .sw-cnt{color:#ff7a9a}
.sw-field.is-bad .sw-fmsg::before{content:"⚠ "}
.sw-row input{flex:1 1 150px;min-height:38px;box-sizing:border-box}

/* ---- layering scale (game pages only; production style.css untouched):
   page content < game nav + More menu (15) < sticky site header + avatar menu (60) < modal (98) < toast (99) */
.site-header{z-index:60}
.sw-mm{z-index:1}.sw-menu{z-index:2}
.sw-more-m{z-index:16}

/* ---- 🐞 bug reports / 💡 feature requests / Feature board (preview) */
.sw-fb-tabs{display:flex;gap:6px;margin:0 0 10px;overflow-x:auto;scrollbar-width:none}
.sw-fb-tabs a{flex:1 1 0;min-width:0;text-align:center;white-space:normal;line-height:1.25;display:flex;align-items:center;justify-content:center;padding:.45em .3em;border:1px solid var(--line);border-radius:10px;font:600 .78rem var(--fb);color:var(--muted,#b7b2d6);text-decoration:none;background:rgba(255,255,255,.03)}
.sw-fb-tabs a.on{color:#fff;border-color:#a855f7;background:rgba(168,85,247,.18)}
.sw-field label{display:block;font:600 .85rem var(--fb);margin:0 0 4px}
.sw-field textarea{width:100%;box-sizing:border-box;background:#0b0918;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:.6em;font:500 .9rem/1.4 var(--fb);resize:vertical}
.sw-fhint{display:flex;justify-content:space-between;gap:8px;margin:4px 2px 0;font-size:.75rem;color:var(--muted,#9d97c2)}
.sw-fcount.ok{color:#5dffb0}.sw-fcount.bad{color:#ff7a9a}
.sw-fb-kind{display:flex;gap:8px;border:0;padding:0;margin:6px 0 4px}
.sw-fb-kind legend{font:600 .85rem var(--fb);margin:0 0 4px;padding:0}
.sw-fb-kind label{flex:1 1 0;display:flex;align-items:center;gap:6px;padding:.5em .6em;border:1px solid var(--line);border-radius:10px;font:600 .85rem var(--fb);cursor:pointer}
.sw-fb-kind label:has(input:checked){border-color:#a855f7;background:rgba(168,85,247,.16)}
.sw-fb-auto{margin:8px 0 12px;padding:8px 10px;border:1px dashed var(--line);border-radius:10px;font-size:.75rem;color:var(--muted,#b7b2d6)}
.sw-fb-auto p{margin:0 0 4px}.sw-fb-auto dl{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;margin:0}
.sw-fb-auto dt{font-weight:700}.sw-fb-auto dd{margin:0;overflow-wrap:anywhere}
.sw-fb-i{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.sw-fb-b{min-width:0;flex:1}.sw-fb-h{margin:0 0 3px;overflow-wrap:anywhere}.sw-fb-m{margin:0 0 4px;font-size:.75rem;color:var(--muted,#9d97c2)}
.sw-fb-t{margin:0;font-size:.85rem;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.sw-fb-r{margin:6px 0 0;padding:6px 8px;border-left:3px solid #2bd67b;background:rgba(43,214,123,.08);border-radius:6px;font-size:.8rem}
.sw-fb-x{margin:4px 0 0;overflow-wrap:anywhere}
.sw-fst{display:inline-block;padding:1px 7px;border-radius:999px;font:700 .68rem var(--fb);border:1px solid currentColor}
.sw-fst-new{color:#7cc4ff}.sw-fst-planned{color:#c79bff}.sw-fst-in_progress{color:#ffc857}.sw-fst-done{color:#5dffb0}.sw-fst-wont_do{color:#9a96b3}
.sw-vote{flex:0 0 48px;height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.04);color:var(--txt);font:700 .85rem var(--fb);cursor:pointer}
.sw-vote.on{border-color:#a855f7;background:rgba(168,85,247,.25);color:#fff}
.sw-vote:disabled{opacity:.55;cursor:default}
.sw-fb-filt{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 8px}
.sw-fb-filt .sw-chip{padding:.3em .65em;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--txt);font:600 .75rem var(--fb);cursor:pointer}
.sw-fb-filt .sw-chip.on{border-color:#a855f7;background:rgba(168,85,247,.2)}
.sw-fb-sort{font-size:.78rem;display:flex;gap:6px;align-items:center;margin:0 0 4px}
.sw-fb-sort .sw-mini.on{border-color:#a855f7}
.sw-fb-adm{border-top:1px solid var(--line);padding:4px 0 10px}.sw-fb-adm .sw-fb-i{border-top:0}
.sw-fb-adm .sw-row{display:flex;gap:6px;flex-wrap:wrap}.sw-fb-adm select{background:#0b0918;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:.5em}
.sw-fb-adm .sw-row input{flex:1 1 160px;min-width:0}
/* hidden More items (Admin for non-admins) must stay hidden despite display:flex; narrow signed-out header: wordmark must not run under "Log in" */
.sw-more-m a[hidden]{display:none}
@media (max-width:380px){.hdr:has(.sw-login) .wm{font-size:.68rem}}

/* ---- 🤝 Friends (preview) */
.sw-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sw-fsearch{position:relative;margin:4px 0 8px}
.sw-fsearch input{width:100%;box-sizing:border-box;background:#0b0918;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:.6em;font:500 .9rem var(--fb)}
.sw-fres-i{display:flex;align-items:center;gap:8px;padding:6px 2px;border-bottom:1px solid var(--line)}
.sw-fres-i>a{display:flex;align-items:center;gap:6px;min-width:0;flex:1;color:var(--txt);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-fres-i .sw-av{border-radius:50%}
.sw-fr{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
.sw-fr-av{position:relative;flex:0 0 auto;border-radius:50%;line-height:0}
.sw-fr-av .sw-av{border-radius:50%}
.sw-fr-av.sw-bond{padding:2px;background:conic-gradient(from 0deg,#a855f7,#2de2ff,#ffc857,#a855f7)}
.sw-dot{position:absolute;right:0;bottom:0;width:11px;height:11px;border-radius:50%;background:#2bd67b;border:2px solid #120f24}
.sw-fr-b{min-width:0;flex:1}
.sw-fr-h{margin:0 0 2px;display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}.sw-fr-h a{color:var(--txt);text-decoration:none}
.sw-fr-m{margin:0 0 6px;font-size:.74rem;color:var(--muted,#9d97c2)}
.sw-on{color:#5dffb0;font-weight:700}.sw-off{color:var(--muted,#9d97c2)}
.sw-flv{display:inline-block;padding:1px 7px;border-radius:999px;font:700 .68rem var(--fb);border:1px solid var(--line);color:#d9ccff}
.sw-flv-3,.sw-flv-4,.sw-flv-5{border-color:#a855f7;background:rgba(168,85,247,.16)}
.sw-unl{margin-left:3px;font-size:.85rem}
.sw-fr-a{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sw-fr-a .sw-mini{text-decoration:none}
.sw-fr-more{position:relative}.sw-fr-more summary{list-style:none;cursor:pointer}.sw-fr-more summary::-webkit-details-marker{display:none}
.sw-fr-more[open]>div{position:absolute;right:0;top:calc(100% + 4px);z-index:5;display:flex;flex-direction:column;gap:4px;padding:6px;background:#15112a;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 24px rgba(0,0,0,.5)}
.sw-red{color:#ff7a9a !important;border-color:rgba(255,61,110,.5) !important}
.sw-fr-q{align-items:center}.sw-fr-qa{display:flex;gap:6px;flex:0 0 auto}
.sw-fr-qa .sw-btn,.sw-fr-qa .sw-ghost{padding:.45em .8em;font-size:.8rem}
.sw-nembox .sw-fr{border-top:0;align-items:center}.sw-nembox .sw-btn{flex:0 0 auto;padding:.5em .8em;font-size:.8rem}
.sw-fnote{margin-top:10px}
.sw-pair{margin:8px 0;padding:10px;border:1px solid rgba(168,85,247,.45);border-radius:12px;background:rgba(168,85,247,.08);display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.sw-pair[hidden]{display:none}
.sw-pair-t{margin:0 0 2px}.sw-pair-l p{margin:0}.sw-pair-a{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sw-rematch{margin-left:6px;padding:.35em .7em;font-size:.78rem}
.sw-rematch[hidden]{display:none}
.sw-fb-tabs .sw-nbadge{position:static;display:inline-block;margin-left:4px}
[data-sw-other-only][hidden],[data-sw-self-only][hidden]{display:none}
/* =====================================================================================================
   v1.0 step 1 (preview only; production style.css untouched)
   ===================================================================================================== */
/* ---------- Bag: every card the same size. Fixed thumbnail box, image cropped (object-fit:cover) and taken
   out of flow so a tall image can never stretch its card. Rarity = badge + glow only. */
.sw-bag-grid{grid-auto-rows:1fr}
.sw-bagc{height:100%}
.sw-bagc-img{overflow:hidden;flex:0 0 auto}
.sw-bagc-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.sw-bagc-img .sw-ph{position:absolute;inset:0}
.sw-bagc-t{min-height:2.6em}
@media (max-width:520px){
 .sw-bagc{height:100%;min-height:118px}
 .sw-bagc-img{flex:0 0 112px;width:112px;height:auto;min-height:0;aspect-ratio:auto;align-self:stretch}
 .sw-bagc-b{min-width:0}
}
/* ---------- Wheel: neon rim + chase lights, gradient slices, SN hub, ticking flapper, rarity burst */
.sw-wheel{width:min(84vw,340px);aspect-ratio:1;margin:22px auto 18px;--glow:235,40,220}
#sw-rot{position:absolute;inset:0;overflow:hidden;border-radius:50%;box-shadow:0 0 34px rgba(var(--glow),.5),0 0 70px rgba(40,200,255,.18)}
#sw-rot svg{will-change:transform;backface-visibility:hidden}
.sw-wheel-svg .sw-wl{fill:#fff;font-family:var(--fh);font-weight:900;font-size:8.5px;letter-spacing:.08em;paint-order:stroke;stroke:rgba(0,0,0,.55);stroke-width:2px}
.sw-wheel-svg .sw-ic{font-weight:400;letter-spacing:0;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}
.sw-wheel-svg .sw-pegs circle{fill:#fff;stroke:#07060f;stroke-width:.8}
.sw-spark{transform-box:fill-box;transform-origin:center;animation:swspark 1.8s steps(6) infinite;opacity:0}
.sw-spark-1{animation-delay:.6s}.sw-spark-2{animation-delay:1.2s}
@keyframes swspark{0%{opacity:0;transform:scale(.3)}33%{opacity:1;transform:scale(1.15)}66%{opacity:.2;transform:scale(.6)}100%{opacity:0;transform:scale(.3)}}
.sw-spinning .sw-spark{animation-play-state:paused}
.sw-rim{position:absolute;inset:-2.5%;width:105%;height:105%;pointer-events:none;overflow:visible}
.sw-bulb{fill:#fff6c8;animation:swchase .9s steps(1) infinite}
.sw-b1{animation-delay:-.3s}.sw-b2{animation-delay:-.6s}
.sw-spinning .sw-bulb{animation-duration:.33s}
.sw-spinning .sw-b1{animation-delay:-.11s}.sw-spinning .sw-b2{animation-delay:-.22s}
@keyframes swchase{0%{opacity:1}33%{opacity:.22}}
.sw-hub{position:absolute;left:50%;top:50%;width:22%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:#07060f;
  box-shadow:0 0 0 3px #07060f,0 0 0 5px var(--cyan),0 0 18px rgba(40,200,255,.7),inset 0 0 10px rgba(235,40,220,.6);display:flex;align-items:center;justify-content:center;z-index:2;overflow:hidden}
.sw-hub img{width:86%;height:86%;object-fit:contain;display:block}
.sw-flap{position:absolute;top:-7%;left:50%;width:10%;transform:translateX(-50%);transform-origin:50% 25%;z-index:3;transition:transform 70ms ease-out;filter:drop-shadow(0 0 6px rgba(40,200,255,.9))}
.sw-flap svg{display:block;width:100%;height:auto}
.sw-pointer{display:none}
/* win burst: transform/opacity only, colored by rarity */
.sw-burst{position:absolute;inset:0;pointer-events:none;z-index:4;--c:#cfd3ea}
.sw-burst.r-rare{--c:#3b95ff}.sw-burst.r-epic{--c:#b06bff}.sw-burst.r-legendary{--c:#ffd75e}.sw-burst.r-mythic{--c:#ff5cf2}
.sw-burst i,.sw-burst b{position:absolute;left:50%;top:50%;opacity:0}
.sw-burst i{width:13px;height:13px;margin:-6.5px;border-radius:50%;background:radial-gradient(circle,#fff 0 30%,var(--c) 60%);box-shadow:0 0 10px var(--c),0 0 20px var(--c)}
.sw-burst i:nth-child(3n){width:7px;height:20px;margin:-10px -3.5px;border-radius:4px}
.sw-burst b{width:100%;height:100%;left:0;top:0;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.55) 0 12%,transparent 55%);box-shadow:0 0 0 6px var(--c),0 0 50px var(--c),inset 0 0 60px var(--c)}
.sw-burst.go i{animation:swburst 1.1s cubic-bezier(.15,.7,.3,1) forwards}
.sw-burst.go b{animation:swring .9s ease-out forwards}
@keyframes swburst{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(.5)}70%{opacity:1}100%{opacity:0;transform:rotate(var(--a)) translateY(calc(var(--d) * -1)) scale(1)}}
@keyframes swring{0%{opacity:.95;transform:scale(.4)}100%{opacity:0;transform:scale(1.25)}}
.sw-shake{animation:swshake .45s ease-in-out}
.sw-shake-big{animation:swshake2 .7s ease-in-out}
@keyframes swshake{0%,100%{transform:none}20%{transform:translate(-4px,2px)}40%{transform:translate(4px,-2px)}60%{transform:translate(-3px,1px)}80%{transform:translate(2px,-1px)}}
@keyframes swshake2{0%,100%{transform:none}12%{transform:translate(-7px,3px) rotate(-.6deg)}25%{transform:translate(7px,-3px) rotate(.6deg)}40%{transform:translate(-6px,2px)}55%{transform:translate(5px,-2px)}70%{transform:translate(-3px,1px)}85%{transform:translate(2px,0)}}
.sw-tease{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);z-index:5;white-space:nowrap;padding:.45em .9em;border-radius:999px;background:rgba(7,6,15,.92);
  border:1px solid var(--mag);color:#fff;font:700 .78rem var(--fb);box-shadow:0 0 16px rgba(235,40,220,.55)}
.sw-tease[hidden]{display:none}
.sw-tease.go{animation:swtease .5s cubic-bezier(.2,1.6,.4,1)}
@keyframes swtease{from{transform:translateX(-50%) scale(.6);opacity:0}to{transform:translateX(-50%) scale(1);opacity:1}}
.sw-win.r-common{border-color:#7a8096}.sw-win.r-rare{border-color:#2f8cff;box-shadow:0 0 18px rgba(47,140,255,.45)}
.sw-win.r-epic{border-color:#a24bff;box-shadow:0 0 22px rgba(162,75,255,.55)}.sw-win.r-legendary{border-color:#ffc83d;box-shadow:0 0 26px rgba(255,200,61,.6)}
.sw-win.r-mythic{border-color:#ff3df0;box-shadow:0 0 28px rgba(255,61,240,.65)}
@media (prefers-reduced-motion:reduce){
 .sw-bulb,.sw-spark,.sw-shake,.sw-shake-big,.sw-tease.go,.sw-burst.go i{animation:none!important}
 .sw-spark{opacity:.8}.sw-flap{transition:none}
}
/* ---------- Site top nav (preview): plain category pills + a glowing 🎮 Play. Fits 320px+ with no sideways scroll. */
.nav-in:has(.sn-pills){overflow:visible;padding-top:8px;padding-bottom:8px}
.sn-pills{display:flex;gap:5px;width:100%;align-items:center}
.nav .sn-pill,.nav .sn-play{flex:1 1 auto;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:.3em;white-space:nowrap;
  font:700 .78rem/1.2 var(--fb);padding:.5em .55em;min-height:36px;box-sizing:border-box;border-radius:999px}
.nav .sn-pill{color:var(--soft);border:1px solid var(--line);background:rgba(17,14,36,.6)}
.nav .sn-pill.on,.nav .sn-pill:hover{color:#fff;border-color:var(--cyan);background:rgba(40,200,255,.12);box-shadow:0 0 10px rgba(40,200,255,.35)}
.sn-pi{font-size:.95em;line-height:1}
.nav .sn-play{flex:1.15 1 auto;color:#07060f;font-weight:900;letter-spacing:.02em;border:1px solid rgba(255,255,255,.55);
  background:linear-gradient(90deg,#28c8ff,#eb28dc);box-shadow:0 0 12px rgba(235,40,220,.7),0 0 22px rgba(40,200,255,.35);animation:snglow 2.4s ease-in-out infinite}
.nav .sn-play:hover,.nav .sn-play.on{color:#07060f;box-shadow:0 0 0 2px #fff,0 0 16px rgba(235,40,220,.9),0 0 30px rgba(40,200,255,.5);text-decoration:none}
@keyframes snglow{0%,100%{box-shadow:0 0 10px rgba(235,40,220,.6),0 0 20px rgba(40,200,255,.3)}50%{box-shadow:0 0 18px rgba(235,40,220,.95),0 0 30px rgba(40,200,255,.55)}}
@media (prefers-reduced-motion:reduce){.nav .sn-play{animation:none}}
@media (max-width:360px){.nav .sn-pill,.nav .sn-play{font-size:.72rem;padding:.5em .4em;gap:.2em}.sn-pills{gap:4px}}
/* 2026-10-24: 6 pills (Squad leaderboard back in the top nav) must fit phones */
@media (max-width:699px){.sn-pills{gap:3px}.nav .sn-pill,.nav .sn-play{font-size:.7rem;padding:.5em .3em;gap:.15em;letter-spacing:0}}
@media (max-width:374px){.nav .sn-pill .sn-pi{display:none}.nav .sn-pill,.nav .sn-play{font-size:.68rem;padding:.5em .25em}}
@media (max-width:330px){.nav .sn-pill .sn-pi{display:none}}
@media (min-width:700px){.sn-pills{gap:8px}.nav .sn-pill,.nav .sn-play{flex:0 0 auto;padding:.5em 1em;font-size:.84rem}}
/* ---------- Avatar menu: Patch notes version tag */
.sw-menu-v{margin-left:auto;padding:.12em .5em;border-radius:999px;font:800 .62rem/1.3 var(--fh);letter-spacing:.06em;color:#07060f;background:linear-gradient(90deg,var(--cyan),var(--mag))}
/* ---------- Patch notes page */
.sw-pns{display:flex;flex-direction:column;gap:14px}
.sw-pn h2{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0}
.sw-pn-h h2{font:900 1.5rem var(--fh);color:#fff;text-shadow:0 0 14px rgba(40,200,255,.6)}
.sw-pn-cur,.sw-pn-tag{font:800 .6rem/1.3 var(--fh);letter-spacing:.1em;text-transform:uppercase;padding:.3em .65em;border-radius:999px}
.sw-pn-cur{background:linear-gradient(90deg,var(--cyan),var(--mag));color:#07060f}
.sw-pn-tag{border:1px solid var(--line);color:var(--soft)}
.sw-pn time{display:block;color:var(--mute);font-size:.78rem;margin:4px 0 8px}
.sw-pn-title{font:800 1.05rem var(--fh);color:var(--txt);margin:0 0 6px}
.sw-pn-intro{color:var(--soft);margin:0 0 6px}
.sw-pn h3{font:800 .92rem var(--fh);margin:14px 0 4px;color:#fff}
.sw-pn ul{margin:0;padding-left:1.2em;color:var(--soft)}.sw-pn li{margin:4px 0;line-height:1.45}
.sw-wheelbox{overflow:clip}
/* ---------- v1.0 step 2: 📨 Inbox (DMs), 📬 Mailbox, 🎁 gifts, 🎟️ redeem (preview only) */
.sw-ibx .sw-bag-ic{font-size:1.05rem}
@media (max-width:420px){.sw-auth:has(.sw-ibx){gap:5px}.site-header:has(.sw-ibx) .btn-follow{padding:.42em .55em;font-size:.72rem}.site-header:has(.sw-ibx) .wm{font-size:.8rem}}
@media (max-width:374px){.site-header:has(.sw-ibx) .btn-follow{display:none}}
.sw-menu-rd{padding:2px 8px 8px}
.sw-menu-rd form{display:flex;gap:6px}
.sw-menu-rd input{flex:1;min-width:0;background:#0b0918;color:#fff;border:1px solid var(--line);border-radius:10px;padding:.55em .6em;font:800 .9rem var(--fh);letter-spacing:.08em;text-transform:uppercase}
.sw-menu-rd input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 2px rgba(40,200,255,.25)}
.sw-rd-go{border:0;border-radius:10px;padding:0 .9em;min-height:40px;background:linear-gradient(90deg,var(--cyan),var(--mag));color:#07060f;font:900 .78rem var(--fh);cursor:pointer}
.sw-rd-go:disabled{opacity:.6}
.sw-rd-msg{margin:6px 2px 0;font-size:.78rem;line-height:1.35;color:var(--mute)}.sw-rd-msg:empty{display:none}
.sw-rd-ok{color:#9ff5c4}.sw-rd-ok a{color:var(--cyan);font-weight:800}.sw-rd-bad{color:#ff9db0}
.sw-ibx-new .sw-row{display:flex;gap:8px}.sw-ibx-new input{flex:1;min-width:0;background:#0b0918;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:.6em;font:500 .9rem var(--fb)}
.sw-ibx-priv{margin:8px 0 0;display:flex;align-items:center;gap:8px}.sw-ibx-priv select{background:#0b0918;color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:.35em .5em;font:600 .8rem var(--fb)}
.sw-thl{list-style:none;margin:0;padding:0}
.sw-th{position:relative;display:flex;align-items:center;gap:10px;padding:10px 6px;border-bottom:1px solid rgba(255,255,255,.06);color:var(--txt);text-decoration:none!important;border-radius:10px}
.sw-th:hover{background:rgba(40,200,255,.06)}.sw-th .sw-av{border-radius:50%;flex:0 0 auto}
.sw-th .sw-dot{position:absolute;left:40px;top:42px}
.sw-th-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.sw-th-h{display:flex;justify-content:space-between;gap:8px}.sw-th-h time{font-size:.7rem;color:var(--mute);white-space:nowrap}
.sw-th-l{font-size:.82rem;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sw-th-new .sw-th-l{color:#fff;font-weight:700}.sw-th-new b{color:#fff}
.sw-th .sw-nbadge{position:static;background:linear-gradient(90deg,var(--cyan),var(--mag));color:#07060f;border:0;font-weight:900}
.sw-seen{color:var(--cyan);font-style:normal}.sw-sent{color:var(--mute);font-style:normal}
.sw-dm{padding:0;overflow:hidden;display:flex;flex-direction:column}
.sw-dm-h{display:flex;align-items:center;gap:8px;padding:10px;border-bottom:1px solid var(--line);background:rgba(11,9,24,.6)}
.sw-dm-who{flex:1;min-width:0;display:flex;align-items:center;gap:8px;color:var(--txt);text-decoration:none!important}.sw-dm-who .sw-av{border-radius:50%}
.sw-dm-who span{display:flex;flex-direction:column;min-width:0}.sw-dm-who i{font-style:normal;font-size:.72rem;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sw-dm-log{height:min(52vh,460px);overflow-y:auto;padding:12px 10px;display:flex;flex-direction:column;gap:6px;overscroll-behavior:contain}
.sw-dmb{max-width:82%;align-self:flex-start;padding:8px 11px 5px;border-radius:16px 16px 16px 4px;background:#1d1838;border:1px solid #2f2860}
.sw-dmb p{margin:0;font-size:.9rem;line-height:1.4;word-break:break-word}
.sw-dmb.sw-mine{align-self:flex-end;border-radius:16px 16px 4px 16px;background:linear-gradient(135deg,rgba(40,200,255,.28),rgba(235,40,220,.24));border-color:rgba(40,200,255,.45)}
.sw-dmb-m{display:flex;justify-content:flex-end;align-items:center;gap:6px;margin-top:2px;font-size:.64rem;color:var(--mute)}
.sw-dmb-rep{border:0;background:none;color:var(--mute);cursor:pointer;padding:0 2px;font-size:.75rem;opacity:.55;min-width:24px;min-height:24px}.sw-dmb-rep:hover,.sw-dmb-rep:focus-visible{opacity:1;color:#ff9db0}
.sw-receipt{align-self:flex-end;margin:0 4px;font-size:.68rem;color:var(--cyan)}
.sw-dm-f{border-top:1px solid var(--line);padding:8px 10px;background:rgba(11,9,24,.6)}
.sw-dm-f textarea{width:100%;box-sizing:border-box;resize:none;background:#0b0918;color:var(--txt);border:1px solid var(--line);border-radius:12px;padding:.6em .7em;font:500 .92rem var(--fb)}
.sw-dm-f textarea:focus{outline:none;border-color:var(--cyan)}
.sw-dm-fb{display:flex;align-items:center;justify-content:space-between;margin-top:6px}
.sw-dm-no{margin:0;padding:12px;border-top:1px solid var(--line);color:var(--mute);text-align:center}
.sw-claimbar{display:flex;align-items:center;justify-content:space-between;gap:10px;border-color:rgba(255,210,61,.55);background:linear-gradient(135deg,rgba(255,210,61,.12),rgba(235,40,220,.08))}
.sw-claimbar p{margin:0}
.sw-mail{display:flex;gap:10px;padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.06)}
.sw-mail:last-of-type{border-bottom:0}
.sw-mail-ic{flex:0 0 36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.15rem;background:rgba(255,255,255,.05);border:1px solid var(--line)}
.sw-mail-b{flex:1;min-width:0}.sw-mail-b h3{margin:0;font:800 .9rem var(--fb);color:#fff;text-align:left}.sw-mail-b p{margin:4px 0 0;font-size:.84rem}
.sw-mail-new .sw-mail-b h3::after{content:" •";color:var(--mag)}
.sw-mail-m{font-size:.7rem!important;color:var(--mute)}.sw-exp-soon{color:#ffb46b;font-weight:700}
.sw-mail-r{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.04);border:1px dashed var(--line)}
.sw-mail-claim .sw-mail-r{border:1px solid rgba(255,210,61,.6);background:rgba(255,210,61,.1);box-shadow:0 0 14px rgba(255,210,61,.15)}
.sw-mail-claim .sw-mail-ic{border-color:rgba(255,210,61,.7);box-shadow:0 0 10px rgba(255,210,61,.35)}
.sw-mail-rw{font-weight:800;font-size:.84rem;color:#ffe48a}.sw-claimed{font-size:.75rem;color:#9ff5c4;font-weight:700}
.sw-mail-warning .sw-mail-ic{border-color:#ff9db0}.sw-mail .sw-chips{margin-top:8px}
.sw-giftback{border-color:var(--mag)!important}
.sw-gp-who{display:flex;align-items:center;gap:8px;margin:0 0 6px}.sw-gp-who .sw-av{border-radius:50%}
.sw-gopts{display:grid;gap:8px;margin:10px 0}
.sw-gopt{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px;border-radius:12px;border:1px solid var(--line);background:#0f0c22;color:var(--txt);cursor:pointer;min-height:52px}
.sw-gopt b{display:block;font-size:.9rem}.sw-gopt i{display:block;font-style:normal;font-size:.72rem;color:var(--mute)}
.sw-gopt-ic{font-size:1.4rem;width:30px;text-align:center}
.sw-gopt.on,.sw-gopt[aria-checked="true"]{border-color:var(--cyan);background:rgba(40,200,255,.12);box-shadow:0 0 0 1px var(--cyan)}
.sw-gopt:disabled{opacity:.45;cursor:not-allowed}
.sw-giftm .sw-modal-box button[data-x="1"]:disabled{opacity:.5}
.sw-rw-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:0 8px}
.sw-chk{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:.85rem}
.sw-tbl{overflow-x:auto;margin-top:10px}.sw-tbl table{width:100%;border-collapse:collapse;font-size:.78rem}.sw-tbl th,.sw-tbl td{padding:6px;border-bottom:1px solid rgba(255,255,255,.07);text-align:left;vertical-align:top}
.sw-fr-a{flex-wrap:wrap}
.sw-dm-h .sw-mini[data-iback]{font-size:1.15rem;min-width:36px;min-height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center}
.sw-menu-rd input::placeholder{letter-spacing:0;font:600 .8rem var(--fb);text-transform:none}
.sw-gp-who{flex-wrap:wrap;row-gap:2px}.sw-gp-who i{white-space:nowrap}
.sw-gp-who i{font-style:normal;color:var(--mute);font-size:.85rem}
.sw-gpost[hidden],.sw-giftm [hidden]{display:none!important}

/* ===== v1.0 step 3: squad + stats, ❤️ HP, friend buffs, battle replays, 🐉 raids ===== */
@media (max-width:480px){.sw-sub{flex-wrap:wrap}.sw-sub a{flex:1 1 30%}}
.sw-strow{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}
.sw-st{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:999px;background:#120e26;border:1px solid #2a2350;font:700 .74rem var(--fb);color:var(--soft);white-space:nowrap}
.sw-st b{color:var(--txt)}.sw-st-atk{border-color:#ff5a7a66}.sw-st-def{border-color:#2de2ff66}.sw-st-crit{border-color:#ffd23d66}.sw-st-luck{border-color:#2bd67b66}.sw-st-spd{border-color:#a24bff66}.sw-st-hp{border-color:#ff4d6d88}
.sw-php,.sw-fhp{position:relative;height:22px;border-radius:999px;background:#1a0d17;border:1px solid #5a2440;overflow:hidden;margin:8px 0}
.sw-php b,.sw-fhp b{display:block;height:100%;background:linear-gradient(90deg,#ff2d6f,#ff7a59);box-shadow:0 0 10px rgba(255,45,111,.55);transition:width .35s}
.sw-php span,.sw-fhp span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:800 .72rem var(--fb);color:#fff;text-shadow:0 1px 2px #000;white-space:nowrap;overflow:hidden}
.sw-php.low b,.sw-fhp.low b{background:linear-gradient(90deg,#ff2d2d,#ffb02d);animation:swlow 1s ease-in-out infinite}
.sw-php.ko{border-color:#555;background:#151515}.sw-php.ko b{width:0!important}
@keyframes swlow{50%{opacity:.6}}
.sw-fhp.hit{animation:swhit .3s}@keyframes swhit{30%{transform:translateX(-3px)}60%{transform:translateX(3px)}}
.sw-allies{margin:8px 0;padding:8px 10px;border-radius:12px;background:#0b0918;border:1px solid #2a2350}
.sw-al-h{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px;font:.76rem var(--fb);color:var(--soft)}.sw-al-h b{color:var(--txt)}
.sw-al-row{display:flex;gap:8px;margin-top:6px;overflow-x:auto;max-width:100%}
.sw-al{position:relative;display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--soft)}.sw-al i{font:700 .62rem var(--fb);font-style:normal}.sw-al.off{opacity:.45}
.sw-ctr{color:#ff9db5}.sw-crit{color:#ffd23d;font-style:normal;font-weight:800}
.sw-slots{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:10px 0}
.sw-slot{display:flex;flex-direction:column;align-items:center;padding:8px 2px;border-radius:12px;background:#120e26;border:1px solid #2a2350;min-width:0}
.sw-slot span{font-size:1.2rem}.sw-slot b{font:800 .86rem var(--fb)}.sw-slot i{font:700 .6rem var(--fb);font-style:normal;color:var(--mute)}.sw-slot.empty{opacity:.5;border-style:dashed}
.sw-slot.r-rare{border-color:#2de2ff88}.sw-slot.r-epic{border-color:#a24bffaa}.sw-slot.r-legendary{border-color:#ffd23daa}.sw-slot.r-mythic{border-color:#ff2d6f;box-shadow:0 0 10px rgba(255,45,111,.4)}
.sw-sbars{display:grid;gap:6px;margin:10px 0}
.sw-sbar{display:grid;grid-template-columns:74px 1fr 78px;gap:8px;align-items:center;font:700 .76rem var(--fb)}.sw-sbar i{font-style:normal;text-align:right}.sw-sbar em{font-style:normal;color:#7dff9b;font-size:.68rem}
.sw-capbar{height:8px;border-radius:999px;background:#1a1533;overflow:hidden}.sw-capbar b{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--mag))}
.sw-sets{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}.sw-set{padding:3px 8px;border-radius:999px;background:rgba(45,226,255,.12);font:700 .72rem var(--fb);color:#bff6ff}.sw-set.rb{background:linear-gradient(90deg,#ff2d6f33,#ffd23d33,#2bd67b33,#2de2ff33,#a24bff33);color:#fff}
.sw-sq-list{display:grid;gap:6px;max-height:420px;overflow-y:auto}
.sw-sq-card{display:grid;grid-template-columns:auto auto auto 1fr;gap:6px;align-items:center;padding:8px;border-radius:10px;background:#0f0c20;border:1px solid #2a2350;cursor:pointer;min-width:0}
.sw-sq-card.on{border-color:var(--cyan);background:rgba(45,226,255,.08)}.sw-sq-card input{margin:0}
.sw-sq-st{font:800 .74rem var(--fb);white-space:nowrap}.sw-sq-h{font-size:.78rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sw-brk{font-size:.8rem}
.sw-sq-card>.sw-rb,.sw-sq-card>span[class*="rb"]{white-space:nowrap}
.sw-row2{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.sw-row2 .sw-btn{flex:1 1 140px}
.sw-dsq{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin:8px 0}
.sw-fight{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;margin:10px 0;padding:10px;border-radius:12px;background:#0b0918;border:1px solid #2a2350}
.sw-fight-s{padding:6px 8px}.sw-fight-s .sw-fhp{margin:2px 0}.sw-fight-s>.sw-mini,.sw-fight-s>p{grid-column:1/-1;justify-self:start;margin:0}
.sw-fside{min-width:0}.sw-fside>b{display:block;font:800 .8rem var(--fb);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sw-fside.r{text-align:right}
.sw-flog{grid-column:1/-1;list-style:none;margin:4px 0 0;padding:0;font-size:.78rem;min-height:7.5em}.sw-flog li{padding:2px 0;border-bottom:1px dashed #2a2350}.sw-flog li.crit{color:#ffd23d}
.sw-fres{grid-column:1/-1;margin:4px 0 0;text-align:center;font:700 .86rem var(--fb)}
.sw-raidbox{border-color:#a24bff88}.sw-raidbox.live{box-shadow:0 0 22px rgba(162,75,255,.25)}.sw-raidbox.hit{animation:swhit .35s}
.sw-rmembers{list-style:none;margin:10px 0;padding:0;display:grid;gap:6px}
.sw-rm{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:10px;background:#0f0c20;min-width:0}.sw-rm.inv{opacity:.6}.sw-rm.ko{filter:grayscale(.8)}
.sw-rm-id{min-width:0;overflow:hidden;text-overflow:ellipsis}
.sw-rinv{display:flex;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #2a2350}.sw-rinv>span{flex:1;min-width:0}
.sw-lab select{width:100%;max-width:100%}

/* ---------- v1.0 step 4: 🎬 Shadow Theater (/play/theater/) ---------- */
.sw-thtr-pd{margin:10px 0;padding:10px 12px;border-radius:var(--r);border:1px dashed var(--line);font-size:.85rem;color:var(--soft)}
.sw-thtr-pd b{color:inherit}
.sw-thtr-sub{margin:-4px 0 12px;font-size:.92rem;color:var(--soft)}
.sw-tr-blurb{margin:-4px 0 10px;color:var(--soft);line-height:1.45}
.sw-thtr-next{border-color:rgba(255,60,90,.55);box-shadow:0 0 18px rgba(255,60,90,.18)}
.sw-thtr-k{margin:0 0 4px;font-size:.72rem;font-weight:800;letter-spacing:.12em;color:#ff5a76}
.sw-thtr-next h2{margin:0 0 6px;font-size:1.15rem;line-height:1.25}
.sw-thtr-when{margin:0 0 8px;font-weight:700}
.sw-thtr-cd{margin:8px 0;padding:10px 12px;border-radius:10px;background:rgba(0,0,0,.35);font-variant-numeric:tabular-nums;font-size:1.05rem}
.sw-thtr-cd b{font-size:1.2rem;letter-spacing:.02em}
.sw-thtr-live{color:#ff3c5a;animation:sw-thtr-pulse 1.6s ease-in-out infinite}
@keyframes sw-thtr-pulse{50%{opacity:.55}}
@media (prefers-reduced-motion:reduce){.sw-thtr-live{animation:none}}
.sw-thtr-act{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:10px}
.sw-btn.sw-thtr-x{background:#000;color:#fff;border:1px solid #444;box-shadow:none}
.sw-btn.sw-thtr-x.sw-alt{background:#111;opacity:.92}
.sw-thtr-xn{flex:1 1 180px}
.sw-thtr-frame{position:relative;width:100%;aspect-ratio:4/3;background:#000;border-radius:10px;overflow:hidden}
.sw-thtr-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.sw-thtr-frame video{position:absolute;inset:0;width:100%;height:100%;background:#000;object-fit:contain}
.sw-film-go{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:12px 20px;border:0;border-radius:999px;background:#e11d48;color:#fff;font-weight:700;font-size:16px;cursor:pointer;box-shadow:0 4px 18px rgba(0,0,0,.5)}
.sw-film-go[hidden]{display:none}
.sw-thtr-pl h2,.sw-thtr-past h2{margin:0 0 10px;font-size:1rem}
.sw-thtr-past ul{margin:0;padding-left:18px}.sw-thtr-past li{margin:4px 0}

/* ===== v1.0 step 5 (preview) ===== */
/* 🔊/🔇 sound toggle (sw-audio.js inserts it before #sw-auth on /play/ pages) */
.sw-snd{flex:0 0 auto;position:static;margin:0;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:50%;border:1px solid var(--line);background:rgba(17,14,36,.85);color:#fff;font-size:1.05rem;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}
.sw-snd:hover,.sw-snd:focus-visible{border-color:var(--mag);box-shadow:0 0 10px rgba(235,40,220,.4)}
.sw-snd[aria-pressed="false"]{opacity:.7}
@media (max-width:420px){.site-header:has(.sw-snd) .hdr{gap:6px}.site-header:has(.sw-snd) .btn-follow{padding:.45em .6em;font-size:.74rem}}
/* 🎵 ambient bar, next to the page title (off by default; the mp3 is only fetched after ▶) */
.sw-h1row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px}
.sw-h1row h1{margin-right:auto}
.sw-amb{display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:999px;border:1px solid var(--line);background:#0b0918;font-size:.78rem}
.sw-amb[hidden]{display:none}
.sw-amb-b{width:30px;height:30px;border-radius:50%;border:1px solid var(--purp);background:#16112e;color:#fff;font-size:.8rem;cursor:pointer;padding:0;line-height:1}
.sw-amb-b:disabled{opacity:.45;cursor:not-allowed}
.sw-amb.on .sw-amb-b{border-color:var(--mag);box-shadow:0 0 10px rgba(235,40,220,.5)}
.sw-amb-l{white-space:nowrap;font-weight:700}.sw-amb-st{font-weight:500;margin-left:4px}
.sw-amb input[type=range]{width:84px;accent-color:#eb28dc}
/* 💬 Theater chat: below the player on phones (collapsible), beside it on wide screens */
.sw-thtr-stage{display:block}
@media (min-width:900px){.sw-thtr-stage-2{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:14px;align-items:start}.sw-thtr-stage-2>.sw-box{margin-top:0}}
.sw-thtr-chat summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font:800 1rem var(--fh);min-height:32px}
.sw-thtr-chat summary::-webkit-details-marker{display:none}
.sw-thc-car{margin-left:auto;transition:transform .2s}.sw-thtr-chat:not([open]) .sw-thc-car{transform:rotate(-90deg)}
.sw-thc-slow{font:700 .68rem var(--fb);padding:.2em .6em;border-radius:999px;background:rgba(255,200,61,.14);border:1px solid #ffc83d;color:#ffd76b;white-space:nowrap}
.sw-thc-n{font:800 .62rem var(--fb);padding:.15em .5em;border-radius:999px;background:var(--mag);color:#fff;text-transform:uppercase}
.sw-thc-log{height:min(42vh,380px)}
@media (min-width:900px){.sw-thc-log{height:min(52vh,430px)}}
.sw-thc-in{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0}
/* ⏱ countdowns: label on its own line, timer never wraps, font scales to fit 360px (Chad's phone screenshot, Oct 23) */
.sw-cdt{white-space:nowrap;font-variant-numeric:tabular-nums}
.sw-season{flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:2px}
.sw-season>span{line-height:1.3}
.sw-season b{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:clamp(1rem,5.2vw,1.25rem);letter-spacing:.02em}
@media (min-width:640px){.sw-season{flex-direction:row;justify-content:space-between;text-align:left;gap:12px}.sw-season b{font-size:1.05rem}}
.sw-bigcd{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:clamp(1.05rem,6vw,1.4rem)}
.sw-thtr-cd{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:6px}
.sw-thtr-cd b{white-space:nowrap;font-size:clamp(1rem,5vw,1.2rem)}
.sw-thtr-cd>span{white-space:nowrap}
/* v1.0 step 5: keep the full SHADOW NEWS wordmark visible next to the 🔊 toggle on phones */
@media (max-width:420px){.site-header:has(.sw-snd) .wm{font-size:.8rem;letter-spacing:.03em;gap:.25em}.site-header:has(.sw-snd) .btn-follow{padding:.42em .55em;font-size:.72rem}}
@media (max-width:374px){.site-header:has(.sw-snd) .wm{font-size:.7rem}.site-header:has(.sw-snd) .btn-follow{display:none}}

/* v1.0 step 6 header fix: 🔊 sits in the icon group (same size as 🎒/📨), nothing is absolutely positioned, the wordmark
   shrinks (and finally hides) instead of running under the icons; Follow is the first thing to go on narrow phones. */
.hdr .brand{min-width:0;flex:0 1 auto;overflow:hidden}
.hdr .wm{min-width:0;overflow:hidden;white-space:nowrap}
.hdr .sw-auth{flex:0 0 auto}
@media (max-width:520px){.sw-snd{width:34px;height:34px;font-size:.95rem}}
@media (max-width:440px){
 .site-header:has(.sw-bag) .btn-follow{padding:.4em .55em;font-size:.7rem;margin-left:4px;flex:0 0 auto}
 .site-header:has(.sw-bag) .wm{font-size:clamp(.66rem,2.9vw,.84rem);letter-spacing:.02em;gap:.25em}
 .sw-auth:has(.sw-bag) .sw-snd{width:32px;height:32px;font-size:.9rem}
 .site-header:has(.sw-bag) .sw-caret{display:none}.site-header:has(.sw-bag) button.sw-me{padding:2px}
 .site-header:has(.sw-bag) .brand{gap:6px}.site-header:has(.sw-bag) .brand img{width:36px;height:36px}.site-header:has(.sw-bag) .hdr{gap:6px}.sw-auth:has(.sw-bag){gap:5px}
}
@media (max-width:400px){.site-header:has(.sw-bag) .btn-follow{display:none}}
@media (max-width:359px){.site-header:has(.sw-bag) .wm{display:none}}
@media (max-width:440px){.site-header:has(.sw-snd):not(:has(.sw-bag)) .wm{font-size:clamp(.6rem,2.6vw,.78rem);letter-spacing:.02em;gap:.25em}.site-header:has(.sw-snd):not(:has(.sw-bag)) .sw-login{padding:.4em .6em;font-size:.72rem}}
@media (max-width:374px){.site-header:has(.sw-snd):not(:has(.sw-bag)) .btn-follow{display:none}}
/* ⬆️ Upgrades (v1.0 step 6) */
.sw-lvl{position:absolute;left:6px;bottom:6px;padding:1px 6px;border-radius:999px;background:rgba(10,8,24,.85);border:1px solid var(--cyan,#2fd6ff);color:#bff3ff;font:800 .62rem/1.5 var(--fh,inherit);letter-spacing:.04em}
.sw-fused{display:inline-block;padding:1px 6px;border-radius:999px;background:linear-gradient(90deg,#ff7a18,#eb28dc);color:#fff;font:800 .6rem/1.5 var(--fh,inherit);letter-spacing:.05em;box-shadow:0 0 8px rgba(255,90,40,.5)}
.sw-bagc-img .sw-fused{position:absolute;right:6px;bottom:6px}
.sw-bagc-acts{display:inline-flex;gap:6px;align-items:center}
.sw-up-tabs{margin:.6em 0}
.sw-trk-list{display:grid;gap:10px}
.sw-trk{padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(17,14,36,.6);display:grid;gap:6px}
.sw-trk-h{display:flex;justify-content:space-between;gap:8px;font-size:.9rem}.sw-trk-h span{color:var(--muted,#aab);font-size:.8rem}
.sw-trk-b{justify-self:start;font-size:.8rem;padding:.45em .8em}.sw-trk-b[disabled]{opacity:.5}
.sw-trk-max{font-weight:800;color:#7dffb2;font-size:.8rem}
.sw-up-cards{list-style:none;margin:0;padding:0;display:grid;gap:6px;grid-template-columns:minmax(0,1fr);min-width:0}
.sw-up-cards li{min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px;border:1px solid var(--line);border-radius:10px;background:rgba(17,14,36,.55)}
.sw-up-cards .sw-lvl{position:static}
.sw-up-ct{flex:1 1 160px;min-width:0;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-up-cs{font-size:.75rem;color:var(--muted,#aab)}
.sw-fuse-list li.on{border-color:var(--mag,#eb28dc)}.sw-fuse-list li.keep{box-shadow:0 0 12px rgba(235,40,220,.45)}
.sw-fuse-pick{background:none;border:0;font-size:1.1rem;cursor:pointer;padding:0 2px}
.sw-fuse-go{margin-top:10px;width:100%}.sw-fuse-go[disabled]{opacity:.5}
.sw-upm{display:grid;gap:8px;text-align:left}.sw-upm-t{margin:0;font-size:.85rem}
.sw-upm-row{display:flex;justify-content:space-between;gap:10px;font-size:.85rem;padding:6px 0;border-bottom:1px solid var(--line)}
.sw-upm-row em{color:#7dffb2;font-style:normal}.sw-upm-cost b{color:#ffd76a}
.sw-fuse-warn{padding:8px 10px;border:1px solid #ff6a3d;border-radius:10px;background:rgba(255,80,40,.12);font-size:.82rem}.sw-fuse-warn ul{margin:.4em 0 0;padding-left:1.1em}
/* ---------- v1.0 step 7: 🆙 Player Level badge, 🗺️ Shadow Path, 🏛️ Showcase */
.sw-me-av{position:relative;display:inline-block;flex:0 0 auto;width:34px;height:34px;line-height:0;vertical-align:middle}
.sw-me-av img{width:100%!important;height:100%!important}
@media (max-width:520px){.sw-me-av{width:30px;height:30px}}
.sw-plv{position:absolute;right:-5px;bottom:-4px;min-width:17px;height:17px;padding:0 3px;border-radius:9px;background:linear-gradient(135deg,#8b5cf6,#ec4899);color:#fff;font:800 10px/17px system-ui,sans-serif;text-align:center;border:2px solid #0b0b14;box-sizing:border-box}
.sw-plv-big{display:inline-block;min-width:34px;padding:2px 8px;margin-left:4px;border-radius:999px;background:linear-gradient(135deg,#8b5cf6,#ec4899);color:#fff;text-align:center}
.sw-xpbar{height:10px;border-radius:6px;background:rgba(255,255,255,.08);overflow:hidden;margin:8px 0 4px}
.sw-xpbar>i{display:block;height:100%;background:linear-gradient(90deg,#8b5cf6,#ec4899);border-radius:6px}
.sw-xpbar-s{height:5px;margin:4px 0 0}
.sw-path-tier{display:flex;align-items:center;gap:12px;margin:8px 0}
.sw-path-n{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#a78bfa,#5b21b6);color:#fff;font-size:24px;font-weight:900;box-shadow:0 0 18px rgba(139,92,246,.5)}
.sw-chl{list-style:none;margin:0;padding:0}
.sw-chl li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:14px}
.sw-chl li .sw-xpbar{flex:1 0 100%}
.sw-chl li.sw-done{opacity:.75}
.sw-chl-p{white-space:nowrap}
.sw-tiers{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:4px}
.sw-tiers li{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;background:rgba(255,255,255,.04);font-size:13px;min-width:0}
.sw-tiers li b{text-align:center;color:#a78bfa}
.sw-tiers li i{font-style:normal;font-size:12px;color:#9ca3af}
.sw-tiers li.sw-reached{background:rgba(139,92,246,.18)}
.sw-tiers li.sw-reached i{color:#34d399}
.sw-tiers li.sw-cur{outline:2px solid #8b5cf6}
.sw-tiers li.sw-badge-t span{color:#fbbf24}
.sw-ach .k-path{background:rgba(139,92,246,.2);border-color:#8b5cf6}
.sw-scg{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.sw-scc{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;padding:8px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(139,92,246,.45);box-shadow:0 0 12px rgba(56,189,248,.15) inset;min-width:0}
.sw-scc.sw-sc-paused{border-color:#f59e0b;box-shadow:none}
.sw-scc.sw-sc-warn{border-color:#ef4444;background:rgba(239,68,68,.08)}
.sw-scc-img{position:relative;display:block;width:72px;height:72px;border-radius:8px;overflow:hidden;background:#0b0b14}
.sw-scc-img img{width:100%;height:100%;object-fit:cover}
.sw-scc-img .rbadge{position:absolute;left:2px;top:2px;font-size:9px}
.sw-scc-img .sw-lvl{position:absolute;right:2px;bottom:2px}
.sw-scc-b{min-width:0}
.sw-scc-t{display:block;font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-scc p{margin:4px 0 0}
.sw-sc-st{color:#38bdf8;font-weight:700}
.sw-sc-acts{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sw-owntag.sw-frozen{color:#38bdf8}
.sw-upm-sc{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1);font-size:13px}
.sw-sc-acts .sw-btn{color:#fff;padding:6px 12px;font-size:.8rem}
.sw-upm-sc .sw-btn{color:#fff;padding:6px 10px}
/* v1.0 step 8: grouped More menu, 🔒 unlocks, 🧭 first-time guide, 🚀 launch banner, DM counter */
.sw-more-g{padding:8px 12px 2px;font:800 .62rem var(--fb);letter-spacing:.14em;text-transform:uppercase;color:#8f86c9}
.sw-more-g:first-child{padding-top:2px}.sw-more-g[hidden]{display:none}
.sw-more-m{max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px);overflow-y:auto;overscroll-behavior:contain}
.sw-more-m a{padding:8px 12px}
.sw-locked{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;margin:10px 0;padding:14px;border-radius:14px;border:1px dashed #5b4fa8;background:rgba(20,14,48,.7)}
.sw-locked .sw-lock-i{grid-row:span 3;font-size:1.8rem;filter:grayscale(.3)}
.sw-locked b{font-size:1rem}.sw-locked span:not(.sw-lock-i){font-weight:800;color:#ffd166}.sw-locked i{font-style:normal;font-size:.8rem;color:var(--muted,#a9a3d6)}
.sw-up-tabs button[data-lock]{opacity:.72}.sw-lock-lv{font-style:normal;font-size:.7rem;color:#ffd166;margin-left:2px}
.sw-unl{list-style:none;margin:8px 0 4px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.sw-unl li{display:flex;flex-direction:column;padding:8px 10px;border-radius:10px;border:1px solid #3a3170;background:rgba(13,10,31,.6);font-weight:700;font-size:.82rem}
.sw-unl li.on{border-color:rgba(45,226,255,.45)}.sw-unl li i{font-style:normal;font-size:.72rem;color:#a9a3d6}.sw-unl li.off i{color:#ffd166}
.sw-guide{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;padding:16px;background:rgba(5,3,14,.72);backdrop-filter:blur(2px)}
.sw-guide-c{position:relative;width:min(420px,100%);padding:20px 18px 16px;border-radius:20px;border:1px solid #6b55d6;background:linear-gradient(180deg,#171036,#0d0a1f);box-shadow:0 0 30px rgba(162,75,255,.45);text-align:center}
.sw-guide-k{margin:0 0 6px;font:800 .66rem var(--fb);letter-spacing:.14em;color:#8f86c9}
.sw-guide-i{font-size:2.6rem;line-height:1.1}.sw-guide-c h2{margin:6px 0;font-size:1.2rem}.sw-guide-c p{margin:0 0 10px}
.sw-guide-x{position:absolute;top:10px;right:10px;background:none;border:1px solid #4b3f8f;border-radius:999px;color:var(--txt);padding:4px 12px;font:700 .78rem var(--fb);cursor:pointer}
.sw-guide-dots{display:flex;gap:6px;justify-content:center;margin:6px 0 12px}.sw-guide-dots b{width:8px;height:8px;border-radius:50%;background:#3a3170}.sw-guide-dots b.on{background:var(--cyan,#2de2ff)}
.sw-guide-b{display:flex;gap:8px;justify-content:center}.sw-guide-b .sw-btn{min-width:120px}.sw-guide-go{display:inline-block;margin-top:10px;color:var(--cyan,#2de2ff)}
.sw-launchban{display:flex;flex-direction:column;gap:2px;margin:10px 0;padding:12px 14px;border-radius:14px;border:1px solid #ffd166;background:linear-gradient(90deg,rgba(255,209,102,.18),rgba(162,75,255,.18))}
.sw-launchban span{font-size:.84rem}
.sw-dmc-warn{color:#ffd166!important}.sw-dmc-full{color:#ff6b8a!important;font-weight:800}
.sw-how-guide{margin:0 0 12px}
.sw-botres .sw-fight{margin:8px 0}

/* ambfix 2026-10-23: in-place /play/ tab switch (sw-nav.js), dim the old page while the next one loads */
/* ambfix2: no dimming while a tab loads, the old page stays as it is until the swap */
html.sw-navving { cursor: progress; }
/* ambfix2: ONE fixed spot for 🎵 Ambient on every /play/ tab: a slim row right under the tab bar, outside the swapped #sw-view */
.sw-amb-dock { display: flex; align-items: center; min-height: 40px; margin: 6px 0 2px; }
/* ambfix3: full content width, aligned with the tab row; button flush left, slider fills the rest */
.sw-amb-dock .sw-amb { display: flex; flex: 1 1 auto; width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; padding-right: 14px; }
.sw-amb-dock .sw-amb[hidden] { display: none; }
.sw-amb-dock .sw-amb-b { flex: 0 0 auto; }
.sw-amb-dock .sw-amb-l { flex: 0 1 auto; }
.sw-amb-dock .sw-amb input[type=range] { flex: 1 1 auto; width: auto; min-width: 60px; margin-left: 6px; }
.sw-amb-dock .sw-amb-l { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
@media (max-width: 400px) { .sw-amb-dock .sw-amb { font-size: .74rem; } }
/* ambfix2: page placeholder = subtle spinner that keeps the layout height (no bare "Loading…" line) */
#sw-app > .sw-loading:only-child, #sw-app > p.muted:only-child { min-height: 50vh; display: flex; align-items: flex-start; justify-content: center; gap: 10px; padding-top: 48px; margin: 0; color: var(--muted, #8f8aa8); font-size: .85rem; }
#sw-app > .sw-loading:only-child::before, #sw-app > p.muted:only-child::before { content: ""; width: 16px; height: 16px; border-radius: 50%; border: 2px solid rgba(235, 40, 220, .25); border-top-color: #eb28dc; animation: sw-spin .8s linear infinite; flex: none; }
@keyframes sw-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { #sw-app > .sw-loading:only-child::before, #sw-app > p.muted:only-child::before { animation: none; } }

/* fbmerge: Feature board header with a prominent Suggest button */
.sw-fb-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}.sw-fb-head h2{margin:0}
.sw-fb-suggest{font-weight:800;white-space:nowrap}
@media (max-width:400px){.sw-fb-suggest{width:100%;text-align:center}}
.sw-fb-back{margin:4px 0 10px}

.sw-sortlbl{align-self:center;flex:0 0 auto}
.sw-dpay{margin:6px 0 0}.sw-dpay b{white-space:nowrap}
.sw-rm.bot .sw-rbot{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;font-size:22px;flex:0 0 32px}

/* ===== 🔮 Shadow Calls (v2.0 preview; only rendered in calls mode) ===== */
#sw-calls{min-height:200px}
.sc-hero{margin:8px 0 14px;padding:18px 16px;border-radius:var(--r);border:1px solid var(--mag);background:radial-gradient(120% 90% at 0 0,rgba(235,40,220,.18),transparent 60%),var(--panel);text-align:center}
.sc-hero-k{font:800 .68rem var(--fh);letter-spacing:.14em;color:var(--cyan);margin:0 0 6px}
.sc-hero h2{font:800 1.35rem/1.2 var(--fh);margin:0 0 8px}
.sc-hero p{color:var(--soft);margin:0 0 14px}
.sw-btn-big{font-size:1.02rem;min-height:50px;padding:.6em 1.4em}
.sc-steps{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px;text-align:left}
.sc-steps li{display:grid;grid-template-columns:36px 1fr;column-gap:10px;padding:10px;border-radius:12px;background:var(--bg2);border:1px solid var(--line)}
.sc-steps .sc-step-i{grid-row:span 2;font-size:1.5rem;align-self:center;text-align:center}
.sc-steps b{font-size:.9rem}.sc-steps li>span:last-child{color:var(--soft);font-size:.82rem}
.sc-me{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:8px 0}
.sc-me-s{display:flex;flex-direction:column;align-items:center;padding:8px 4px;border-radius:12px;background:var(--panel);border:1px solid var(--line);min-width:0}
.sc-me-s b{font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.sc-me-s i{font:700 .55rem var(--fh);letter-spacing:.08em;color:var(--mute);font-style:normal;margin-top:2px}
.sc-rankbar{position:relative;height:20px;border-radius:999px;background:var(--bg2);border:1px solid var(--line);overflow:hidden;margin:0 0 10px}
.sc-rankbar b{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--purp),var(--mag))}
.sc-rankbar span{position:relative;display:block;text-align:center;font-size:.7rem;font-weight:700;line-height:18px}
.sc-phase{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;margin:10px 0;padding:10px 12px;border-radius:12px;background:var(--bg2);border:1px solid var(--line);font-size:.86rem}
.sc-phase [data-cd]{color:var(--cyan);font-variant-numeric:tabular-nums}
.sc-ph-open{border-color:var(--cyan)}.sc-ph-locked{border-color:#ffc83d}.sc-ph-scored{border-color:#3ddc84}
.sc-sim{font-size:.72rem;color:#ffc83d;font-style:normal}
.sc-prog{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;font-size:.86rem}
.sc-prog>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--bg2);border:1px dashed var(--line);filter:grayscale(1);opacity:.55}
.sc-prog>span.on{filter:none;opacity:1;border:1px solid var(--mag);box-shadow:0 0 10px rgba(235,40,220,.45)}
.sc-prog i{flex-basis:100%;color:var(--soft);font-size:.78rem;font-style:normal}
.sc-cards{display:grid;gap:10px}
.sc-card{display:grid;grid-template-columns:84px 1fr;gap:10px;padding:10px;border-radius:var(--r);background:var(--panel);border:1px solid var(--line);transition:border-color .2s,box-shadow .2s}
.sc-card.sc-b{border-color:#ff8a3d;box-shadow:0 0 14px rgba(255,138,61,.35)}
.sc-card.sc-f{border-color:var(--cyan);box-shadow:0 0 14px rgba(40,200,255,.3)}
.sc-img{display:block;width:84px;height:84px;border-radius:10px;overflow:hidden;background:var(--bg2)}
.sc-img img{width:100%;height:100%;object-fit:cover;display:block}
.sc-noimg{display:grid;place-items:center;font-size:2rem}
.sc-body{min-width:0;display:flex;flex-direction:column;gap:6px}
.sc-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.68rem;font-weight:700}
.sc-num{font-family:var(--fh);color:var(--mute)}
.sc-cat,.sc-brk,.sc-bon{padding:2px 7px;border-radius:999px;background:var(--bg2);border:1px solid var(--line)}
.sc-brk{border-color:#ff3d6e;color:#ff8aa6}.sc-bon{border-color:#ffc83d;color:#ffd75e}
.sc-hook{color:var(--txt);font-weight:700;font-size:.9rem;line-height:1.3;text-decoration:none;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sc-acts{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sc-pick{min-height:40px;padding:.35em .9em;border-radius:999px;border:1px solid var(--line);background:var(--bg2);color:var(--txt);font:700 .82rem var(--fb);cursor:pointer;transition:.15s}
.sc-pick:active{transform:scale(.96)}.sc-pick:disabled{opacity:.6;cursor:wait}
.sc-pick-b.on{background:linear-gradient(90deg,#ff8a3d,#ff3d6e);border-color:transparent;color:#fff}
.sc-pick-f.on{background:linear-gradient(90deg,#28c8ff,#8c46ff);border-color:transparent;color:#fff}
.sc-pick-o.on,.sc-fl .sc-pick.on{background:linear-gradient(90deg,#ffc83d,#ff8a3d);border-color:transparent;color:#1a1200}
.sc-read{margin-left:auto;font-size:.78rem;color:var(--cyan);font-weight:700;text-decoration:none}
.sc-tag{display:inline-block;padding:3px 9px;border-radius:999px;font-size:.74rem;font-weight:700;background:var(--bg2);border:1px solid var(--line);font-style:normal}
.sc-tag.on{border-color:#ffc83d}.sc-tag-b{border-color:#ff8a3d;color:#ffb27a}.sc-tag-f{border-color:var(--cyan);color:#8ae0ff}
.sc-crowd{display:flex;gap:10px;font-size:.72rem;color:var(--soft)}.sc-crowd i{color:var(--mute)}
.sc-bonus .sc-bq{margin:0 0 4px}.sc-line{color:#ffd75e}
.sc-ou{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}.sc-ou .sc-pick{flex:1;min-width:110px}
.sc-frl,.sc-top,.sc-hist,.sc-lbl,.sc-outl{list-style:none;margin:0;padding:0}
.sc-frl li,.sc-top li,.sc-hist li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line);font-size:.84rem}
.sc-frl li:last-child,.sc-top li:last-child,.sc-hist li:last-child{border:0}
.sc-frc{margin-left:auto;color:var(--soft)}.sc-top i,.sc-lb-v i{color:var(--mute);font-style:normal;font-size:.78rem}
.sc-hist li span{margin-left:auto}.sc-hist a{color:var(--txt)}
.sw-who{display:inline-flex;align-items:center;gap:6px;color:var(--txt);font-weight:700;text-decoration:none;min-width:0}
.sw-who .sw-av{border-radius:50%;flex:none}
.sc-fl{padding:8px 0;border-bottom:1px solid var(--line)}.sc-fl:last-child{border:0}.sc-fl p{margin:0 0 4px}
.sc-flash{border-color:#ffc83d}
.sc-chests{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sc-chest{flex:1;min-height:40px;border-radius:12px;border:1px solid var(--line);background:var(--bg2);color:var(--txt);font-weight:700;font-size:.76rem;cursor:pointer}
.sc-chest.ready{border-color:#ffc83d;box-shadow:0 0 12px rgba(255,200,61,.45);animation:scPulse 1.6s infinite}
.sc-chest.open{opacity:.6}.sc-chest:disabled{cursor:default}
@keyframes scPulse{50%{box-shadow:0 0 22px rgba(255,200,61,.8)}}
.sc-grid-mini{font-size:1.05rem;margin:0}
.sc-scored{text-align:center}.sc-rule{margin:16px 0 0;text-align:center}
.center{text-align:center}.sw-big{font-size:2.4rem;margin:0}
.sc-res{text-align:center;border-color:var(--mag);background:radial-gradient(120% 90% at 50% 0,rgba(235,40,220,.16),transparent 60%),var(--panel)}
.sc-res-k{font:800 .7rem var(--fh);letter-spacing:.12em;color:var(--cyan);margin:0 0 10px}
.sc-res-grid{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}
.sc-res-grid span{padding:8px 12px;border-radius:12px;background:var(--bg2);border:1px solid var(--line);font-weight:700;font-size:.9rem}
.sc-res-pts{font:800 2rem var(--fh);margin:12px 0 2px;color:#ffd75e}.sc-res-sub{color:var(--soft);margin:0}
.sc-grid{white-space:pre-wrap;font:1rem/1.5 ui-monospace,Menlo,monospace;padding:12px;border-radius:12px;background:var(--bg);border:1px solid var(--line);margin:0 0 10px;user-select:all}
.sc-share-b{display:flex;flex-wrap:wrap;gap:8px}.sc-share-b .sw-btn{flex:1;min-width:120px}
#sc-dm{margin-top:10px}#sc-dm select{min-height:40px;border-radius:10px;background:var(--bg2);color:var(--txt);border:1px solid var(--line);padding:0 8px}
.sc-outl li{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px;border-radius:10px;margin-bottom:6px;background:var(--bg2);border:1px solid var(--line);font-size:.82rem}
.sc-outl li.sc-win-b{border-color:#ff8a3d}.sc-outl li.sc-win-f{border-color:var(--cyan)}
.sc-out-t{flex:1;min-width:0}.sc-out-t a{color:var(--txt)}.sc-out-n{font-variant-numeric:tabular-nums;color:var(--soft);font-weight:700}
.sc-tabs{display:flex;gap:6px;overflow-x:auto;margin:8px 0 10px;padding-bottom:2px}
.sc-tab{flex:none;min-height:40px;padding:.3em 1em;border-radius:999px;border:1px solid var(--line);background:var(--bg2);color:var(--soft);font-weight:700;font-size:.82rem;cursor:pointer}
.sc-tab.on{color:#fff;border-color:var(--mag);background:rgba(235,40,220,.2)}
.sc-ranks{display:flex;flex-wrap:wrap;gap:6px;font-size:.72rem}.sc-ranks span{padding:3px 8px;border-radius:999px;background:var(--bg2);border:1px solid var(--line)}.sc-ranks i{color:var(--mute);font-style:normal}
.sc-lbl li{display:flex;align-items:center;gap:8px;padding:9px 10px;margin-bottom:6px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.sc-lbl li.me{border-color:var(--cyan);box-shadow:0 0 10px rgba(40,200,255,.3)}
.sc-lb-r{width:28px;text-align:center;font:800 .82rem var(--fh);flex:none}.sc-lb-v{margin-left:auto;text-align:right;white-space:nowrap}
.sc-admin input.sw-in{width:100%;min-height:40px;margin:4px 0 6px;border-radius:10px;background:var(--bg2);color:var(--txt);border:1px solid var(--line);padding:0 10px}
.sc-admin .sw-lab{display:block;font-size:.8rem;margin-top:10px}.sc-adm-row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.sc-gp-on{margin:0 0 8px}
@media (max-width:420px){.sc-me{grid-template-columns:repeat(3,1fr)}.sc-me-s:nth-child(n+4){grid-column:span 1}.sc-card{grid-template-columns:72px 1fr}.sc-img{width:72px;height:72px}.sc-hero h2{font-size:1.18rem}}
@media (prefers-reduced-motion:reduce){.sc-chest.ready{animation:none}}

/* 🔒 Shadow Calls v2.1: early-call multiplier + locks */
.sc-early{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;margin:10px 0;padding:10px 12px;border-radius:12px;background:linear-gradient(90deg,rgba(255,196,0,.16),rgba(255,120,0,.08));border:1px solid rgba(255,196,0,.45)}
.sc-early>b{font-size:1.05rem}
.sc-early>span{font-size:.9rem}
.sc-early .sc-tiers{flex-basis:100%;font-size:.78rem;opacity:.75;font-style:normal}
.sc-lockrow{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;flex-basis:100%}
.sc-lock{font:inherit;font-size:.85rem;font-weight:700;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,196,0,.7);background:rgba(255,196,0,.14);color:inherit;cursor:pointer;min-height:36px}
.sc-lock:hover{background:rgba(255,196,0,.26)}
.sc-lock-all{background:#ffc400;color:#111;border-color:#ffc400}
.sc-lock[disabled]{opacity:.5;cursor:default}
.sc-lockd{display:inline-flex;align-items:center;font-size:.82rem;font-weight:700;padding:5px 10px;border-radius:999px;background:rgba(80,200,120,.16);border:1px solid rgba(80,200,120,.55)}
.sc-pick.sc-locked{outline:2px solid #ffc400;outline-offset:1px;opacity:1}
.sc-pick[disabled]:not(.sc-locked){opacity:.45}
.sc-prog>span.lk{box-shadow:0 0 0 2px #ffc400}
.sc-res-calls{list-style:none;padding:0;margin:10px 0;display:grid;gap:6px}
.sc-res-calls li{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 10px;border-radius:10px;background:rgba(127,127,127,.1)}
.sc-res-calls b{margin-left:auto}
.sc-res-calls i{font-size:.78rem;opacity:.7}
.sc-mult{font-size:.78rem;font-weight:700;padding:2px 7px;border-radius:999px;background:rgba(255,196,0,.18)}
.sc-out-g{display:block;font-size:.72rem;opacity:.7;font-style:normal}
.xr-panel.xr-hidden{padding:10px 12px}
.sc-pick.sc-locked:disabled{opacity:1;cursor:default}.sc-pick:disabled:not(.sc-locked){cursor:not-allowed}
/* 2026-10-24: lean /play/ hub after Shadow Calls was retired */
.sw-hubtiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:.7rem;margin:.8rem 0}
.sw-hubtile{display:flex;gap:.7rem;align-items:center;text-decoration:none;color:inherit;margin:0;min-width:0}
.sw-hubtile:hover,.sw-hubtile:focus-visible{border-color:var(--accent,#a78bfa)}
.sw-hubtile-i{font-size:1.6rem;line-height:1;flex:none}
.sw-nav-squad .sw-nt{min-width:0}
/* ---------- 2026-10-24 scrub: 💬 header chat icon (replaces the 🎒 bag spot) + 6-pill nav with 🎬 Theater ---------- */
.sw-chat-ic .sw-bag-ic{font-size:1.05rem}
.sw-chat-ic:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
/* Follow stays visible next to 💬 + avatar on phones (overrides the old bag-era "hide Follow under 400px" rule) */
@media (max-width:400px){
 .site-header:has(.sw-bag) .btn-follow{display:inline-flex;padding:.38em .5em;font-size:.68rem;margin-left:4px}
 .site-header:has(.sw-bag) .wm{font-size:clamp(.6rem,2.7vw,.8rem)}
 .sw-auth:has(.sw-bag){gap:5px}
 .sw-auth .sw-login{padding:.38em .55em;font-size:.72rem}
}
@media (max-width:340px){.site-header:has(.sw-bag) .wm{display:none}}
/* Nav row: pills fill the row when they fit and scroll sideways (no visible scrollbar) when they don't */
.sn-pills{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain;scroll-snap-type:x proximity}
.sn-pills::-webkit-scrollbar{display:none}
.nav .sn-pill{flex:1 0 auto;scroll-snap-align:start}
@media (max-width:699px){.nav .sn-pill{font-size:.7rem;padding:.5em .45em;gap:.2em}}
@media (max-width:374px){.nav .sn-pill .sn-pi{display:inline}}
/* Squad and Theater are plain pills now: lit only on their own pages */
.nav .sn-pill.sn-sq,.nav .sn-pill.sn-th{animation:none}
/* 📅 This Week card at the top of home + category pages */
.week-top{padding-top:10px;padding-bottom:4px}
.week-top .week-panel{max-width:760px;margin:0 auto}
/* 2026-10-24: 📰 Tips room hint + story links in chat */
.sw-tiphint{border:1px solid rgba(255,200,60,.45);background:rgba(255,200,60,.08);color:var(--soft);border-radius:10px;padding:.5em .75em;margin:.2em 0 .6em;line-height:1.4}
.sw-chat .sw-msg p a{color:#ffd23f;text-decoration:underline;word-break:break-all}
/* phones: drop the category emoji (keep 🏆 / 🎬) so all 6 pills incl. Theater fit at 390px without scrolling */
@media (max-width:430px){.nav .sn-pill:not(.sn-sq):not(.sn-th) .sn-pi{display:none}.nav .sn-pill{padding:.5em .5em}}

/* ---------- 2026-10-24: 🎞️ Trailer Block + 🍿 Pre-Show + 🎞️ Trailer Hour (/play/theater/, sw-trailers.js) ---------- */
.sw-thtr-main{min-width:0}
.sw-thtr-main>.sw-box:first-child{margin-top:0}
@media (max-width:899px){.sw-thtr-main>.sw-box:first-child{margin-top:14px}}
.sw-thtr[data-tr-mode="show"] .sw-tr{display:none}
.sw-tr{border-color:rgba(40,200,255,.5);box-shadow:0 0 18px rgba(40,200,255,.14)}
.sw-thtr[data-tr-mode="preshow"] .sw-tr,.sw-thtr[data-tr-mode="hour"] .sw-tr{border-color:var(--mag);box-shadow:0 0 22px rgba(235,40,220,.3)}
.sw-tr h2{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 10px;font-size:1rem}
.sw-tr-mode{font:800 .66rem var(--fb);letter-spacing:.08em;text-transform:uppercase;padding:.25em .7em;border-radius:999px;border:1px solid var(--cyan,#28c8ff);color:var(--cyan,#28c8ff)}
.sw-tr-mode:empty{display:none}
.sw-thtr[data-tr-mode="preshow"] .sw-tr-mode,.sw-thtr[data-tr-mode="hour"] .sw-tr-mode{border-color:var(--mag);color:#ff8cf3}
.sw-tr-frame{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:10px;overflow:hidden}
.sw-tr-frame iframe,#sw-tr-yt{position:absolute;inset:0;width:100%;height:100%;border:0}
.sw-tr-poster{position:absolute;inset:0;z-index:2;display:block;width:100%;height:100%;padding:0;border:0;background:#000;cursor:pointer;color:#fff}
.sw-tr-poster[hidden]{display:none}
.sw-tr-poster img{width:100%;height:100%;object-fit:cover;opacity:.6;display:block}
.sw-tr-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:.7em 1.3em;border-radius:999px;background:rgba(10,8,24,.82);border:1px solid var(--mag);box-shadow:0 0 18px rgba(235,40,220,.55);font:800 1rem var(--fh);white-space:nowrap}
.sw-tr-poster:hover .sw-tr-play,.sw-tr-poster:focus-visible .sw-tr-play{background:var(--mag)}
.sw-tr-unmute{position:absolute;z-index:3;right:10px;bottom:10px;padding:.5em .9em;border-radius:999px;border:1px solid #fff;background:rgba(0,0,0,.75);color:#fff;font:800 .85rem var(--fb);cursor:pointer}
.sw-tr-unmute[hidden]{display:none}
.sw-tr-bar{display:flex;align-items:flex-start;gap:10px;margin:10px 0 4px}
.sw-tr-now{flex:1;min-width:0;margin:0;line-height:1.35}
.sw-tr-by{display:block;margin-top:2px}
.sw-tr-ctl{display:flex;gap:6px;flex:0 0 auto}.sw-tr-ctl .sw-btn{min-width:42px;min-height:40px;padding:.3em .6em}
.sw-tr-cat{display:inline-block;font:800 .6rem var(--fb);letter-spacing:.08em;padding:.15em .5em;border-radius:6px;vertical-align:.15em;background:#1b1640;border:1px solid var(--line)}
.sw-tr-c-tech{color:#28c8ff;border-color:#28c8ff88}.sw-tr-c-anime{color:#ff7ad9;border-color:#ff7ad988}
.sw-tr-c-games{color:#7dff9a;border-color:#7dff9a88}.sw-tr-c-movies{color:#ffc83d;border-color:#ffc83d88}
.sw-tr-uh{margin:12px 0 6px;font-size:.9rem}
.sw-tr-list{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:340px;overflow:auto}
.sw-tr-it{display:flex;align-items:center;gap:10px;width:100%;padding:6px;border-radius:10px;border:1px solid transparent;background:#0f0c20;color:inherit;text-align:left;cursor:pointer;font:inherit}
.sw-tr-it:hover,.sw-tr-it:focus-visible{border-color:var(--purp,#a24bff)}
.sw-tr-it.on{border-color:var(--mag);box-shadow:0 0 10px rgba(235,40,220,.3)}
.sw-tr-it img{flex:0 0 auto;width:96px;height:54px;object-fit:cover;border-radius:6px;background:#000}
.sw-tr-it-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:.85rem;line-height:1.3}
.sw-tr-it-t b{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.sw-tr-np{flex:0 0 auto;font:800 .62rem var(--fb);color:#ff8cf3;white-space:nowrap}.sw-tr-np[hidden]{display:none}
.sw-tr-none{padding:24px 12px;text-align:center;border:1px dashed var(--line);border-radius:10px}
.sw-tr-bn{margin:10px 0;padding:10px 14px;border-radius:var(--r);border:1px solid var(--cyan,#28c8ff);background:rgba(40,200,255,.08);font-size:.92rem;line-height:1.4}
.sw-tr-bn[hidden]{display:none}
.sw-tr-bn.live{border-color:var(--mag);background:rgba(235,40,220,.12);box-shadow:0 0 18px rgba(235,40,220,.3)}
.sw-tr-cdt{white-space:nowrap;font-variant-numeric:tabular-nums}
.sw-tr-chatnote{margin:6px 0;padding:6px 10px;border-radius:8px;background:rgba(235,40,220,.1);border:1px solid rgba(235,40,220,.45)}
.sw-tr-chatnote[hidden]{display:none}
@media (max-width:480px){.sw-tr-it img{width:80px;height:45px}.sw-tr-play{font-size:.9rem}}
/* 📊 Admin traffic (2026-10-31) */
.sw-trf-live{display:inline-flex;align-items:center;gap:6px;font:700 .75rem var(--fh);letter-spacing:.06em;color:#7dffb0;border:1px solid rgba(125,255,176,.5);border-radius:999px;padding:.3em .7em;box-shadow:0 0 10px rgba(125,255,176,.25)}
.sw-trf-live i{width:8px;height:8px;border-radius:50%;background:#3dff8c;box-shadow:0 0 8px #3dff8c;animation:swtrfp 1.6s infinite}
@keyframes swtrfp{50%{opacity:.35}}
.sw-trf-sum{grid-template-columns:repeat(4,1fr)}
.sw-trf-sum .sw-stat{text-align:center}
@media (max-width:620px){.sw-trf-sum{grid-template-columns:1fr 1fr}}
.sw-trf-h{font-size:.8rem;margin:14px 0 6px;letter-spacing:.04em}
.sw-trf-chart{display:block;width:100%;height:auto;background:#0b0918;border:1px solid var(--line);border-radius:var(--r);padding:6px 4px 0;box-sizing:border-box}
.sw-trf-chart .pv{fill:rgba(140,70,255,.45)}
.sw-trf-chart .uv{fill:var(--cyan,#28c8ff);filter:drop-shadow(0 0 3px rgba(40,200,255,.8))}
.sw-trf-chart text{fill:var(--mute);font:600 9px var(--fb)}
.sw-trf-sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 4px 0 10px;vertical-align:-1px}
.sw-trf-sw.uv{background:var(--cyan,#28c8ff)}.sw-trf-sw.pv{background:rgba(140,70,255,.6)}
.sw-trf-r{margin-top:12px}
.sw-trf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:820px){.sw-trf-grid{grid-template-columns:1fr}}
.sw-trf-list{list-style:none;margin:0;padding:0}
.sw-trf-list li{display:grid;grid-template-columns:minmax(0,1.3fr) 1fr auto;align-items:center;gap:8px;padding:4px 0;font-size:.8rem;border-bottom:1px solid rgba(255,255,255,.04)}
.sw-trf-k{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--soft)}
.sw-trf-bar{height:6px;border-radius:3px;background:#0b0918;overflow:hidden}
.sw-trf-bar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--mag,#eb28dc),var(--cyan,#28c8ff));box-shadow:0 0 8px rgba(40,200,255,.5)}
.sw-trf-list b{font:700 .78rem var(--fh);color:#fff}
