:root{
  --bg:#101014; --panel:#17171D; --line:#26262E; --ink:#F0EFF4; --dim:#94929F;
  --pink:#EC4899; --pink-soft:#F9A8D4; --pink-deep:#A21CAF;
  --green:#10B981; --rose:#F43F5E;
  --t1:#EC4899; --t2:#8B5CF6; --t3:#22D3EE; --t4:#A3E635; --t0:#F59E0B;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh;padding-bottom:70px}
.wrap{max-width:1020px;margin:0 auto;padding:0 18px}
button{font-family:inherit}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--pink);outline-offset:2px}

/* view-mode banner */
.viewbar{display:none;background:#2A1622;border-bottom:1px solid var(--pink);padding:10px 18px;text-align:center;font-size:13px;color:var(--pink-soft)}
.viewbar button{margin-left:12px;border:1px solid var(--pink);background:transparent;color:var(--pink-soft);border-radius:8px;padding:5px 12px;font-size:12px;cursor:pointer}
body.viewing .viewbar{display:block}

/* hero */
.hero{position:relative;border-radius:0 0 22px 22px;padding:34px 26px 26px;overflow:hidden;
  background:radial-gradient(120% 160% at 15% -20%, rgba(236,72,153,.32), transparent 55%),
             radial-gradient(100% 140% at 90% -30%, rgba(162,28,175,.25), transparent 50%), var(--panel);
  border:1px solid var(--line);border-top:none}
.hero-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.avatar{width:74px;height:74px;border-radius:50%;flex:none;background:linear-gradient(150deg,var(--pink-soft),var(--pink-deep));
  display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;color:#fff;border:3px solid rgba(255,255,255,.25)}
.who{flex:1;min-width:180px}
.who h1{font-size:22px;text-wrap:balance;cursor:pointer}
.who h1:hover::after{content:" ✎";font-size:14px;color:var(--dim)}
body.viewing .who h1{cursor:default}
body.viewing .who h1:hover::after{content:""}
.who p{color:var(--dim);font-size:13px;margin-top:3px}
.who .pills{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap}
.pill{font-size:11px;border:1px solid var(--line);background:rgba(255,255,255,.04);border-radius:999px;padding:4px 10px;color:var(--dim)}
.pill.hot{border-color:var(--pink);color:var(--pink-soft)}
.bigring{position:relative;width:104px;height:104px;flex:none}
.bigring svg{transform:rotate(-90deg)}
.bigring .in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.bigring .in b{font-size:22px;font-variant-numeric:tabular-nums}
.bigring .in span{font-size:10.5px;color:var(--dim)}
.hero-actions{display:flex;flex-direction:column;gap:8px}
.share{border:none;background:var(--pink);color:#fff;font-weight:700;border-radius:10px;padding:11px 18px;font-size:13px;cursor:pointer}
.share small{display:block;font-weight:400;font-size:10px;opacity:.85;margin-top:1px}
.ghostbtn{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;padding:9px 14px;font-size:12.5px;cursor:pointer}
.ghostbtn:hover{border-color:var(--pink)}
body.viewing .hero-actions{display:none}

h2{font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:var(--dim);margin:26px 0 12px}
h2 .h2note{float:right;text-transform:none;letter-spacing:0;font-weight:400;font-size:11.5px;color:#55555F}

/* pinned flex */
.flexrow{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
@media(max-width:640px){.flexrow{grid-template-columns:repeat(3,1fr)}}
.flexslot{aspect-ratio:3/4.1;border-radius:13px;border:2px dashed #33333D;display:flex;align-items:center;justify-content:center;color:#55555F;font-size:11.5px;text-align:center;padding:8px}

/* recent pulls */
.recents{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}
.recent{flex:none;width:88px;display:flex;flex-direction:column;align-items:center;gap:5px}
.card.mini{width:100%;padding:6px;border-radius:9px}
.card.mini .rate{font-size:12.5px}
.card.mini .pos{font-size:7.5px}
.card.mini .mono{font-size:10px;border-width:1px}
.card.mini .name{font-size:8px}
.card.mini .meta{display:none}
.card.mini .tick{width:14px;height:14px;font-size:8.5px;top:5px;right:5px}
.card.mini .menu{gap:5px;padding:6px}
.card.mini .menu button{font-size:8.5px;padding:6px 3px}
.when{font-size:10px;color:var(--dim)}

/* teams */
.teams{display:flex;flex-direction:column;gap:10px}
.team{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:13px 16px}
.team .dot{width:10px;height:10px;border-radius:50%;flex:none}
.team .tname{width:150px;font-size:13.5px;font-weight:600}
.team .tbar{flex:1;height:7px;background:#22222B;border-radius:99px;overflow:hidden}
.team .tfill{height:100%;border-radius:99px;transition:width .35s}
.team .tnum{width:56px;text-align:right;font-size:12.5px;color:var(--dim);font-variant-numeric:tabular-nums}
.team.locked{opacity:.5}

/* filters */
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:22px 0 4px;position:sticky;top:0;z-index:5;
  background:linear-gradient(180deg,var(--bg) 78%,transparent);padding:10px 0}
.chip{border:1px solid var(--line);background:var(--panel);color:var(--dim);border-radius:999px;padding:7px 14px;font-size:12.5px;cursor:pointer}
.chip.active{background:#2A1622;border-color:var(--pink);color:var(--pink-soft);font-weight:600}
.search{flex:1;min-width:160px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:8px 15px;font-size:12.5px}
.search::placeholder{color:#55555F}

/* card grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(142px,1fr));gap:13px}
.card{position:relative;border-radius:13px;aspect-ratio:3/4.1;padding:10px;color:#fff;cursor:pointer;
  background:linear-gradient(165deg,var(--pink-soft) 0%, var(--pink) 46%, var(--pink-deep) 100%);
  display:flex;flex-direction:column;transition:transform .12s, filter .25s, opacity .25s}
.card:hover{transform:translateY(-2px)}
body.viewing .card{cursor:default}
body.viewing .card:hover{transform:none}
.card:not(.got){filter:grayscale(1);opacity:.4}
.card .top2{display:flex;justify-content:space-between}
.card .rate{font-size:21px;font-weight:800;line-height:1}
.card .pos{font-size:10.5px;font-weight:700;opacity:.92}
.card .mono{margin:auto;width:44%;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.16);border:1.5px solid rgba(255,255,255,.4);
  display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700}
.card .name{font-size:12px;font-weight:700;text-align:center;line-height:1.2;margin-top:auto}
.card .meta{font-size:9.3px;text-align:center;opacity:.85;margin-top:3px}
.card .pin{position:absolute;bottom:8px;left:8px;font-size:12px;pointer-events:none;z-index:2}
.card.has-art{padding:0;background:transparent}
.card .art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.card.has-art .tick{z-index:2}
.tick{position:absolute;top:8px;right:8px;width:21px;height:21px;border-radius:50%;background:#fff;color:var(--pink);display:none;align-items:center;justify-content:center;font-size:12px;font-weight:900}
.card.got .tick{display:flex}
.empty{grid-column:1/-1;text-align:center;color:var(--dim);padding:34px 0;font-size:13.5px}

/* owners badge (hype stat) */
.card .owners{position:absolute;top:8px;left:8px;z-index:2;background:rgba(13,13,17,.72);color:var(--pink-soft);
  font-size:10px;font-weight:700;border-radius:999px;padding:2px 7px;font-variant-numeric:tabular-nums;pointer-events:none;backdrop-filter:blur(2px)}
.card.mini .owners{font-size:8px;padding:1px 5px;top:5px;left:5px}

/* guarded action menu */
.menu{position:absolute;inset:0;border-radius:inherit;background:rgba(13,13,17,.82);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:10px;z-index:3}
.menu button{width:100%;border:none;border-radius:9px;padding:10px 6px;font-size:11.5px;font-weight:700;cursor:pointer}
.menu .mpin{background:#fff;color:#17171D}
.menu .mrem{background:rgba(244,63,94,.92);color:#fff}
.menu .mstat{font-size:10px;font-weight:700;color:var(--pink-soft);text-align:center;line-height:1.3}
.menu .mtop{font-size:9px;color:var(--dim);text-align:center;line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.card.mini .menu{gap:4px}
.card.mini .menu .mstat{font-size:8px}
.card.mini .menu .mtop{display:none}

/* trending strip cards render full-colour (a showcase, not your own collection) */
.card.mini.trend{filter:none;opacity:1}

/* import modal */
.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;z-index:50;padding:18px}
.modal-back.open{display:flex}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:16px;max-width:560px;width:100%;padding:22px;max-height:86vh;overflow-y:auto}
.modal h3{font-size:16px;margin-bottom:8px}
.modal p{font-size:12.5px;color:var(--dim);line-height:1.5;margin-bottom:10px}
.modal code{background:#22222B;border-radius:5px;padding:1px 6px;font-size:11.5px}
.modal textarea{width:100%;min-height:130px;background:#101015;border:1px solid var(--line);border-radius:10px;color:var(--ink);font-size:12px;padding:10px;font-family:ui-monospace,Menlo,monospace}
.modal .mrow{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.modal .result{font-size:12.5px;margin-top:10px;line-height:1.5}
.modal .result .ok{color:var(--green)}
.modal .result .warn{color:var(--t0)}

/* modal shared fields */
.modal-rule{border:none;border-top:1px solid var(--line);margin:16px 0}
.modal .field{display:flex;gap:8px;margin-top:8px}
.modal .field input{flex:1;min-width:0;background:#101015;border:1px solid var(--line);border-radius:9px;color:var(--ink);font-size:12.5px;padding:9px 12px}
.modal .field input[readonly]{color:var(--dim);font-family:ui-monospace,Menlo,monospace;font-size:11px}
.modal .field .share,.modal .field .ghostbtn{flex:none;white-space:nowrap}
.modal .dim{color:#55555F;font-size:12px}
.modal code{word-break:break-all}
.ghostbtn.small,.share.small{padding:6px 11px;font-size:11.5px}

/* your-groups list */
.mygroups .glist{display:flex;flex-direction:column;gap:8px}
.grow{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#101015;border:1px solid var(--line);border-radius:11px;padding:10px 12px}
.grow .ginfo{font-size:13px}
.grow .gmeta{color:var(--dim);font-size:11px;margin-top:2px}
.grow .gbtns{display:flex;gap:6px;flex:none}
.ownerpill{font-size:9.5px;font-weight:700;color:var(--t0);border:1px solid var(--t0);border-radius:999px;padding:1px 6px;vertical-align:middle}

/* competition panel */
.competition{margin:16px 0 4px;background:var(--panel);border:1px solid var(--pink-deep);border-radius:16px;padding:16px 18px;
  box-shadow:0 0 0 1px rgba(236,72,153,.12), 0 10px 30px rgba(162,28,175,.12)}
.comp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.comp-title{font-size:16px;font-weight:800}
.comp-sub{font-size:11.5px;color:var(--dim);margin-top:2px}
.comp-actions{display:flex;gap:7px}
.lb{display:flex;flex-direction:column;gap:6px}
.lbrow{display:flex;align-items:center;gap:10px}
.lbrank{width:20px;text-align:center;font-size:12px;font-weight:800;color:var(--dim);flex:none}
.lbrank.top{color:var(--t0)}
.lbname{width:120px;font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:none}
.lbbar{flex:1;height:7px;background:#22222B;border-radius:99px;overflow:hidden;min-width:40px}
.lbbar span{display:block;height:100%;background:linear-gradient(90deg,var(--pink-deep),var(--pink));border-radius:99px;transition:width .35s}
.lbnum{width:78px;text-align:right;font-size:11.5px;color:var(--dim);font-variant-numeric:tabular-nums;flex:none}
.vpill{color:var(--green);font-weight:700}
.comp-feed{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:11px;color:var(--dim);line-height:1.7}
.comp-feed .feed-label{color:var(--pink-soft);font-weight:700}
.comp-feed .feeditem{margin-right:12px;white-space:nowrap}
.comp-feed .feeditem b{color:var(--ink);font-weight:600}

.foot{margin-top:26px;text-align:center;color:#4A4A55;font-size:11px;line-height:1.6}
.foot.disclaimer{margin-top:10px;color:#3A3A44;max-width:620px;margin-left:auto;margin-right:auto}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#fff;color:#17171D;font-size:12.5px;font-weight:600;border-radius:999px;padding:9px 18px;opacity:0;pointer-events:none;transition:opacity .25s;z-index:60}
.toast.show{opacity:1}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
