:root{--bg:#fbf8f1;--ink:#1d2340;--sky:#4cc2ff;--blue:#3b5bff;--lav:#b9a6ff;--mint:#6fe3b8;--coral:#ff7a6b}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 ui-rounded,"Trebuchet MS",system-ui,sans-serif;overflow-x:hidden}
.top{display:flex;gap:12px;align-items:center;padding:12px clamp(12px,4vw,40px);background:#fff;position:sticky;top:0;z-index:5;box-shadow:0 2px 14px #3b5bff14}
.logo{display:flex;gap:8px;align-items:center;text-decoration:none;color:var(--ink);font-size:1.15rem;white-space:nowrap}.logo b{color:var(--blue)}
#q{flex:1;min-width:0;padding:11px 16px;border:2px solid #e3e7ff;border-radius:99px;font:inherit;background:var(--bg)}#q:focus{outline:3px solid var(--sky);border-color:transparent}
.btn{font:inherit;font-weight:700;padding:9px 16px;border-radius:99px;border:2px solid var(--blue);background:#fff;color:var(--blue);cursor:pointer;transition:transform .12s}.btn:hover{transform:translateY(-2px)}.btn:active{transform:scale(.96)}.btn.dark{background:var(--blue);color:#fff}
.btn:focus-visible,.card:focus-visible,#cats button:focus-visible{outline:3px solid var(--coral);outline-offset:2px}
#cats{display:flex;gap:8px;overflow-x:auto;padding:12px clamp(12px,4vw,40px);scrollbar-width:thin}
#cats button{font:inherit;white-space:nowrap;padding:7px 14px;border-radius:99px;border:0;background:#fff;box-shadow:0 1px 6px #1d234014;cursor:pointer}#cats .on{background:var(--blue);color:#fff}
main{padding:0 clamp(12px,4vw,40px) 40px;max-width:1200px;margin:auto}
.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;align-items:center;margin:8px 0 24px;padding:clamp(20px,4vw,44px);border-radius:28px;background:linear-gradient(120deg,#dff3ff,#ece6ff 55%,#dcfbef);overflow:hidden}
h1{font-size:clamp(1.8rem,5vw,3rem);line-height:1.1;margin:0 0 10px}h2{margin:24px 0 12px}h2 small{font-weight:400;color:#68709a;font-size:.9rem}
.note{color:#4a5280;font-size:.92rem}
.blobs{position:relative;height:150px}.blobs i{position:absolute;border-radius:50%;animation:fl 6s ease-in-out infinite}
.blobs i:nth-child(1){width:110px;height:110px;background:var(--sky);left:10%;top:10%}.blobs i:nth-child(2){width:80px;height:80px;background:var(--coral);left:50%;top:45%;animation-delay:-2s}.blobs i:nth-child(3){width:60px;height:60px;background:var(--mint);left:70%;top:0;animation-delay:-4s}
@keyframes fl{50%{transform:translateY(-14px)}}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}
.card{display:flex;flex-direction:column;gap:2px;text-align:left;font:inherit;color:inherit;border:0;padding:0 0 12px;border-radius:20px;background:#fff;box-shadow:0 6px 18px #3b5bff1a;cursor:pointer;overflow:hidden;transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-4px);box-shadow:0 12px 26px #3b5bff30}.card[disabled]{opacity:.65;cursor:default;transform:none}
.card .art{display:grid;place-items:center;height:104px;font-size:3rem;background:var(--c);margin-bottom:8px}
.card b,.card small,.card em{padding:0 12px}.card small{color:#68709a}.card em{font-style:normal;font-size:.8rem;color:var(--blue)}
.card .play{margin:8px 12px 0;text-align:center;border-radius:99px;background:var(--blue);color:#fff;padding:5px;font-weight:700}.card[disabled] .play{background:#c9cee8}
.adslot{margin:28px 0;min-height:0}
footer{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center;padding:24px;background:#fff}footer a{color:var(--ink)}
#player,#authm{position:fixed;inset:0;background:#1d234099;display:grid;place-items:center;z-index:20;padding:10px}[hidden]{display:none!important}
.pbox{background:var(--bg);border-radius:24px;padding:16px;width:min(560px,100%);max-height:96vh;overflow:auto}
.pbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.pbar h2{margin:0}.pbar span{display:flex;gap:6px;flex-wrap:wrap}
#stage{display:grid;place-items:center;touch-action:none;user-select:none}#stage canvas{width:100%;max-width:520px;background:#fff;border-radius:16px;touch-action:none}
.auth{display:grid;gap:10px;width:min(400px,100%)}.auth input{padding:11px 14px;border:2px solid #e3e7ff;border-radius:14px;font:inherit}.row{display:flex;gap:8px;flex-wrap:wrap}
.b4,.mem,.t48{display:grid;gap:8px;width:min(420px,100%)}.b4{grid-template-columns:repeat(7,1fr)}.mem{grid-template-columns:repeat(4,1fr)}.t48{grid-template-columns:repeat(4,1fr)}
.b4 button,.mem button,.t48 div{aspect-ratio:1;border-radius:14px;border:0;font:inherit;font-size:1.6rem;font-weight:800;display:grid;place-items:center;background:#e9eeff}
.b4 .r{background:var(--coral)}.b4 .y{background:#ffd23f}.mem .up{background:var(--mint)}.t48 div{background:#e9eeff}.t48 .v2{background:#dff3ff}.t48 .v4{background:#c9e8ff}.t48 .hi{background:var(--lav)}
.msg{text-align:center;font-weight:700;margin:8px 0;width:100%}
@media(max-width:640px){.hero{grid-template-columns:1fr}.blobs{display:none}.logo span{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
