
/* Layout: a judge's scorecard on a stage — lineup pool beside the placing column; standings posted like a results sheet */
:root{
  --paper:#f3efe6; --card:#fbf8f2; --ink:#1d2333; --muted:#6a6758; --line:#d9d2c2;
  --bronze:#a8641e; --bronze-ink:#fff8ee; --gold:#c9962b;
  --good:#2f7d4f; --near:#b07a12; --miss:#b23b2e; --fan:#3d5a8a;
  --slot:#efe8da; --shadow:0 1px 0 rgba(29,35,51,.06),0 6px 18px -10px rgba(29,35,51,.25);
  --f-display:"Big Shoulders Display","Oswald","Arial Narrow",Impact,sans-serif;
  --f-body:"Figtree",system-ui,-apple-system,"Segoe UI","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#17141a; --card:#211d24; --ink:#efe9de; --muted:#a69d8f; --line:#3a3340;
  --bronze:#d58a3c; --bronze-ink:#1b1206; --gold:#e1b45a;
  --good:#5cbf86; --near:#e0a93c; --miss:#e46c5d; --fan:#86a6dc; --slot:#2a2530;
  --shadow:0 1px 0 rgba(0,0,0,.3),0 10px 24px -14px rgba(0,0,0,.7); color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#17141a; --card:#211d24; --ink:#efe9de; --muted:#a69d8f; --line:#3a3340;
  --bronze:#d58a3c; --bronze-ink:#1b1206; --gold:#e1b45a;
  --good:#5cbf86; --near:#e0a93c; --miss:#e46c5d; --fan:#86a6dc; --slot:#2a2530;
  --shadow:0 1px 0 rgba(0,0,0,.3),0 10px 24px -14px rgba(0,0,0,.7); color-scheme:dark}

*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.5}
.wrap{max-width:1040px;margin:0 auto;padding-block:20px 56px;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--bronze);outline-offset:2px}
a{color:var(--bronze)}
input,select,textarea{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:9px 10px;min-width:0}

header.top{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-bottom:14px;border-bottom:3px solid var(--ink)}
.brand h1{font-family:var(--f-display);font-weight:900;font-size:clamp(44px,8vw,72px);line-height:.85;letter-spacing:.01em;margin:0;text-transform:uppercase}
.brand h1 span{color:var(--bronze)}
.brand p{margin:6px 0 0;color:var(--muted);max-width:48ch}
.topright{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.lang{display:flex;gap:2px}
.langsel{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.langsel select{appearance:none;-webkit-appearance:none;border:1px solid var(--line);background:transparent;color:var(--ink);font:12px var(--f-mono);padding:5px 10px;border-radius:999px;cursor:pointer;max-width:170px}
[dir="rtl"] .qhead,[dir="rtl"] .sect{text-align:right}
.lang button{border:0;background:none;font-family:var(--f-mono);font-size:12px;padding:4px 7px;border-radius:3px;color:var(--muted)}
.lang button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
nav.tabs{display:flex;gap:4px;background:var(--slot);padding:4px;border-radius:999px;flex-wrap:wrap}
nav.tabs button{border:0;background:transparent;padding:8px 14px;border-radius:999px;font-weight:600;font-size:14px}
nav.tabs button[aria-selected="true"]{background:var(--ink);color:var(--paper)}
.me{font-family:var(--f-mono);font-size:12px;color:var(--muted);text-align:right}
.me b{color:var(--ink)}

.eyebrow{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
h2{font-family:var(--f-display);font-weight:800;font-size:clamp(28px,5vw,40px);line-height:1;margin:6px 0 0;text-transform:uppercase;text-wrap:balance}
.sect{margin-top:22px}
.lede{color:var(--muted);max-width:62ch;margin:8px 0 0}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:18px}
.contest{text-align:left;border:1px solid var(--line);background:var(--card);border-radius:6px;padding:16px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow);transition:transform .15s}
button.contest:hover{transform:translateY(-2px)}
.contest .name{font-family:var(--f-display);font-weight:800;font-size:25px;line-height:1;text-transform:uppercase}
.contest .meta{font-size:13px;color:var(--muted)}
.contest .foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:10px;border-top:1px dashed var(--line);font-size:13px}
.pill{font-family:var(--f-mono);font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;letter-spacing:.04em;white-space:nowrap}
.pill.open{background:var(--bronze);color:var(--bronze-ink)}
.pill.done{background:var(--slot);color:var(--ink)}
.pill.lock{background:var(--fan);color:var(--paper)}
.pill.div{background:transparent;border:1px solid var(--line);color:var(--muted)}
.filters{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}
.filters button{border:1px solid var(--line);background:transparent;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* daily */
.daily{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px;margin-top:18px;align-items:start}
@media (max-width:760px){.daily{grid-template-columns:1fr}}
.dailycard{background:var(--ink);color:var(--paper);border-radius:6px;padding:22px;display:flex;flex-direction:column;gap:12px}
.dailycard .num{font-family:var(--f-display);font-weight:900;font-size:64px;line-height:.8;color:var(--gold)}
.dailycard p{margin:0;opacity:.8}
.dailycard .btn.primary{align-self:flex-start}
.stats{display:flex;gap:18px;flex-wrap:wrap}
.stat b{display:block;font-family:var(--f-display);font-size:34px;line-height:1}
.stat span{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.timer{font-family:var(--f-display);font-weight:900;font-size:44px;line-height:1;color:var(--bronze);font-variant-numeric:tabular-nums}
.timer.low{color:var(--miss)}
.sharebox{font-family:var(--f-mono);font-size:14px;white-space:pre;background:var(--slot);border-radius:4px;padding:12px;overflow-x:auto;margin:0}

/* judging board */
.board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:20px;margin-top:18px;align-items:start}
@media (max-width:760px){.board{grid-template-columns:1fr}}
.panel{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:16px;box-shadow:var(--shadow)}
.panel h3{margin:0 0 4px;font-family:var(--f-display);font-size:20px;text-transform:uppercase}
.panel .hint{margin:0 0 12px;font-size:13px;color:var(--muted)}
.pool{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line);background:var(--paper);border-radius:4px;padding:8px 10px;text-align:left;display:flex;flex-direction:column;min-width:0}
.chip:hover{border-color:var(--bronze)}
.chip .n{font-weight:600;font-size:14px}
.chip .c{font-family:var(--f-mono);font-size:10.5px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}
.empty-pool{color:var(--muted);font-size:13px;font-style:italic}
.slots{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.slot{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:10px;background:var(--slot);border-radius:4px;min-height:48px;padding-right:6px}
.slot .rk{font-family:var(--f-display);font-weight:900;font-size:26px;text-align:center;color:var(--muted)}
.slot.top3 .rk{color:var(--gold)}
.slot .who{min-width:0}
.slot .who b{display:block;font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slot .who small{font-family:var(--f-mono);font-size:10.5px;color:var(--muted);text-transform:uppercase}
.slot .who em{color:var(--muted);font-size:13px}
.slot.filled{background:var(--card);border:1px solid var(--line)}
.slot .ctl{display:flex;gap:2px}
.icon{border:0;background:transparent;width:32px;height:32px;border-radius:4px;color:var(--muted);font-size:15px}
.icon:hover{background:var(--slot);color:var(--ink)}
.icon:disabled{opacity:.3}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}
.btn{border:0;background:var(--ink);color:var(--paper);padding:12px 20px;border-radius:4px;font-weight:700;letter-spacing:.02em}
.btn.primary{background:var(--bronze);color:var(--bronze-ink)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.sm{padding:8px 12px;font-size:13px}
.btn:disabled{opacity:.4;cursor:not-allowed}
.links{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.links a{font-size:13px;font-weight:600;text-decoration:none;border:1px solid var(--line);padding:6px 10px;border-radius:999px}
.links a:hover{border-color:var(--bronze)}
.back{border:0;background:none;padding:0;color:var(--muted);font-size:14px;margin-top:18px}
.nick{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:14px;padding:12px;border:1px dashed var(--bronze);border-radius:4px}
.nick label{font-size:13px;font-weight:600}
.nick input{flex:1 1 160px}
.note{font-size:13px;color:var(--muted)}
.err{color:var(--miss);font-size:13px}
.ok{color:var(--good);font-size:13px}

/* results */
.scorehead{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin-top:18px}
.big{font-family:var(--f-display);font-weight:900;font-size:clamp(64px,12vw,104px);line-height:.85;color:var(--bronze)}
.big small{font-size:.35em;color:var(--muted)}
.bonus{display:flex;gap:8px;flex-wrap:wrap}
.bonus span{font-family:var(--f-mono);font-size:12px;padding:4px 9px;border-radius:999px;background:var(--slot)}
.bonus span.on{background:var(--good);color:var(--paper)}
.tablewrap{overflow-x:auto;margin-top:14px}
table.res{width:100%;border-collapse:collapse;min-width:520px}
table.res th{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px;border-bottom:2px solid var(--ink)}
table.res td{padding:10px 8px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
table.res td.num{font-family:var(--f-mono);font-weight:700;text-align:center}
table.res td.fan{font-family:var(--f-mono);font-weight:700;text-align:center;color:var(--fan)}
.tag{font-family:var(--f-mono);font-size:11px;font-weight:700;padding:2px 7px;border-radius:3px;color:var(--paper)}
.tag.d0{background:var(--good)}.tag.d1{background:var(--near)}.tag.d2{background:var(--near);opacity:.75}.tag.dx{background:var(--miss)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:22px}
.vs{width:100%;border-collapse:collapse}
.vs td{padding:8px 4px;border-bottom:1px solid var(--line)}
.vs td:last-child{text-align:right;font-family:var(--f-mono);font-weight:700}
.vs tr.you td{font-weight:700}
.fanlist{list-style:none;margin:0;padding:0;counter-reset:f}
.fanlist li{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);counter-increment:f}
.fanlist li::before{content:counter(f);font-family:var(--f-display);font-weight:900;width:28px;color:var(--fan)}
.fanlist li span:first-of-type{flex:1;min-width:0}
.fanlist li .off{font-family:var(--f-mono);font-size:12px;color:var(--muted)}

/* leaderboard */
.lbbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}
.lb{margin-top:12px}
.lbrow{display:grid;grid-template-columns:52px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 8px;border-bottom:1px solid var(--line)}
.lbrow.head{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--ink);padding-block:6px}
.lbrow .pos{font-family:var(--f-display);font-weight:900;font-size:28px;text-align:center}
.lbrow.first .pos{color:var(--gold)}
.lbrow .nm{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lbrow .pl{font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.lbrow .tt{font-family:var(--f-mono);font-weight:700;font-size:18px;min-width:56px;text-align:right}
.lbrow.mine{background:var(--slot)}
.lbempty{padding:28px 8px;color:var(--muted)}
.leaguebox{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:22px}
.leaguebox .panel{display:flex;flex-direction:column;gap:8px}
.leaguebox .row{display:flex;gap:8px;flex-wrap:wrap}
.leaguebox .row input{flex:1 1 120px}
.code{font-family:var(--f-mono);font-weight:700;letter-spacing:.12em}
@media (max-width:480px){.lbrow{grid-template-columns:40px minmax(0,1fr) auto}.lbrow .pl{display:none}}

/* admin */
.admin{margin-top:28px;border-top:1px solid var(--line);padding-top:18px}
.admin form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:10px}
.admin label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--muted)}
.admin label.wide{grid-column:1/-1}
.admin textarea{min-height:110px;font-family:var(--f-mono);font-size:13px}
.adminlist{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.adminlist .it{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;background:var(--slot);border-radius:4px;font-size:14px}
footer.disc{margin-top:40px;padding-top:14px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}

/* database */
.dbsearch{margin-top:14px}.dbsearch input{width:100%;font-size:16px;padding:12px 14px}
.dbh{font-family:var(--f-display);font-size:22px;text-transform:uppercase;margin:24px 0 8px}.dbh span{font-family:var(--f-mono);font-size:13px;color:var(--muted)}
.dbstats{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.dbstats>div{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:10px 14px;min-width:96px}
.dbstats b{display:block;font-family:var(--f-display);font-size:28px;line-height:1}.dbstats span{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.lnk{border:0;background:none;padding:0;color:var(--ink);font-weight:600;text-align:left;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.lnk:hover{color:var(--bronze);text-decoration-color:var(--bronze)}.lnk.sub{font-weight:500;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chipbtn{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 12px;font-size:13px}.chipbtn:hover{border-color:var(--bronze)}.chipbtn small{color:var(--muted)}
table.dbt{min-width:0}.cell2{font-size:12px;color:var(--muted);margin-top:2px}.cell2 .lnk{font-size:12px}table.dbt th.n{text-align:center}table.dbt td.dt{font-family:var(--f-mono);font-size:12px;color:var(--muted);white-space:nowrap}
.pl{display:inline-block;min-width:44px;font-family:var(--f-mono);font-weight:700;font-size:12px;padding:2px 8px;border-radius:3px;background:var(--slot)}
.pl1{background:var(--gold);color:#fff}.pl2{background:#9aa3ad;color:#fff}.pl3{background:#a86b3c;color:#fff}
.qres li.dn{box-shadow:inset 4px 0 0 var(--line)}
/* quick test */
.slotplan{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.slotb{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border:1px solid var(--line,#d8d2c4);border-radius:999px}.slotb b{font-weight:700}.slotb.sICON{border-color:#b98a2e;color:#8a6417}.slotb.sDEEP{border-style:dashed}.qhead .slotb{margin-right:8px;padding:2px 8px}
.fanline{margin:18px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:13px}
.catbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:16px}
.qhint{position:relative;margin-right:auto;padding-left:12px;font-size:12px;color:var(--muted)}
.qlist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
@media (min-width:760px){.qlist{grid-template-columns:repeat(3,minmax(0,1fr))}}
.qpick{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;min-height:56px;padding:8px 10px 8px 6px;border:1px solid var(--line);border-radius:6px;background:var(--card);box-shadow:var(--shadow);text-align:left}
.qpick:hover{border-color:var(--bronze)}
.qpick .qno{width:30px;height:30px;border-radius:50%;border:2px dashed var(--line);display:grid;place-items:center;font-family:var(--f-display);font-weight:900;font-size:18px}
.qpick.on{background:var(--slot);box-shadow:none}
.qpick.on .qno{border:0;background:var(--ink);color:var(--paper)}
.qpick .qtx{min-width:0}.qpick b{display:block;font-size:14px;line-height:1.2;overflow-wrap:anywhere}.qpick small{font-family:var(--f-mono);font-size:10.5px;color:var(--muted);text-transform:uppercase}
.qres{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}
.qres li{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 10px 7px 0;background:var(--card);border:1px solid var(--line);border-radius:4px;box-shadow:inset 4px 0 0 var(--miss)}
.qres li.d0{box-shadow:inset 4px 0 0 var(--good)}.qres li.d1{box-shadow:inset 4px 0 0 var(--near)}.qres li.d2{box-shadow:inset 4px 0 0 var(--near)}
.qres .rk{font-family:var(--f-display);font-weight:900;font-size:22px;text-align:center;color:var(--gold)}
.qres .nm{font-weight:600;font-size:14px;min-width:0;overflow-wrap:anywhere}
.qres .yp{font-family:var(--f-mono);font-size:11px;color:var(--muted);white-space:nowrap}
body.running .qname{font-size:clamp(26px,6vw,44px)}

body.running .brand p, body.running footer.disc, body.running #me, body.running .lang, body.running .inst{display:none}
.signin{display:flex;justify-content:flex-end}.signinmsg{max-width:260px;text-align:right;margin-top:6px}
.prose h3{margin:18px 0 4px;font-size:15px}.prose p{margin:0;line-height:1.6}.btn.danger{background:#b3261e;color:#fff;border-color:#b3261e}
.inst{display:flex;justify-content:flex-end}.insthint{font-size:11px;color:var(--muted);max-width:260px;text-align:right}
body.running .brand h1{font-size:34px}
body.running header.top{padding-bottom:8px}

.tier{display:inline-block;font-family:var(--f-display);font-weight:800;font-size:15px;letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;border-radius:3px;background:var(--tc);color:#fff}
.rlist{list-style:none;margin:0;padding:0}
.rlist li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.rlist .rn{min-width:0}.rlist .rn b{display:block;font-size:14px}.rlist .rn small{display:block;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rlist .rp{font-family:var(--f-mono);font-weight:700}
.qhead{margin-top:16px}
.dots{display:flex;gap:6px;margin-bottom:10px}
.dot{width:26px;height:26px;border-radius:4px;background:var(--slot);display:grid;place-items:center;font-size:14px}
.dot.now{outline:2px solid var(--bronze)}
.qname{font-size:clamp(30px,7vw,52px)}
.qmeta{color:var(--muted);font-size:14px;margin-top:4px}
.tbarwrap{position:relative;height:44px;margin-top:14px;background:var(--slot);border-radius:4px;overflow:hidden;display:flex;align-items:center;justify-content:flex-end;padding-right:12px}
.tbar{position:absolute;inset:0;background:var(--bronze);opacity:.25;transform-origin:left center}
.tbarwrap .timer{position:relative;font-size:30px}
.qslots{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
.qslot{width:100%;display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:8px;min-height:52px;padding:6px 10px 6px 0;border:1px dashed var(--line);background:transparent;border-radius:4px;text-align:left;font-weight:600}
.qslot .rk{font-family:var(--f-display);font-weight:900;font-size:26px;text-align:center;color:var(--muted)}
.qslot.on{border-style:solid;background:var(--card)}
.qslot.on .rk{color:var(--gold)}
.qslot small{font-weight:400;color:var(--muted)}
.qslot.res.d0{border-color:var(--good);box-shadow:inset 4px 0 0 var(--good)}
.qslot.res.d1{border-color:var(--near);box-shadow:inset 4px 0 0 var(--near)}
.qslot.res.dx{border-color:var(--miss);box-shadow:inset 4px 0 0 var(--miss)}
.qpool{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:14px 0 8px}
.qchip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px;border:1px solid var(--line);border-radius:6px;background:var(--card);box-shadow:var(--shadow);text-align:left;min-height:64px}
.qchip:hover{border-color:var(--bronze)}
.qchip b{font-size:16px}.qchip small{font-family:var(--f-mono);font-size:11px;color:var(--muted);text-transform:uppercase}
.reveal{margin-top:14px}
.rpts{font-family:var(--f-display);font-weight:900;font-size:56px;line-height:1;color:var(--bronze)}
.rpts small{font-size:.35em;color:var(--good)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---- profile & cosmetics ---- */
.av{--fr:var(--line);width:46px;height:46px;border-radius:50%;display:inline-grid;place-items:center;flex:none;font-family:var(--f-display);font-weight:900;font-size:20px;background:var(--slot);color:var(--ink);box-shadow:0 0 0 3px var(--fr);vertical-align:middle}
.av.sm{width:22px;height:22px;font-size:11px;box-shadow:0 0 0 2px var(--fr);margin-right:6px}
.av.lg{width:72px;height:72px;font-size:32px;box-shadow:0 0 0 4px var(--fr)}
.f-bronze{--fr:#9c6a43}.f-silver{--fr:#8a94a3}.f-gold{--fr:#c8962e}.f-platinum{--fr:#3aa3a0}.f-emerald{--fr:#1e9e6a}.f-diamond{--fr:#3b6fd8}.f-master{--fr:#8e44ad}.f-grandmaster{--fr:#c0392b}.f-challenger{--fr:#d9a520}
.av.f-challenger{box-shadow:0 0 0 3px #d9a520,0 0 0 5px #3b6fd8}
.av.f-olympia{box-shadow:0 0 0 3px #e9c46a,0 0 14px 3px rgba(233,196,106,.75);animation:glow 2.4s ease-in-out infinite}
.av.f-stagelight{box-shadow:0 0 0 3px #fff,0 0 18px 6px rgba(255,255,240,.8)}
.av.f-neon{box-shadow:0 0 0 2px #ff2bd6,0 0 0 4px #20e3ff,0 0 14px 4px rgba(32,227,255,.6);animation:glow 1.6s ease-in-out infinite}
.av.f-obsidian{background:#111;color:#e9c46a;box-shadow:0 0 0 3px #111,0 0 0 5px #e9c46a}
.av.f-chrome{box-shadow:0 0 0 2px #f4f6f8,0 0 0 4px #9aa3ad,0 0 0 6px #e3e7eb}
.av.sm.f-challenger,.av.sm.f-obsidian,.av.sm.f-chrome,.av.sm.f-neon{box-shadow:0 0 0 2px var(--fr,#d9a520)}
.av.sm.f-neon{--fr:#20e3ff}.av.sm.f-chrome{--fr:#9aa3ad}.av.sm.f-obsidian{--fr:#e9c46a}
@keyframes glow{50%{filter:brightness(1.25)}}
.c-crimson{color:#c0392b}.c-ocean{color:#2a6fb0}.c-lime{color:#4f8f12}.c-violet{color:#7d4cc2}
.c-gold,.c-aurora,.c-fire,.c-ice{background-clip:text;-webkit-background-clip:text;color:transparent;background-size:200% 100%}
.c-gold{background-image:linear-gradient(90deg,#b8862b,#f2d27a,#b8862b)}
.c-aurora{background-image:linear-gradient(90deg,#20c997,#4dabf7,#b197fc,#20c997);animation:slide 4s linear infinite}
.c-fire{background-image:linear-gradient(90deg,#e8590c,#fab005,#e03131,#e8590c);animation:slide 3s linear infinite}
.c-ice{background-image:linear-gradient(90deg,#74c0fc,#e7f5ff,#4dabf7)}
@keyframes slide{to{background-position:200% 0}}
@media (prefers-reduced-motion:reduce){.av,.c-aurora,.c-fire{animation:none!important}}
.ptitle{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:1px}
.passb{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.08em;padding:1px 5px;border-radius:3px;background:linear-gradient(90deg,#b8862b,#e9c46a);color:#1b1206;margin-left:6px;vertical-align:2px}
.pnm{display:inline-flex;align-items:center;text-align:left;font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.pnm .nmtx{display:inline-block}
.pcard{position:relative;border-radius:12px;padding:22px 20px;display:flex;gap:18px;align-items:center;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;margin-top:6px}
.pcard .who{min-width:0}.pcard .nmbig{font-family:var(--f-display);font-weight:900;font-size:30px;line-height:1.05;word-break:break-word}
.pcard .meta{font-size:13px;color:var(--muted);margin-top:4px}
.pcard.dark{color:#fff;border-color:transparent}.pcard.dark .meta,.pcard.dark .ptitle{color:rgba(255,255,255,.75)}
.b-spot{background:radial-gradient(circle at 85% 20%,rgba(201,150,43,.28),transparent 55%),var(--card)}
.b-lines{background:repeating-linear-gradient(135deg,transparent 0 14px,rgba(168,100,30,.08) 14px 16px),var(--card)}
.b-stage{background:radial-gradient(ellipse at 30% -10%,rgba(255,250,220,.55),transparent 45%),radial-gradient(ellipse at 75% -10%,rgba(255,250,220,.4),transparent 45%),linear-gradient(#1c1420,#0b0a10)}
.b-trophy{background:radial-gradient(circle at 80% 50%,rgba(255,224,130,.55),transparent 40%),linear-gradient(135deg,#5a3b0c,#b8862b 55%,#3d2706)}
.b-night{background:radial-gradient(1px 1px at 20% 30%,#fff,transparent),radial-gradient(1px 1px at 60% 70%,#fff,transparent),radial-gradient(1.5px 1.5px at 80% 20%,#fff,transparent),radial-gradient(1px 1px at 40% 80%,#fff,transparent),linear-gradient(#0d1b3d,#1d2b5c)}
.b-sunset{background:linear-gradient(120deg,#ff7a59,#ff3d77 45%,#5b2a86)}
.b-marble{background:radial-gradient(ellipse at 20% 30%,rgba(0,0,0,.06),transparent 40%),repeating-linear-gradient(115deg,#f6f3ee 0 30px,#ebe6dd 30px 34px,#f6f3ee 34px 70px);color:#1d2333}
.b-neonbars{background:repeating-linear-gradient(90deg,rgba(255,43,214,.25) 0 6px,transparent 6px 40px),repeating-linear-gradient(90deg,transparent 0 20px,rgba(32,227,255,.25) 20px 26px,transparent 26px 40px),#0b0a14}
.pstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:14px 0}
.pstats .st{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.pstats .st b{display:block;font-family:var(--f-display);font-size:24px}
.pstats .st span{font-size:12px;color:var(--muted)}
.cosgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;margin:8px 0 16px}
.cos{position:relative;border:1px solid var(--line);border-radius:8px;background:var(--card);padding:10px 8px;text-align:center;cursor:pointer;font:inherit;color:inherit;display:flex;flex-direction:column;align-items:center;gap:6px;min-height:84px}
.cos[aria-pressed="true"]{outline:2px solid var(--bronze);outline-offset:1px}
.cos.locked{opacity:.55;cursor:not-allowed}
.cos .req{font-size:10px;color:var(--muted);line-height:1.2}
.cos .lbl{font-size:12px;font-weight:700}
.cos .sw{width:100%;height:28px;border-radius:5px;border:1px solid var(--line)}
.passbox{border:1px solid #c9962b;border-radius:12px;padding:16px;background:linear-gradient(135deg,rgba(201,150,43,.12),transparent 60%),var(--card);margin:18px 0}
.passbox h3{margin:0 0 6px;font-family:var(--f-display);letter-spacing:.06em}
.profrow{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 16px}.profrow label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);flex:1 1 180px}
.profrow input,.profrow select{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink)}

/* pre-built hub pages shown in-app */
.seo h1{font-family:var(--f-display);font-size:clamp(30px,6vw,44px);line-height:1.05;margin:6px 0 10px;text-transform:uppercase}
.seo h1 small{display:block;font-size:.45em;color:var(--muted);letter-spacing:.04em}
.seo table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:14px}
.seo th,.seo td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left}.seo th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.seo a,.hublinks a{color:var(--bronze)}.seo .crumbs{font-size:13px;color:var(--muted)}.seo .cols{columns:3 200px;padding-left:18px}.seo .cols li{break-inside:avoid}.seo .cols span{color:var(--muted);font-size:12px}
.seo .az a{display:inline-block;padding:4px 8px;font-weight:700}.seo .stats{display:none}.seo .cta{display:none}
.hublinks{margin:22px 0 4px;font-weight:600}
.athcta{margin:22px 0}.athcta button{display:inline-block;background:var(--ink);color:var(--paper);padding:12px 18px;border-radius:8px;border:0;font:inherit;font-weight:700;cursor:pointer}
.av{position:relative;overflow:hidden}.av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}.av img+i{visibility:hidden}.av i{font-style:normal}
.photorow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0}.photorow label.btn{cursor:pointer}
/* ===== GYM PASS effects (animated) ===== */
.av{overflow:visible!important;isolation:isolate}
.av::before,.av::after{content:none}
/* animated rings live behind the avatar */
.av.f-inferno,.av.f-voltage,.av.f-prism,.av.f-plasma,.av.f-champion,.av.f-glitch{box-shadow:none}
.av.f-inferno::before,.av.f-voltage::before,.av.f-prism::before,.av.f-plasma::before,.av.f-champion::before{content:"";position:absolute;inset:-5px;border-radius:50%;z-index:-1}
.av.f-inferno::before,.av.f-voltage::before,.av.f-prism::before,.av.f-plasma::before,.av.f-champion::before{-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 5px));mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 5px))}
.av.sm.f-inferno::before,.av.sm.f-voltage::before,.av.sm.f-prism::before,.av.sm.f-plasma::before,.av.sm.f-champion::before{-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px))}
.av.lg.f-inferno::before,.av.lg.f-voltage::before,.av.lg.f-prism::before,.av.lg.f-plasma::before,.av.lg.f-champion::before{-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 7px),#000 calc(100% - 7px));mask:radial-gradient(farthest-side,transparent calc(100% - 7px),#000 calc(100% - 7px))}
.av.f-inferno::after{-webkit-mask:radial-gradient(closest-side,transparent 62%,#000 72%);mask:radial-gradient(closest-side,transparent 62%,#000 72%)}
.av.sm.f-inferno::before,.av.sm.f-voltage::before,.av.sm.f-prism::before,.av.sm.f-plasma::before,.av.sm.f-champion::before{inset:-3px}
.av.lg.f-inferno::before,.av.lg.f-voltage::before,.av.lg.f-prism::before,.av.lg.f-plasma::before,.av.lg.f-champion::before{inset:-7px}
.av.f-inferno::before{background:conic-gradient(#ff2d00,#ffb300,#ff5e00,#ffd84d,#ff2d00);animation:spin 1.6s linear infinite,flick .18s steps(2) infinite;filter:drop-shadow(0 0 6px #ff6a00) drop-shadow(0 -4px 8px rgba(255,120,0,.8))}
.av.f-inferno::after{content:"";position:absolute;inset:-14px -6px -2px;border-radius:50% 50% 45% 45%;z-index:-2;background:radial-gradient(ellipse at 50% 100%,rgba(255,90,0,.75),transparent 60%),radial-gradient(ellipse at 30% 20%,rgba(255,200,0,.5),transparent 40%),radial-gradient(ellipse at 70% 15%,rgba(255,60,0,.5),transparent 40%);filter:blur(3px);animation:flame 0.9s ease-in-out infinite alternate}
.av.f-voltage::before{background:conic-gradient(#00e5ff,#7df9ff,#ffffff,#2f80ff,#00e5ff);animation:spin 2.4s linear infinite;filter:drop-shadow(0 0 5px #4dd9ff) drop-shadow(0 0 10px #2f80ff)}
.av.f-voltage::after{content:"";position:absolute;inset:-9px;border-radius:50%;z-index:-1;border:2px dashed rgba(180,240,255,.9);animation:zap .35s steps(3) infinite;filter:drop-shadow(0 0 4px #7df9ff)}
.av.f-prism::before{background:conic-gradient(#ff004c,#ff9a00,#ffe600,#00e676,#00b0ff,#7c4dff,#ff004c);animation:spin 3s linear infinite;filter:drop-shadow(0 0 6px rgba(255,255,255,.6))}
.av.f-plasma::before{background:conic-gradient(#ff3df2,#7b2cff,#00e5ff,#ff3df2);animation:pulse 1.2s ease-in-out infinite;filter:blur(1px) drop-shadow(0 0 10px #c24bff)}
.av.f-champion::before{background:conic-gradient(from 0deg,#8a5a12,#ffe08a,#c9962b,#fff6d0,#8a5a12);animation:spin 4s linear infinite;filter:drop-shadow(0 0 8px rgba(255,214,102,.9))}
.av.f-champion::after{content:"✦";position:absolute;top:-10px;right:-6px;font-size:14px;color:#fff3b0;text-shadow:0 0 6px #ffd54a;animation:twinkle 1.4s ease-in-out infinite}
.av.sm.f-champion::after{font-size:9px;top:-7px;right:-5px}
.av.f-glitch{animation:gl-ring .5s steps(1) infinite}
@keyframes gl-ring{0%{box-shadow:0 0 0 3px #00e5ff,3px 0 0 3px #ff004c}25%{box-shadow:0 0 0 3px #ff004c,-3px 1px 0 3px #00e5ff}50%{box-shadow:0 0 0 3px #fff,2px -2px 0 3px #ff004c}75%{box-shadow:0 0 0 3px #00e5ff,-2px 2px 0 3px #fff}}
.av.f-glitch img,.av.f-glitch i{animation:gl-shift 1.2s steps(1) infinite}
@keyframes gl-shift{0%,88%,100%{transform:none;filter:none}90%{transform:translate(2px,-1px);filter:hue-rotate(90deg) saturate(3)}93%{transform:translate(-2px,1px);filter:hue-rotate(-90deg)}96%{transform:translate(1px,0) skewX(8deg)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes flick{50%{opacity:.85}}
@keyframes flame{0%{transform:scaleY(1) translateY(0);opacity:.85}100%{transform:scaleY(1.18) translateY(-3px);opacity:1}}
@keyframes zap{0%{transform:rotate(0) scale(1);opacity:1}33%{transform:rotate(40deg) scale(1.05);opacity:.4}66%{transform:rotate(95deg) scale(.97);opacity:1}100%{transform:rotate(130deg);opacity:.6}}
@keyframes pulse{50%{transform:scale(1.12);filter:blur(2px) drop-shadow(0 0 16px #ff3df2)}}
@keyframes twinkle{50%{transform:scale(.5) rotate(45deg);opacity:.4}}

/* nickname effects */
.c-inferno{background:linear-gradient(0deg,#ff2d00,#ff8a00 45%,#ffe066);background-clip:text;-webkit-background-clip:text;color:transparent;background-size:100% 200%;animation:fire-up 1s linear infinite,fire-glow .15s steps(2) infinite}
@keyframes fire-up{to{background-position:0 -200%}}
@keyframes fire-glow{0%{filter:drop-shadow(0 0 3px #ff5a00) drop-shadow(0 -2px 6px rgba(255,90,0,.7))}100%{filter:drop-shadow(0 0 5px #ff9a00) drop-shadow(0 -4px 10px rgba(255,40,0,.8))}}
.c-glitch{position:relative;color:var(--ink);text-shadow:2px 0 #ff004c,-2px 0 #00e5ff;animation:glx 1.1s steps(1) infinite}
@keyframes glx{0%,100%{text-shadow:2px 0 #ff004c,-2px 0 #00e5ff;transform:none}20%{text-shadow:-3px 1px #ff004c,3px -1px #00e5ff}21%{transform:skewX(-12deg)}22%{transform:none;text-shadow:1px 0 #ff004c,-1px 0 #00e5ff}60%{text-shadow:3px -1px #00e5ff,-3px 1px #ff004c}61%{transform:translateX(2px)}62%{transform:none}85%{clip-path:inset(40% 0 30% 0);transform:translateX(-3px)}86%{clip-path:none;transform:none}}
.c-neon{color:#fff;text-shadow:0 0 4px #fff,0 0 10px #ff2bd6,0 0 18px #ff2bd6,0 0 30px #ff2bd6;animation:neonf 3s linear infinite}
@keyframes neonf{0%,18%,22%,25%,53%,57%,100%{opacity:1}20%,24%,55%{opacity:.35;text-shadow:none}}
.c-voltage{color:#e8f8ff;text-shadow:0 0 6px #4dd9ff,0 0 14px #2f80ff;animation:volt .25s steps(2) infinite}
@keyframes volt{0%{text-shadow:0 0 6px #4dd9ff,0 0 14px #2f80ff,1px 0 #fff}100%{text-shadow:0 0 10px #7df9ff,0 0 22px #2f80ff,-1px 1px #b3ecff}}
.c-rainbow{background:linear-gradient(90deg,#ff004c,#ff9a00,#ffe600,#00e676,#00b0ff,#7c4dff,#ff004c);background-size:300% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:slide 2.5s linear infinite}
.c-goldshine{background:linear-gradient(100deg,#9a6b17 0%,#e9c46a 30%,#fffbe6 45%,#e9c46a 60%,#9a6b17 100%);background-size:250% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:shine 2.2s linear infinite;filter:drop-shadow(0 0 4px rgba(233,196,106,.5))}
@keyframes shine{0%{background-position:150% 0}100%{background-position:-100% 0}}

/* animated banners */
.pcard>*{position:relative;z-index:1}
.b-inferno{background:linear-gradient(#1a0500,#3d0a00 60%,#7a1500);color:#fff;border-color:transparent}
.b-inferno::before{content:"";position:absolute;left:-10%;right:-10%;bottom:-30%;height:110%;z-index:0;background:radial-gradient(ellipse 18% 55% at 12% 100%,#ffb300,transparent 70%),radial-gradient(ellipse 14% 70% at 32% 100%,#ff5e00,transparent 70%),radial-gradient(ellipse 20% 60% at 55% 100%,#ffd24d,transparent 70%),radial-gradient(ellipse 15% 75% at 76% 100%,#ff3d00,transparent 70%),radial-gradient(ellipse 18% 55% at 94% 100%,#ffb300,transparent 70%);filter:blur(6px);animation:flames 1.1s ease-in-out infinite alternate;opacity:.9}
.b-inferno::after{content:"";position:absolute;inset:0;z-index:0;background-image:radial-gradient(2px 2px at 20% 80%,#ffd27a,transparent),radial-gradient(1.5px 1.5px at 45% 90%,#ffae42,transparent),radial-gradient(2px 2px at 70% 85%,#ffe08a,transparent),radial-gradient(1.5px 1.5px at 85% 95%,#ff8a3d,transparent),radial-gradient(1.5px 1.5px at 35% 70%,#fff0b3,transparent);background-size:100% 100%;animation:embers 2.2s linear infinite}
@keyframes flames{0%{transform:scaleY(.92) skewX(-2deg)}100%{transform:scaleY(1.12) skewX(2deg)}}
@keyframes embers{0%{transform:translateY(20%);opacity:0}20%{opacity:1}100%{transform:translateY(-90%);opacity:0}}
.b-storm{background:linear-gradient(#05070f,#0d1a3a 70%,#16264f);color:#fff;border-color:transparent}
.b-storm::before{content:"";position:absolute;inset:-20% 0;z-index:0;background:repeating-linear-gradient(105deg,transparent 0 14px,rgba(170,200,255,.18) 14px 15px);animation:rain .45s linear infinite}
.b-storm::after{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse at 70% 0%,rgba(220,235,255,.95),transparent 55%);opacity:0;animation:lightning 4.2s infinite}
@keyframes rain{to{transform:translateY(15%)}}
@keyframes lightning{0%,62%,68%,72%,100%{opacity:0}63%,66%{opacity:1}70%{opacity:.6}}
.b-glitchtv{background:#0a0a12;color:#fff;border-color:transparent}
.b-glitchtv::before{content:"";position:absolute;inset:0;z-index:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 3px);animation:scan 6s linear infinite}
.b-glitchtv::after{content:"";position:absolute;left:0;right:0;height:22%;top:30%;z-index:0;background:linear-gradient(90deg,rgba(255,0,76,.35),rgba(0,229,255,.35));mix-blend-mode:screen;animation:tear 2.4s steps(1) infinite}
@keyframes scan{to{background-position:0 300px}}
@keyframes tear{0%,100%{top:30%;transform:translateX(0);opacity:.0}8%{opacity:.9;top:12%;transform:translateX(-8%)}10%{top:64%;transform:translateX(6%)}12%{opacity:0}55%{opacity:.8;top:48%;transform:translateX(10%)}57%{opacity:0}}
.b-glitchtv .nmbig{animation:gl-shift 2.4s steps(1) infinite}
.b-spotlight{background:#07060b;color:#fff;border-color:transparent}
.b-spotlight::before,.b-spotlight::after{content:"";position:absolute;top:-60%;width:60%;height:220%;z-index:0;background:conic-gradient(from 170deg at 50% 0%,transparent 0deg,rgba(255,248,220,.45) 10deg,transparent 20deg);transform-origin:50% 0%}
.b-spotlight::before{left:-5%;animation:sweepL 3.2s ease-in-out infinite alternate}
.b-spotlight::after{right:-5%;animation:sweepR 2.7s ease-in-out infinite alternate}
@keyframes sweepL{from{transform:rotate(-25deg)}to{transform:rotate(25deg)}}
@keyframes sweepR{from{transform:rotate(25deg)}to{transform:rotate(-25deg)}}
.b-galaxy{background:radial-gradient(ellipse at 30% 40%,#3a1366,transparent 60%),radial-gradient(ellipse at 80% 70%,#0d3a66,transparent 55%),#05030c;color:#fff;border-color:transparent}
.b-galaxy::before{content:"";position:absolute;inset:0;z-index:0;background-image:radial-gradient(1px 1px at 10% 20%,#fff,transparent),radial-gradient(1.5px 1.5px at 30% 70%,#cfe3ff,transparent),radial-gradient(1px 1px at 50% 40%,#fff,transparent),radial-gradient(2px 2px at 70% 15%,#ffe9ff,transparent),radial-gradient(1px 1px at 85% 60%,#fff,transparent),radial-gradient(1.5px 1.5px at 60% 85%,#fff,transparent),radial-gradient(1px 1px at 20% 90%,#dfe8ff,transparent);background-size:220px 120px;animation:drift 18s linear infinite,twk 2.5s ease-in-out infinite alternate}
@keyframes drift{to{background-position:220px 0}}
@keyframes twk{to{opacity:.55}}
.pcard.dark .meta,.pcard.pcard.b-inferno .meta,.pcard.b-storm .meta,.pcard.b-glitchtv .meta,.pcard.b-spotlight .meta,.pcard.b-galaxy .meta,
.pcard.b-inferno .ptitle,.b-storm .ptitle,.b-glitchtv .ptitle,.b-spotlight .ptitle,.b-galaxy .ptitle{color:rgba(255,255,255,.78)}
.c-glitch{--glc:var(--ink)}.pcard.dark .c-glitch,.pcard[class*="b-"] .c-glitch{color:inherit}
.cos .sw{position:relative;overflow:hidden}
/* PASS titles shimmer */
.ptitle.tp{background:linear-gradient(100deg,#b8862b 0%,#f2d27a 40%,#fff 50%,#f2d27a 60%,#b8862b 100%);background-size:250% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:shine 2.6s linear infinite;font-weight:800}
/* confetti burst */
.confetti{position:fixed;inset:0;pointer-events:none;z-index:9999;overflow:hidden}
.confetti i{position:absolute;top:-12px;width:8px;height:14px;border-radius:2px;animation:fall 1.8s cubic-bezier(.2,.6,.4,1) forwards}
@keyframes fall{to{transform:translate(var(--dx),110vh) rotate(var(--r));opacity:.9}}
@media (prefers-reduced-motion:reduce){.av,.av::before,.av::after,.av img,.av i,[class*="c-"],.pcard::before,.pcard::after,.pcard .nmbig,.ptitle.tp{animation:none!important}}
.btn.gympass{background:linear-gradient(100deg,#8a5a12,#e9c46a 45%,#fff3c4 50%,#e9c46a 55%,#8a5a12);background-size:250% 100%;color:#1b1206;border:0;font-weight:800;animation:shine 3s linear infinite}
.passperks{list-style:none;padding:0;margin:6px 0 8px;font-weight:700}.passperks li{margin:3px 0}
