/* 0.21.94 game library + tools page. Same centred width as the home page; logo palette (near-black, #0a6cff, ice cyan). Motion is transform/opacity only. */
.nex94-main{box-sizing:border-box;padding:36px 16px 56px}
.nex94-hub{--h-panel:#121722;--h-panel-2:#181e2b;--h-line:rgba(255,255,255,.08);--h-line-2:rgba(255,255,255,.14);--h-text:#e8eaee;--h-strong:#fff;--h-muted:#8b93a1;--h-accent:#0a6cff;--h-ice:#c8fbff;--h-num:"Oxanium","DIN Alternate","Bahnschrift",ui-monospace,sans-serif;
 box-sizing:border-box;width:100%;max-width:1200px;margin:0 auto;color:var(--h-text)}
html:is([data-bs-theme=light],[data-nex-theme=light],[data-theme=light]) .nex94-hub{--h-panel:#fff;--h-panel-2:#f1f4f9;--h-line:rgba(16,32,64,.1);--h-line-2:rgba(16,32,64,.18);--h-text:#2a3442;--h-strong:#0d1420;--h-muted:#6b7584;--h-ice:#0a6cff}
.nex94-hub *,.nex94-hub *::before,.nex94-hub *::after{box-sizing:border-box}
.nex94-hub a{text-decoration:none}
.nex94-hub .screen-reader-text{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Header */
.nex94-hero{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;margin:0 0 22px}
.nex94-hero h1{margin:0;padding:0;border:0;color:var(--h-strong);font-size:30px;font-weight:600;line-height:1.2;letter-spacing:.02em}
.nex94-hero h1::before,.nex94-hero h1::after{content:none}
.nex94-hero p{margin:0;color:var(--h-muted);font-size:14px}
.nex94-hero b{color:var(--h-ice);font-family:var(--h-num);font-weight:600}

/* Search row */
.nex94-searchrow{display:flex;gap:10px;margin:0 0 18px}
.nex94-search{position:relative;flex:1;display:flex;align-items:center;min-width:0;height:50px;padding:0 12px 0 16px;border:1px solid var(--h-line);border-radius:14px;background:var(--h-panel);transition:border-color .2s,box-shadow .2s}
.nex94-search:focus-within{border-color:color-mix(in srgb,var(--h-accent) 70%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--h-accent) 18%,transparent)}
.nex94-search .nex53-input{position:relative;flex:1;display:flex;align-items:center;gap:10px;min-width:0;height:100%}
.nex94-search svg{flex:none;width:18px;height:18px;fill:none;stroke:var(--h-muted);stroke-width:2;stroke-linecap:round}
.nex94-search input{flex:1;min-width:0;height:100%;margin:0;padding:0;border:0!important;outline:0;background:transparent!important;box-shadow:none!important;color:var(--h-strong);font-size:15px}
.nex94-search input::placeholder{color:var(--h-muted);opacity:.8}
.nex94-search input::-webkit-search-cancel-button{display:none}
.nex94-search .nex53-clear{flex:none;display:grid;place-items:center;width:26px;height:26px;margin:0 4px 0 0;padding:0;border:0;border-radius:50%;background:var(--h-line);color:var(--h-muted);font-size:16px;line-height:1;cursor:pointer}
.nex94-search .nex53-clear[hidden]{display:none}
.nex94-sort{position:relative;flex:none;display:flex;align-items:center;height:50px;border:1px solid var(--h-line);border-radius:14px;background:var(--h-panel)}
.nex94-sort label{padding:0 0 0 16px;color:var(--h-muted);font-size:13px;white-space:nowrap}
.nex94-sort select{height:100%;margin:0;padding:0 38px 0 10px;border:0;outline:0;border-radius:14px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m7 10 5 5 5-5' fill='none' stroke='%238b93a1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 12px center/16px no-repeat;color:var(--h-strong);font-size:14px;-webkit-appearance:none;appearance:none;cursor:pointer}
.nex94-sort select option{background:var(--h-panel);color:var(--h-text)}
.nex94-sort:focus-within{border-color:color-mix(in srgb,var(--h-accent) 70%,transparent)}

/* Category tabs: one track, a sliding pill marks the current one (library) or aria-current (tools). */
.nex94-cats,.nex94-tabs{margin:0 0 12px}
.nex94-cats .nex54-rail{position:relative;display:flex;align-items:center}
.nex94-cats .nex53-options,.nex94-tabs{position:relative;display:inline-flex;max-width:100%;gap:2px;padding:4px;border:1px solid var(--h-line);border-radius:12px;background:var(--h-panel);overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
.nex94-cats .nex53-options::-webkit-scrollbar,.nex94-tabs::-webkit-scrollbar,.nex94-plays .nex53-options::-webkit-scrollbar{display:none}
.nex94-cats .nex46-chip{position:relative;z-index:1;flex:none;margin:0;cursor:pointer}
.nex94-cats .nex46-chip input,.nex94-plays .nex46-chip input{position:absolute;opacity:0;pointer-events:none}
.nex94-cats .nex46-chip span,.nex94-tabs a{display:flex;align-items:center;gap:7px;height:36px;padding:0 16px;border-radius:9px;color:var(--h-muted);font-size:14px;white-space:nowrap;transition:color .2s,background-color .2s}
.nex94-cats .nex46-chip em,.nex94-tabs em{color:inherit;font-family:var(--h-num);font-size:12px;font-style:normal;opacity:.6}
.nex94-cats .nex46-chip:hover span,.nex94-tabs a:hover{color:var(--h-strong)}
.nex94-cats .nex46-chip input:checked+span,.nex94-tabs a[aria-current]{color:var(--h-strong);background:var(--h-panel-2);box-shadow:inset 0 0 0 1px var(--h-line-2)}
.nex94-cats .nex46-chip input:focus-visible+span,.nex94-plays .nex46-chip input:focus-visible+span{outline:2px solid var(--h-accent);outline-offset:1px}
.nex94-cats .nex46-chip input:checked+span em,.nex94-tabs a[aria-current] em{color:var(--h-ice);opacity:1}
.nex94-cats.has-marker .nex46-chip input:checked+span,.nex94-tabs.has-marker a[aria-current]{background:transparent;box-shadow:none}
.nex94-tabs a{position:relative;z-index:1}
.nex94-cats .nex54-marker,.nex94-tabs .nex54-marker{position:absolute;z-index:0;top:4px;left:0;height:36px;border-radius:9px;background:var(--h-panel-2);box-shadow:inset 0 0 0 1px var(--h-line-2);transition:transform .3s cubic-bezier(.2,.8,.2,1),width .3s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.nex94-hub .nex54-scroll{display:none}

/* Playstyles: lighter, smaller, one scrolling line */
.nex94-plays{display:flex;align-items:center;gap:12px;margin:0 0 26px}
.nex94-plays .nex54-rail{min-width:0}
.nex94-plays .nex53-options{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-mask:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask:linear-gradient(90deg,#000 calc(100% - 28px),transparent);padding-right:28px}
.nex94-plays .nex46-chip{position:relative;flex:none;margin:0;cursor:pointer}
.nex94-plays .nex46-chip span{display:block;padding:5px 12px;border:1px solid transparent;border-radius:999px;color:var(--h-muted);font-size:13px;line-height:1.4;white-space:nowrap;transition:color .2s,border-color .2s,background-color .2s}
.nex94-plays .nex46-chip:hover span{color:var(--h-strong)}
.nex94-plays .nex46-chip input:checked+span{border-color:color-mix(in srgb,var(--h-accent) 55%,transparent);background:color-mix(in srgb,var(--h-accent) 14%,transparent);color:var(--h-strong)}

/* 中文配音 toggle in the playstyle row */
.nex94-toggle{position:relative;flex:none;margin:0;cursor:pointer}
.nex94-toggle input{position:absolute;opacity:0;pointer-events:none}
.nex94-toggle span{display:inline-flex;align-items:center;gap:6px;padding:5px 12px 5px 10px;border:1px solid var(--h-line-2);border-radius:999px;color:var(--h-text);font-size:13px;line-height:1.4;white-space:nowrap;transition:color .2s,border-color .2s,background-color .2s}
.nex94-toggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.nex94-toggle:hover span{border-color:color-mix(in srgb,var(--h-ice) 45%,transparent)}
.nex94-toggle input:checked+span{border-color:color-mix(in srgb,var(--h-ice) 60%,transparent);background:color-mix(in srgb,var(--h-ice) 14%,transparent);color:var(--h-ice)}
.nex94-toggle input:focus-visible+span{outline:2px solid var(--h-accent);outline-offset:1px}
.nex94-divider{flex:none;width:1px;height:18px;background:var(--h-line-2)}
.nex94-tool[hidden]{display:none}

/* Result head */
.nex94-hub .nex46-resulthead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px;min-height:28px}
.nex94-hub .nex46-resulthead strong{color:var(--h-muted);font-size:13px;font-weight:400}
.nex94-hub .nex46-resulthead strong b{color:var(--h-strong);font-family:var(--h-num);font-weight:600}
.nex94-hub .nex53-result-actions{display:flex;align-items:center;gap:12px}
.nex94-hub .nex53-status{display:none;color:var(--h-muted);font-size:13px}
.nex94-lib.is-loading .nex53-status{display:inline}
.nex94-hub .nex53-reset{display:inline-flex;align-items:center;gap:5px;color:var(--h-muted);font-size:13px;transition:color .2s}
.nex94-hub .nex53-reset:hover{color:var(--h-strong)}
.nex94-hub .nex53-reset svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.nex94-note{margin:-6px 0 18px;color:var(--h-muted);font-size:13px}
.nex94-note a{color:var(--h-ice)}
.nex94-hub .nex47-error{margin:0 0 14px;color:#ffb35c;font-size:13px}
.nex94-hub .nex47-error a{color:var(--h-ice)}

/* Game cards: a boxed copy that turns to show its spine on hover */
.nex94-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:30px 22px;transition:opacity .2s}
.nex94-lib.is-loading .nex94-grid{opacity:.45}
.nex94-game{display:flex;flex-direction:column;min-width:0;color:inherit;-webkit-tap-highlight-color:transparent}
.nex94-boxart{position:relative;display:block;aspect-ratio:3/4;margin:0 0 12px 8px;perspective:900px}
.nex94-spine{position:absolute;top:2%;bottom:2%;left:-8px;width:12px;border-radius:3px 0 0 3px;background:linear-gradient(90deg,#0b0f17,#2b3446);box-shadow:inset -1px 0 0 rgba(255,255,255,.1)}
.nex94-cover{position:absolute;inset:0;display:block;border-radius:5px;overflow:hidden;background:var(--h-panel-2);box-shadow:0 10px 24px rgba(0,0,0,.35),inset 0 0 0 1px rgba(255,255,255,.07);transform-origin:left center;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
.nex94-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,rgba(255,255,255,0) 40%,rgba(255,255,255,.14) 50%,rgba(255,255,255,0) 60%);opacity:0;transform:translateX(-30%);transition:opacity .45s,transform .6s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.nex94-cover .nex41-cover{display:block;width:100%;height:100%;object-fit:cover}
.nex94-cover .nex41-placeholder{display:grid;place-items:center;color:var(--h-muted);font-size:34px}
.nex94-band{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:6px;height:22px;padding:0 8px;background:rgba(6,9,14,.82);color:#fff;font-size:10.5px;line-height:1}
.nex94-band b{font-family:var(--h-num);font-weight:700;letter-spacing:.06em}
.nex94-band small{min-width:0;overflow:hidden;color:rgba(255,255,255,.7);font-size:10px;white-space:nowrap;text-overflow:ellipsis}
.nex94-game:hover .nex94-cover,.nex94-game:focus-visible .nex94-cover{transform:rotateY(-14deg) translateX(4px);box-shadow:18px 16px 30px rgba(0,0,0,.45),inset 0 0 0 1px rgba(200,251,255,.18)}
.nex94-game:hover .nex94-cover::after{opacity:1;transform:translateX(30%)}
.nex94-game:focus-visible{outline:none}
.nex94-game:focus-visible .nex94-cover{outline:2px solid var(--h-accent);outline-offset:3px}
.nex94-gname{display:-webkit-box;margin:0 0 6px;overflow:hidden;color:var(--h-strong);font-size:14.5px;font-weight:500;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2;transition:color .2s}
.nex94-game:hover .nex94-gname{color:var(--h-ice)}
.nex94-gmeta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;color:var(--h-muted);font-size:12px;line-height:1.5}
.nex94-gmeta time{font-family:var(--h-num)}
.nex94-gmeta i{padding:0 7px;border:1px solid var(--h-line);border-radius:999px;font-style:normal;font-size:11.5px}
.nex47-results.is-in .nex94-game{animation:nex94-in .4s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0) * 25ms)}
@keyframes nex94-in{from{opacity:0;transform:translateY(10px)}}

/* Empty + pagination */
.nex94-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:56px 16px;border:1px dashed var(--h-line-2);border-radius:16px;text-align:center}
.nex94-empty strong{color:var(--h-strong);font-size:16px;font-weight:500}
.nex94-empty span{color:var(--h-muted);font-size:13px}
.nex94-pages{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:40px 0 0}
.nex94-pages:empty{display:none}
.nex94-pages :is(a,span){display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 12px;border:1px solid var(--h-line);border-radius:10px;color:var(--h-text);font-family:var(--h-num);font-size:14px;transition:border-color .2s,color .2s,background-color .2s}
.nex94-pages :is(.prev,.next){font-family:inherit}
.nex94-pages a:hover{border-color:color-mix(in srgb,var(--h-accent) 70%,transparent);color:var(--h-strong)}
.nex94-pages .current{border-color:var(--h-accent);background:var(--h-accent);color:#fff}
.nex94-pages .dots{border:0;min-width:20px;padding:0;color:var(--h-muted)}

/* Tool cards: app tiles */
.nex94-toolgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}
.nex94-tool{position:relative;display:flex;align-items:center;gap:16px;min-width:0;padding:18px 44px 18px 18px;border:1px solid var(--h-line);border-radius:16px;background:var(--h-panel);color:inherit;transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .25s,background-color .25s;animation:nex94-in .4s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0) * 30ms)}
.nex94-tool:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--h-accent) 50%,transparent);background:var(--h-panel-2)}
.nex94-tool:focus-visible{outline:2px solid var(--h-accent);outline-offset:2px}
.nex94-appicon{flex:none;display:grid;place-items:center;width:64px;height:64px;border-radius:16px;object-fit:cover;background:var(--h-panel-2);box-shadow:0 0 0 1px var(--h-line);color:var(--h-strong);font-size:26px;font-weight:600;transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.nex94-tool:hover .nex94-appicon{transform:scale(1.06) rotate(-3deg)}
.nex94-toolbody{display:flex;flex-direction:column;gap:4px;min-width:0}
.nex94-toolbody strong{overflow:hidden;color:var(--h-strong);font-size:15.5px;font-weight:600;line-height:1.35;white-space:nowrap;text-overflow:ellipsis}
.nex94-tooltag{display:-webkit-box;overflow:hidden;color:var(--h-muted);font-size:13px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.nex94-toolmeta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px}
.nex94-toolmeta :is(i,small){padding:1px 7px;border-radius:6px;font-size:11.5px;font-style:normal;line-height:1.6}
.nex94-toolmeta i{background:color-mix(in srgb,var(--h-accent) 16%,transparent);color:#8fbcff;font-family:var(--h-num)}
.nex94-toolmeta small{background:var(--h-panel-2);color:var(--h-muted)}
.nex94-toolgo{position:absolute;right:16px;top:50%;width:18px;height:18px;margin-top:-9px;fill:none;stroke:var(--h-muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.5;transition:transform .25s cubic-bezier(.2,.8,.2,1),opacity .25s,stroke .25s}
.nex94-tool:hover .nex94-toolgo{opacity:1;stroke:var(--h-ice);transform:translateX(3px)}
.nex94-tools-page .nex94-tabs{display:flex;width:max-content;max-width:100%}

@media (max-width:1100px){.nex94-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.nex94-toolgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
 .nex94-main{padding:22px 16px 40px}
 .nex94-hero h1{font-size:24px}
 .nex94-searchrow{flex-wrap:wrap}
 .nex94-search,.nex94-sort{height:46px}
 .nex94-sort{flex:1 1 100%}
 .nex94-sort select{flex:1}
 .nex94-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 14px}
 .nex94-toolgrid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:520px){
 .nex94-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .nex94-gmeta i{display:none}
 .nex94-cats .nex46-chip span,.nex94-tabs a{height:34px;padding:0 12px}
 .nex94-cats .nex54-marker,.nex94-tabs .nex54-marker{height:34px}
 .nex94-tool{padding:14px 40px 14px 14px;gap:14px}
 .nex94-appicon{width:56px;height:56px;border-radius:14px}
}
@media (hover:none){.nex94-game:hover .nex94-cover{transform:none}.nex94-tool:hover{transform:none}}
@media (prefers-reduced-motion:reduce){.nex94-hub *{transition:none!important;animation:none!important}}
