.pagination-wrapper{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 0;margin:0 auto;max-width:800px}.pagination{display:inline-flex;align-items:center;gap:0;background:#0a0f1fe6;border:1px solid rgba(0,255,157,.15);border-radius:12px;padding:6px;box-shadow:0 2px 8px #0000001a,0 0 20px #00ff9d0d;transition:all .3s ease}.pagination:hover{border-color:#00ff9d40;box-shadow:0 4px 12px #00000026,0 0 25px #00ff9d1a}.page-btn{min-width:36px;height:36px;padding:0 10px;border:none;border-radius:8px;background:transparent;color:#00ff9db3;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;user-select:none;-webkit-user-select:none;position:relative}.page-btn:disabled{opacity:.3;cursor:not-allowed}.page-btn:not(:disabled):hover{background:#00ff9d14;color:#00ff9d}.page-btn:not(:disabled):active{transform:scale(.95);background:#00ff9d1f}.page-btn.active{background:#00ff9d26;color:#00ff9d;font-weight:600}.page-btn.active:hover{background:#00ff9d33}.page-ellipsis{color:#00ff9d80;font-size:.9rem;padding:0 8px;display:inline-flex;align-items:center;user-select:none;-webkit-user-select:none}.page-btn.prev-btn,.page-btn.next-btn{font-size:1.1rem;min-width:36px;font-weight:600}.page-counter{color:#00ff9d99;font-size:.85rem;font-weight:400;text-align:center;padding:.5rem 1rem;letter-spacing:.3px}@media(max-width:768px){.pagination-wrapper{padding:1.5rem 1rem}.pagination{padding:4px;border-radius:10px;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.page-btn{min-width:32px;height:32px;font-size:.85rem;padding:0 8px}.page-btn.prev-btn,.page-btn.next-btn{min-width:32px;font-size:1rem}.page-ellipsis{padding:0 6px;font-size:.85rem}.page-counter{font-size:.8rem;padding:.4rem .8rem}}@media(max-width:480px){.pagination{padding:3px}.page-btn{min-width:28px;height:28px;font-size:.8rem;padding:0 6px}.page-counter{font-size:.75rem}}@media(prefers-color-scheme:dark){.pagination{background:#0006}}@media(prefers-reduced-motion:reduce){.pagination,.page-btn{transition:none}.page-btn:not(:disabled):active{transform:none}}.fav-btn{position:absolute;top:8px;right:8px;z-index:5;background:none;border:none;cursor:pointer;padding:4px;opacity:0;transition:opacity .2s,transform .2s;line-height:1}.hacker-card:hover .fav-btn,.special-card:hover .fav-btn,.fav-btn[data-fav="1"]{opacity:1}.fav-btn .fav-icon{width:20px;height:20px;fill:#fff6;transition:fill .2s,transform .2s}.fav-btn .fav-icon.filled{fill:#ff4757}.fav-btn:hover .fav-icon{transform:scale(1.15)}.fav-btn:hover .fav-icon.filled{fill:#ff6b81}.fav-btn .fav-icon:not(.filled):hover{fill:#ff475799}.completed-badge{position:absolute;top:8px;left:8px;z-index:5;width:24px;height:24px;border-radius:50%;background:#2ecc71;color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 10px #2ecc7180}.grid-layout{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;justify-items:center;max-width:1280px;margin:0 auto;padding:1.5rem}.action-buttons{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.nav-button{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:12px;text-decoration:none;font-size:.95rem;font-weight:600;transition:all .4s cubic-bezier(.4,0,.2,1);border:1px solid;position:relative;overflow:hidden;backdrop-filter:blur(20px);font-family:Orbitron,sans-serif}.nav-button:before{content:"";position:absolute;top:50%;left:50%;z-index:0;width:0;height:0;border-radius:50%;transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease}.nav-button span,.nav-button svg{position:relative;z-index:1}.nav-button:hover:before{width:300px;height:300px}@media(max-width:1400px){.grid-layout{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1024px){.grid-layout{grid-template-columns:repeat(2,minmax(0,1fr))}}.hacker-card,.special-card{--vm-accent-rgb: 0, 255, 157;--vm-accent: #00ff9d;--vm-accent-strong: #00d4aa;--vm-card-start: rgba(0, 20, 15, .4);--vm-card-end: rgba(0, 10, 10, .22);position:relative;display:flex;flex-direction:column;width:100%;max-width:248px;min-height:340px;height:100%;padding:1.25rem;margin:0;overflow:hidden;box-sizing:border-box;border-radius:12px;border:1px solid rgba(var(--vm-accent-rgb),.3);background:linear-gradient(145deg,var(--vm-card-start),var(--vm-card-end));box-shadow:0 8px 32px #0000004d,0 0 20px rgba(var(--vm-accent-rgb),.06);transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease,background .28s ease}.hacker-card:before,.special-card:before{content:"";position:absolute;inset:0;z-index:0;opacity:.65;background:radial-gradient(circle at 50% 0%,rgba(var(--vm-accent-rgb),.14),transparent 60%);pointer-events:none}.hacker-card:after,.special-card:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;z-index:0;opacity:0;background:linear-gradient(90deg,transparent,rgba(var(--vm-accent-rgb),.1),transparent);pointer-events:none}.hacker-card:hover,.special-card:hover{transform:translateY(-5px);border-color:rgba(var(--vm-accent-rgb),.52);box-shadow:0 12px 42px #0000006b,0 0 28px rgba(var(--vm-accent-rgb),.2),inset 0 0 20px rgba(var(--vm-accent-rgb),.05)}.hacker-card:hover:after,.special-card:hover:after{opacity:.55;animation:cyberScan 1.4s ease-out 1}@keyframes cyberScan{0%{left:-100%}to{left:200%}}.icon-frame{width:100px;height:100px;border-radius:50%;overflow:hidden;margin:0 auto 1rem;border:2px solid rgba(var(--vm-accent-rgb),.6);background:linear-gradient(145deg,rgba(var(--vm-accent-rgb),.08),transparent);box-shadow:0 0 15px rgba(var(--vm-accent-rgb),.28),inset 0 0 10px rgba(var(--vm-accent-rgb),.1);flex-shrink:0;position:relative;z-index:2;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.hacker-card:hover .icon-frame,.special-card:hover .icon-frame{transform:scale(1.05) translateY(-3px);border-color:rgba(var(--vm-accent-rgb),.82);box-shadow:0 0 22px rgba(var(--vm-accent-rgb),.44),inset 0 0 15px rgba(var(--vm-accent-rgb),.14)}.hacker-icon{width:100%;height:100%;object-fit:cover;border-radius:50%}.hacker-card .title-row,.special-card .title-row{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;margin:.25rem 0 .85rem;position:relative;z-index:2}.tool-name{max-width:100%;margin:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:1.1rem;font-weight:600;line-height:1.3;color:transparent;background:linear-gradient(135deg,var(--vm-accent),var(--vm-accent-strong));background-clip:text;-webkit-background-clip:text;text-shadow:0 0 10px rgba(var(--vm-accent-rgb),.3)}.hacker-card:hover .tool-name,.special-card:hover .tool-name{text-shadow:0 0 15px rgba(var(--vm-accent-rgb),.5)}.meta-info{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:.35rem;width:100%;margin:auto 0 .8rem;position:relative;z-index:2}.author-tag,.meta-tag{display:flex;align-items:center;height:36px;border-radius:20px;box-sizing:border-box;transition:transform .25s ease,box-shadow .25s ease,max-width .25s ease}.author-tag{gap:.35rem;flex:1 1 96px;min-width:0;max-width:120px;padding:0 .55rem;overflow:hidden;background:#ffffff14;border:1px solid rgba(255,255,255,.14);color:#fffffff2;font-size:.9rem;font-weight:500}.author-tag:hover,.author-tag:focus-within{flex:0 0 auto;min-width:120px;max-width:none;overflow:visible}.author-tag:hover .author-name,.author-tag:focus-within .author-name{max-width:none;overflow:visible}.author-avatar,.author-fallback{width:22px;height:22px;flex-shrink:0;border-radius:50%}.author-avatar{object-fit:cover;border:1px solid rgba(255,255,255,.22);transition:opacity .25s ease}.author-fallback{display:inline-flex;align-items:center;justify-content:center;background:#ffffff24;font-size:.86rem;line-height:1}.author-name{min-width:0;flex:1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta-tag{justify-content:center;gap:.3rem;padding:0 .65rem;font-size:.78rem;font-weight:500;white-space:nowrap;flex-shrink:0;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff}.meta-tag.difficulty{min-width:76px;padding-inline:.45rem .55rem}.difficulty-icon{display:inline-flex;align-items:flex-end;gap:2px;width:18px;height:16px;flex:0 0 18px}.difficulty-bar{width:3px;border-radius:999px;background:currentColor;box-shadow:0 0 6px currentColor;opacity:.22}.difficulty-bar:nth-child(1){height:6px}.difficulty-bar:nth-child(2){height:9px}.difficulty-bar:nth-child(3){height:12px}.difficulty-bar:nth-child(4){height:15px}.meta-tag.difficulty.baby .difficulty-bar:nth-child(-n+1),.meta-tag.difficulty.easy .difficulty-bar:nth-child(-n+2),.meta-tag.difficulty.medium .difficulty-bar:nth-child(-n+3),.meta-tag.difficulty.hard .difficulty-bar:nth-child(-n+4){opacity:.95}.difficulty-label{line-height:1}.hacker-card:hover .author-tag,.hacker-card:hover .meta-tag,.special-card:hover .author-tag,.special-card:hover .meta-tag{transform:translateY(-4px);box-shadow:0 0 12px rgba(var(--vm-accent-rgb),.18)}.meta-tag.os-type,.os-type{color:var(--vm-accent);border-color:rgba(var(--vm-accent-rgb),.3);background:rgba(var(--vm-accent-rgb),.12)}.meta-tag.os-type .icon,.os-icon-img{width:24px;height:24px;display:block;object-fit:contain}.meta-tag.difficulty.baby{color:#a5b4fc;border-color:#6366f152;background:#6366f11f}.meta-tag.difficulty.easy{color:#2ecc71;border-color:#2ecc7152;background:#2ecc711f}.meta-tag.difficulty.medium{color:#f1c40f;border-color:#f1c40f52;background:#f1c40f1f}.meta-tag.difficulty.hard{color:#e74c3c;border-color:#e74c3c52;background:#e74c3c1f}.meta-tag.difficulty.unknown{color:#ffffffb8;border-color:#ffffff38;background:#ffffff14}.cyber-button-container{width:100%;margin-top:auto;padding:0 1rem;position:relative;z-index:2}.cyber-download-btn{display:block;width:100%;min-height:40px;padding:.6rem 1rem;border-radius:8px;border:1px solid rgba(var(--vm-accent-rgb),.42);background:rgba(var(--vm-accent-rgb),.16);color:var(--vm-accent);text-align:center;text-decoration:none;font-size:.9rem;font-weight:600;cursor:pointer;position:relative;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease;box-shadow:0 2px 8px #0003}.cyber-download-btn:hover{transform:translateY(-2px);border-color:rgba(var(--vm-accent-rgb),.62);background:rgba(var(--vm-accent-rgb),.24);color:#fff;box-shadow:0 4px 14px rgba(var(--vm-accent-rgb),.28)}.extract-code,.time-badge,.recommend-badge{color:#000;padding:.3rem .6rem;border-radius:20px;font-size:.75rem;font-weight:700}.extract-code,.time-badge{background:var(--accent)}.recommend-badge{background:#ff69b4}.playbook-option{background:#00ff9d1f;border:1px solid rgba(0,255,157,.35);color:var(--accent)}.playbook-option:hover{background:#00ff9d33}.skeleton-card{pointer-events:none}.skeleton-shimmer{background:linear-gradient(90deg,rgba(var(--vm-accent-rgb),.05),rgba(var(--vm-accent-rgb),.15),rgba(var(--vm-accent-rgb),.05));background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}.skeleton-card .icon-frame{background:rgba(var(--vm-accent-rgb),.08);border-color:rgba(var(--vm-accent-rgb),.2)}.skeleton-card .title-row{margin-bottom:.5rem}.skeleton-os{width:24px;height:24px;border-radius:4px}.skeleton-title{height:1.2rem;width:56%;margin:0 auto;border-radius:4px}.skeleton-tag{width:5rem;height:1.8rem;border-radius:20px}.skeleton-btn{width:100%;height:2.4rem;margin-top:auto;border-radius:8px}.error-message{grid-column:1 / -1;width:100%;padding:2rem;text-align:center;color:var(--text-secondary)}@media(max-width:768px){.grid-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1rem}.action-buttons{flex-direction:column;width:100%;gap:.75rem}.nav-button{width:100%;justify-content:center;font-size:.9rem;padding:.7rem 1.2rem}.hacker-card,.special-card{max-width:100%;min-height:290px}.icon-frame{width:90px;height:90px}.tool-name{font-size:1rem}.meta-tag,.author-tag{font-size:.84rem}.author-tag{max-width:114px}.meta-tag.difficulty{min-width:78px}}@media(max-width:480px){.grid-layout{grid-template-columns:1fr}.icon-frame{width:96px;height:96px}}@media(prefers-reduced-motion:reduce){.hacker-card,.special-card,.icon-frame,.author-tag,.meta-tag,.cyber-download-btn{transition:none}.hacker-card:hover,.special-card:hover,.hacker-card:hover .icon-frame,.special-card:hover .icon-frame,.hacker-card:hover .author-tag,.hacker-card:hover .meta-tag,.special-card:hover .author-tag,.special-card:hover .meta-tag,.cyber-download-btn:hover{transform:none;box-shadow:none}.hacker-card:hover:after,.special-card:hover:after{animation:none}}.download-dialog{position:fixed;inset:0;z-index:1000;padding:1.5rem;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;pointer-events:none;background:radial-gradient(circle at 50% 18%,rgba(77,195,255,.16),transparent 32rem),#000000c7;backdrop-filter:blur(10px)}.download-dialog.active{opacity:1;visibility:visible;pointer-events:auto}.download-dialog-content{width:min(92vw,520px);max-width:none;padding:1.75rem;overflow:hidden;border-radius:12px;border:1px solid rgba(77,195,255,.28);transform:scale(.92);transition:transform .3s ease;background:radial-gradient(circle at 50% 0%,rgba(0,255,157,.13),transparent 64%),linear-gradient(145deg,#0a0f1ff5,#020617fa);box-shadow:0 24px 70px #0000008c,0 0 0 1px #ffffff0a inset,0 0 28px #00ff9d1f}.download-dialog.active .download-dialog-content{transform:scale(1)}.download-dialog-content:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(0,255,157,.12),transparent) top / 100% 1px no-repeat,linear-gradient(180deg,transparent,rgba(77,195,255,.08),transparent)}.dialog-close{position:absolute;top:.9rem;right:.9rem;z-index:2;width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:#ffffffb8;font-size:1.35rem;line-height:1;cursor:pointer;transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease}.dialog-close:hover{color:#fff;background:#00ff9d1f;border-color:#00ff9d5c;transform:translateY(-1px)}.dialog-title{position:relative;z-index:1;margin:0 2.75rem .35rem;color:var(--primary-light);font-size:.88rem;font-weight:700;letter-spacing:.08em;line-height:1.25;text-align:center;text-transform:uppercase}.dialog-vmname{position:relative;z-index:1;max-width:100%;margin:0 2.75rem 1.4rem;overflow:hidden;color:var(--accent);font-size:clamp(1.35rem,4vw,1.9rem);font-weight:700;line-height:1.25;text-align:center;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 16px rgba(0,255,157,.35)}.download-options{position:relative;z-index:1;display:flex;flex-direction:column;gap:.65rem}.download-option{--download-accent: 77, 195, 255;position:relative;display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:.95rem 1rem;gap:1rem;border-radius:8px;border:1px solid rgba(var(--download-accent),.28);background:linear-gradient(135deg,rgba(var(--download-accent),.13),rgba(var(--download-accent),.05)),#ffffff08;color:#ffffffeb;text-decoration:none;overflow:hidden;box-shadow:0 8px 20px #00000038;transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease}.download-option:before{content:"";position:absolute;top:1px;left:1rem;right:1rem;width:auto;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--download-accent),.7),transparent);opacity:.55;pointer-events:none}.download-option:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(var(--download-accent),.12),transparent);transform:translate(-105%);transition:transform .45s ease}.download-option:hover{transform:translateY(-2px);border-color:rgba(var(--download-accent),.5);background:linear-gradient(135deg,rgba(var(--download-accent),.2),rgba(var(--download-accent),.08)),#ffffff0a;box-shadow:0 12px 28px #00000057,0 0 18px rgba(var(--download-accent),.16)}.download-option:hover:before{transform:none}.download-option:hover:after{transform:translate(105%)}.primary-option,.playbook-option{--download-accent: 0, 255, 157;color:#fffffff2}.secondary-option{--download-accent: 77, 195, 255;color:#ffffffe6}.option-label{position:relative;z-index:1;min-width:0;color:currentColor;font-size:.98rem;font-weight:650;line-height:1.25;text-align:left}.recommend-badge,.time-badge,.extract-code{position:relative;z-index:1;flex:0 0 auto;padding:.28rem .58rem;border-radius:999px;background:rgba(var(--download-accent),.9);color:#000;font-size:.68rem;font-weight:700;letter-spacing:.04em;line-height:1;box-shadow:0 0 12px rgba(var(--download-accent),.22)}@media(max-width:768px){.download-dialog-content{padding:1.35rem}.dialog-title,.dialog-vmname{margin-inline:2.35rem}.download-option{min-height:58px;padding:.85rem}.option-label{font-size:.92rem}}@media(max-width:480px){.download-option{align-items:flex-start;flex-direction:column;justify-content:center;gap:.6rem}}
