.stack{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px}
.sk{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 10px 18px;border-radius:18px;border:1px solid var(--line);background:var(--panel);transition:transform .25s,border-color .25s}
.sk:hover{transform:translateY(-4px);border-color:var(--line2)}
.sk .ic{width:48px;height:48px;display:grid;place-items:center}
.sk img,.sk svg{width:48px;height:48px;object-fit:contain}
.sk b{font:600 .88rem var(--sans);text-align:center}
.badge{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:#1f5fd6;font:700 1.1rem var(--sans);color:#fff}
.mc p{color:var(--muted);font-size:.9rem;margin-bottom:6px}
.mc .btn{align-self:flex-start;margin-top:10px;padding:9px 18px;font-size:.85rem}
.pl{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(24px,5vw,56px);align-items:center;padding:clamp(22px,5vw,48px);border-radius:28px;border:1px solid var(--line);background:linear-gradient(160deg,rgba(31,95,214,.14),rgba(255,255,255,.02))}
.pl h2{font-size:clamp(2rem,4.6vw,3.2rem);letter-spacing:-.02em;margin-bottom:16px}
.pl h2 em{display:block;color:#4d8dff;font-style:normal}
.pl-copy p{color:var(--muted);max-width:44ch}
.pl-box{background:#121212;border-radius:18px;overflow:hidden;border:1px solid var(--line)}
.pl-top{display:flex;gap:16px;align-items:center;padding:18px}
.pl-cover{width:84px;height:84px;border-radius:10px;flex:none;display:grid;place-items:center;font-size:2rem;background:linear-gradient(145deg,#1f5fd6,#050505)}
.pl-info{flex:1;min-width:0}
.pl-info h3{font:700 1.15rem var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-info span{color:var(--muted);font-size:.86rem}
.pl-ctl{display:flex;align-items:center;gap:6px}
.pl-ctl button{width:36px;height:36px;border:0;border-radius:50%;background:none;color:var(--muted);font-size:1rem;cursor:pointer}
.pl-ctl button:hover{color:#fff}
.pl-ctl .pp{width:46px;height:46px;background:#fff;color:#000;font-size:1.1rem}
.pl-ctl .pp:hover{color:#000;transform:scale(1.06)}
.pl-bar{height:4px;background:rgba(255,255,255,.12);cursor:pointer}
.pl-bar i{display:block;height:100%;width:0;background:#4d8dff}
.pl-list{background:#0b0b0b;max-height:220px;overflow:auto}
.pl-row{display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:center;width:100%;padding:12px 18px;border:0;background:none;color:var(--text);text-align:left;cursor:pointer;font:inherit}
.pl-row:hover,.pl-row.on{background:rgba(255,255,255,.06)}
.pl-row small{display:block;color:var(--dim);font-size:.74rem}
.pl-row .n{color:var(--dim);font-size:.8rem}
.pl-row .d{color:var(--muted);font-size:.84rem}
@media (max-width:960px){.pl{grid-template-columns:1fr}}

.portrait{touch-action:pan-y;cursor:crosshair;--x:50%;--y:50%;--r:0px}
.portrait .rev{
  -webkit-mask-image:radial-gradient(circle var(--r) at var(--x) var(--y),#000 55%,transparent 100%);
  mask-image:radial-gradient(circle var(--r) at var(--x) var(--y),#000 55%,transparent 100%);
  pointer-events:none;
}
.portrait .ring{position:absolute;left:0;top:0;width:0;height:0;border-radius:50%;border:1px solid rgba(255,255,255,.45);pointer-events:none;opacity:0;will-change:transform}
.comments{margin-top:26px}
.cm-sub{color:var(--muted);margin-bottom:18px}
.cm-form{display:grid;gap:12px;max-width:640px}
.cm-pick{display:flex;align-items:center;gap:14px}
.cm-pick .btn{padding:10px 20px;font-size:.88rem}
.cm-av{width:48px;height:48px;border-radius:50%;flex:none;display:grid;place-items:center;background:#1f5fd6 center/cover no-repeat;font:700 1rem var(--sans);color:#fff;border:1px solid var(--line2)}
.cm-form .btn.p{justify-self:start}
.cm-st{color:var(--muted);font-size:.86rem;min-height:1.2em;margin:0}
.cm-list{margin-top:26px;display:grid;gap:12px}
.cm{display:flex;gap:14px;padding:16px;border-radius:18px;border:1px solid var(--line);background:rgba(255,255,255,.03)}
.cm-body{min-width:0;flex:1}
.cm-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.cm-head small{color:var(--dim);font-size:.76rem}
.cm-body p{color:#d6d6d6;font-size:.95rem;overflow-wrap:anywhere;white-space:pre-wrap;margin-top:4px}
.cm-empty{color:var(--dim)}

.contact{grid-template-columns:1fr}

.ld{display:none;position:fixed;inset:0;z-index:999}
.ld-on .ld{display:block}
.ld-on,.ld-on body{overflow:hidden}
.ld-z{position:absolute;inset:0;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none}
.zg{transition:transform .95s cubic-bezier(.7,0,.2,1) .2s}
.ld.go .zl{transform:translateX(-58vw)}
.ld.go .zr{transform:translateX(58vw)}
.zs{cursor:grab;filter:drop-shadow(0 6px 10px rgba(0,0,0,.7)) drop-shadow(0 0 8px rgba(255,255,255,.35));transition:opacity .3s}
.ld.drag .zs{cursor:grabbing}
.zt{transform-origin:0 30px;animation:zsw 1.6s ease-in-out infinite alternate}
.ld.drag .zt{animation-play-state:paused}
@keyframes zsw{from{transform:rotate(-7deg)}to{transform:rotate(7deg)}}
.ld.go .zs{opacity:0}

@property --a{syntax:'<angle>';inherits:false;initial-value:0deg}
.card,.stat,.panel,.pl-box,.cm-form,.gi,.btn,.tab,.sk{position:relative}
.nb::after{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;opacity:0;transition:opacity .5s;
  background:conic-gradient(from var(--a),transparent 0 58%,rgba(255,255,255,.18) 72%,#fff 88%,transparent 96%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;
  filter:drop-shadow(0 0 3px rgba(255,255,255,.9));
}
.nb.live::after{opacity:1;animation:neon 5s linear infinite}
.nb.live:nth-child(even)::after{animation-duration:7s;animation-delay:-2s;animation-direction:reverse}
@keyframes neon{to{--a:360deg}}

.pf:not(.play)>*{opacity:0}
.pf.play>*{animation:cardIn .7s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--i,0)*70ms)}
@keyframes cardIn{from{opacity:0;transform:translateY(32px) scale(.92);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}
.tab{transition:color .25s,background .25s,border-color .25s,transform .25s}
.tab:active{transform:scale(.95)}
.mc .ph{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.mc:hover .ph{transform:scale(1.03)}

.pl{position:relative;overflow:hidden;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.pl::before{content:"";position:absolute;right:-140px;top:-170px;width:440px;height:440px;border-radius:50%;background:radial-gradient(circle,rgba(31,95,214,.22),transparent 65%);pointer-events:none}
.pl-copy,.pl-box{position:relative}
.pl-tag{font:500 .74rem var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-bottom:14px}
.pl-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}
.pl-meta span{padding:5px 14px;border:1px solid var(--line);border-radius:999px;font-size:.78rem;color:var(--muted)}
.pl-box{padding:20px;border-radius:22px;border:1px solid var(--line2);background:rgba(14,14,16,.86);box-shadow:0 24px 60px rgba(0,0,0,.5)}
.pl-top{padding:0;display:flex;gap:16px;align-items:center}
.pl-cover{position:relative;width:92px;height:92px;border-radius:16px;flex:none;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 30% 25%,#3b82f6,#1f3f8f 55%,#050505);box-shadow:0 10px 28px rgba(31,95,214,.35)}
.pl-note{font-size:2.3rem;line-height:1;color:#fff;opacity:.92}
.pl-cover .eq{position:absolute;right:10px;bottom:10px;height:16px}
.pl-now{display:block;font:500 .68rem var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#4d8dff;margin-bottom:4px}
.pl-info h3{font:700 1.2rem var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-info span{display:block;color:var(--muted);font-size:.88rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-prog{display:flex;align-items:center;gap:12px;margin-top:20px}
.pl-t{font:500 .72rem var(--mono);color:var(--dim);width:40px;flex:none}
.pl-t:last-child{text-align:right}
.pl-bar{flex:1;height:16px;display:flex;align-items:center;cursor:pointer;background:linear-gradient(rgba(255,255,255,.14),rgba(255,255,255,.14)) center/100% 4px no-repeat;border-radius:4px}
.pl-bar i{position:relative;display:block;height:4px;width:0;background:#4d8dff;border-radius:4px}
.pl-bar i::after{content:"";position:absolute;right:-6px;top:-4px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(77,141,255,.35)}
.pl-ctl{display:flex;justify-content:center;align-items:center;gap:18px;margin:14px 0 8px}
.pl-ctl button{width:44px;height:44px;border:0;border-radius:50%;display:grid;place-items:center;background:none;color:var(--muted);cursor:pointer;transition:color .2s,transform .2s,background .2s}
.pl-ctl button:hover{color:#fff;background:rgba(255,255,255,.08)}
.pl-ctl .pp{width:58px;height:58px;background:#fff;color:#000}
.pl-ctl .pp:hover{background:#e8e8e8;color:#000;transform:scale(1.07)}
.pl-list{margin-top:8px;padding:8px 0 0;max-height:238px;overflow:auto;background:none;border-top:1px solid var(--line);scrollbar-width:thin;scrollbar-color:#333 transparent}
.pl-row{grid-template-columns:28px minmax(0,1fr) auto;border-radius:12px;padding:10px 12px;transition:background .2s}
.pl-row .mid{min-width:0}
.pl-row b{display:block;font-weight:600;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-row small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-row.on{background:rgba(31,95,214,.18)}
.pl-row.on b{color:#7fb0ff}
.pl-row .n{display:flex;align-items:center}
.eq{display:none;gap:2px;align-items:flex-end;height:14px}
.eq i{display:block;width:3px;height:30%;background:#4d8dff;border-radius:2px;animation:eqb .9s ease-in-out infinite alternate}
.eq i:nth-child(2){animation-delay:.25s}.eq i:nth-child(3){animation-delay:.5s}
@keyframes eqb{to{height:100%}}
.playing .pl-cover .eq{display:flex}
.playing .pl-row.on .eq{display:flex}
.playing .pl-row.on .num{display:none}

.comments{padding:clamp(22px,4vw,38px)}
.cm-hd{display:flex;align-items:center;gap:12px}
.cm-hd h3{margin:0}
.cm-count{padding:3px 12px;border-radius:999px;border:1px solid var(--line2);font:500 .75rem var(--mono);color:var(--muted)}
.cm-sub{margin:6px 0 0}
.cm-wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(22px,4vw,44px);align-items:start;margin-top:24px}
.cm-form{max-width:none;padding:20px;border-radius:20px;border:1px solid var(--line);background:rgba(255,255,255,.025)}
.cm-pick{gap:16px}
.cm-pick .cm-av{width:64px;height:64px;font-size:1.3rem;cursor:pointer;border:2px dashed var(--line2);transition:border-color .2s}
.cm-pick .cm-av:hover{border-color:#fff}
.cm-cc{text-align:right;color:var(--dim);font:.72rem var(--mono);margin-top:-6px}
.cm-list{margin:0;max-height:480px;overflow:auto;padding-right:6px;scrollbar-width:thin;scrollbar-color:#333 transparent}
.cm{align-items:flex-start;transition:border-color .2s,background .2s}
.cm:hover{border-color:var(--line2);background:rgba(255,255,255,.05)}
.cm .cm-av{width:42px;height:42px;font-size:.95rem}
.cm-head b{font-weight:600}
@media (max-width:960px){.cm-wrap{grid-template-columns:1fr}.cm-list{max-height:420px}}
@media (max-width:520px){.pl-cover{width:72px;height:72px}.pl-note{font-size:1.8rem}.pl-box{padding:16px}}

.cv{width:100%;aspect-ratio:4/3;border-radius:14px;margin-bottom:10px;display:grid;place-items:center;border:1px solid var(--line);background:radial-gradient(circle at 30% 20%,rgba(31,95,214,.35),rgba(255,255,255,.03) 60%)}
.cv svg{width:56px;height:56px;opacity:.9}
.mc .ph.pr{background:#fff;object-fit:contain;padding:10px}
