/* shared polish: scroll reveal, bar growth, search overlay */
html.fx .rv{opacity:0;transform:translateY(16px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:var(--rd,0ms)}
html.fx .rv.in{opacity:1;transform:none}
.bar2 i{transform-origin:left center;animation:mngGrow .9s cubic-bezier(.2,.7,.2,1) both}
.trend div{transform-origin:bottom center;animation:mngGrowY .8s cubic-bezier(.2,.7,.2,1) both}
@keyframes mngGrow{from{transform:scaleX(0)}}
@keyframes mngGrowY{from{transform:scaleY(0)}}
@media (prefers-reduced-motion:reduce){html.fx .rv{opacity:1!important;transform:none!important;transition:none!important}.bar2 i,.trend div{animation:none!important}}

.sxb{font:inherit;font-family:var(--display);font-weight:500;font-size:17px;display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;color:var(--muted);background:transparent;border:1px solid var(--line);cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.sxb:hover{background:var(--panel);color:var(--fg);border-color:var(--muted)}
.sxb svg{width:17px;height:17px}
.sxb kbd{font:inherit;font-size:12px;border:1px solid var(--line);border-radius:5px;padding:0 5px;color:var(--muted)}
@media (max-width:560px){.sxb{padding:7px 11px;font-size:15px}.sxb kbd,.sxb .sxl{display:none}}
dialog.sx{margin:8vh auto 0;width:min(640px,calc(100vw - 24px));max-height:78vh;padding:0;border:1px solid var(--line);border-radius:18px;background:var(--deep);color:var(--fg);box-shadow:0 30px 80px rgba(0,0,0,.65);overflow:hidden}
dialog.sx::backdrop{background:rgba(8,9,12,.72);backdrop-filter:blur(3px)}
dialog.sx[open]{animation:sxIn .18s ease-out}
@keyframes sxIn{from{opacity:0;transform:translateY(-8px) scale(.98)}}
.sx .sxi{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.sx .sxi svg{width:20px;height:20px;color:var(--muted);flex:none}
.sx input{all:unset;flex:1;font-family:var(--body);font-size:18px;color:var(--fg);min-width:0}
.sx input::placeholder{color:var(--muted)}
.sx .sxr{max-height:calc(78vh - 62px);overflow:auto;padding:6px 8px 10px}
.sx h3{margin:12px 10px 4px;font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.sx a.sr{display:grid;grid-template-columns:30px 1fr auto;gap:2px 10px;align-items:center;padding:9px 10px;border-radius:10px;text-decoration:none;color:var(--fg)}
.sx a.sr .ic{grid-row:1/3;font-size:22px;text-align:center;line-height:1}
.sx a.sr b{font-family:var(--display);font-weight:600;font-size:17px}
.sx a.sr small{grid-column:2;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sx a.sr em{grid-row:1/3;grid-column:3;font-style:normal;font-size:12px;color:var(--muted)}
.sx a.sr[aria-selected=true],.sx a.sr:hover{background:var(--panel2)}
.sx .sxe{padding:22px 12px;color:var(--muted);text-align:center}
.sx .sxf{padding:8px 16px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;display:flex;gap:14px;flex-wrap:wrap}
@media (max-width:560px){dialog.sx{margin:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.sx .sxr{max-height:calc(100dvh - 110px)}}
a.instl{cursor:pointer;color:var(--muted)}

.bdg{display:inline-flex;gap:3px;vertical-align:middle;margin-left:6px;flex-wrap:wrap}.bdi{display:block}

/* seasonal theme: Halloween */
:root[data-theme=halloween]{--pink:#ff7a1a;--orange:#ffa23d;--yellow:#ffd23a;--cyan:#a56bff;--green:#7be05c;--bg:#0f0b14;--deep:#16101c;--panel:#1d1625;--panel2:#2a2035;--line:#3a2b49}
:root[data-theme=halloween] .evt{--ac:var(--pink);background:radial-gradient(520px 240px at 0% 0%,rgba(255,122,26,.2),transparent 70%),radial-gradient(420px 220px at 100% 100%,rgba(165,107,255,.18),transparent 70%),var(--deep);border-color:rgba(255,122,26,.55)}
:root[data-theme=halloween] .evt::after{content:"";position:absolute;right:22px;top:18px;width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 34% 34%,#fff6d6,#ffd23a 60%,#c8921a);box-shadow:0 0 26px rgba(255,210,58,.45);-webkit-mask:radial-gradient(circle at 68% 38%,transparent 0 17px,#000 18px);mask:radial-gradient(circle at 68% 38%,transparent 0 17px,#000 18px);pointer-events:none}
@media (max-width:560px){:root[data-theme=halloween] .evt::after{width:32px;height:32px;right:14px;top:14px;-webkit-mask:radial-gradient(circle at 68% 38%,transparent 0 12px,#000 13px);mask:radial-gradient(circle at 68% 38%,transparent 0 12px,#000 13px)}}

/* header: search sits level with the links and doesn't stretch the active pill */
.site nav{align-items:center}
.site nav .sxb{padding:8px 14px;font-size:16px;line-height:1.45;min-height:0;height:auto}
.site nav .sxb kbd{line-height:1.25}
.site nav .sxb span{padding:0;font-size:inherit;border-radius:0;color:inherit}
/* Christmas theme (admins turn it on, off or automatic; or a scheduled banner can carry it) */
:root[data-theme=xmas]{--bg:#0b1118;--deep:#0f1721;--panel:#15202c;--panel2:#1d2a3a;--line:#2b3d52;--muted:#a9b9cc;--pink:#e5383b;--orange:#ff9f1c;--yellow:#ffd166;--green:#3ec16f;--cyan:#9fd8f0;--s:var(--pink)}
:root[data-theme=xmas] body{background:radial-gradient(900px 520px at 50% -8%,rgba(130,190,235,.16),transparent 70%),radial-gradient(700px 420px at 100% 100%,rgba(62,193,111,.07),transparent 70%),var(--bg);background-attachment:fixed}
:root[data-theme=xmas] .site{background:rgba(8,13,20,.94)}
:root[data-theme=xmas] .site::after{background:linear-gradient(90deg,var(--pink),var(--yellow),var(--green),var(--yellow),var(--pink))}
:root[data-theme=xmas] .cin,:root[data-theme=xmas] .row,:root[data-theme=xmas] .crewrow,:root[data-theme=xmas] .clip,:root[data-theme=xmas] .bfcard{border-color:rgba(170,215,245,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 0 22px rgba(170,215,245,.05)}
.drift{position:fixed;left:0;right:0;bottom:0;height:22px;z-index:39;pointer-events:none;opacity:.8;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='22' viewBox='0 0 160 22'%3E%3Cpath d='M0 22V12Q20 3 40 12T80 12T120 12T160 12V22z' fill='%23eaf4fb'/%3E%3C/svg%3E") repeat-x bottom/160px 22px}
:root[data-theme=xmas] .newbtn{background:linear-gradient(90deg,var(--pink),var(--orange));color:#fff}
.snow{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden}
.snow i{position:absolute;top:-12px;border-radius:50%;background:#fff;opacity:.8;animation:xfall linear infinite}
@keyframes xfall{to{transform:translate3d(var(--dx,20px),calc(100vh + 24px),0)}}
@media (prefers-reduced-motion:reduce){.snow{display:none}}
