*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{--blue:#2196f3;--blueD:#1976d2;--bg:#eef1f6;--card:#fff;--txt:#1c2330;--sub:#7a8699;--line:#e6eaf2;--gold:#f4a62a;--green:#16a085;--gray:#546e7a;--appbar:40px;--nav:56px;--r:12px;--sh:0 2px 8px rgba(20,40,80,.07);--sh2:0 6px 20px rgba(20,40,80,.12);--ease:cubic-bezier(.22,.61,.36,1)}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--txt);background:var(--bg);padding-bottom:calc(var(--nav) + env(safe-area-inset-bottom));min-height:100vh;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
body.locked{overflow:hidden}
img{background:#e8ecf3}
button{font:inherit;color:inherit;-webkit-appearance:none;appearance:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.appbar{position:sticky;top:0;z-index:30;height:calc(var(--appbar) + env(safe-area-inset-top));background:linear-gradient(135deg,#2a9cf5,#1976d2);color:#fff;padding:0 14px;padding-top:env(safe-area-inset-top);display:flex;align-items:center;gap:10px;box-shadow:0 2px 10px rgba(33,150,243,.25);font-size:15px;font-weight:600}
@media(min-width:768px){.appbar{justify-content:center}.appbar .back{display:none}}
@media(max-width:359px){.appbar{font-size:14px;padding:0 10px;padding-top:env(safe-area-inset-top)}.appbar .sub{font-size:11px}}
.appbar .back{display:none;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;border:none;font-size:19px;line-height:1;align-items:center;justify-content:center;flex:none;transition:background .18s}
.appbar .back:active{background:rgba(255,255,255,.34)}
#title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.appbar .sub{font-size:12px;font-weight:400;opacity:.85;margin-left:auto}
.page{display:none}.page.on{display:block}
.searchbar{position:sticky;top:calc(var(--appbar) + env(safe-area-inset-top));z-index:20;background:var(--bg);padding:6px 10px 4px}
@media(min-width:768px){.searchbar{max-width:800px;margin:0 auto;padding:8px 16px 6px}}
@media(min-width:1200px){.searchbar{max-width:1000px}}
.srow{display:flex;gap:7px;align-items:center}
.sbox{flex:1;min-width:0;display:flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:6px 12px;gap:7px;transition:border-color .18s,box-shadow .18s}
.sbox:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(33,150,243,.14)}
.sbox input{flex:1;min-width:0;border:none;outline:none;font-size:15px;background:transparent;-webkit-appearance:none;appearance:none}
.sbox input::-webkit-search-cancel-button{-webkit-appearance:none}
.sortrow{display:flex;gap:8px;padding:0 10px 4px;align-items:center;flex-wrap:wrap}
.catrow{display:flex;gap:8px;padding:0 10px 6px;overflow-x:auto;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}
@media(min-width:768px){.catrow{justify-content:center;padding:0 16px 8px}}
.catrow::-webkit-scrollbar{display:none}
.catrow .chip{flex:none}
.srt{flex:none;width:36px;height:32px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--sub);cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .18s,color .18s,border-color .18s}
.srt.on{background:var(--blue);border-color:var(--blue);color:#fff}
.srt:active{transform:scale(.94)}
.chip{border:1px solid var(--line);background:#fff;color:var(--sub);border-radius:16px;padding:5px 13px;font-size:12px;cursor:pointer;transition:background .18s,color .18s,border-color .18s;white-space:nowrap}
.chip:active{transform:scale(.96)}
.chip.on{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 2px 8px rgba(33,150,243,.32)}
.count{flex:none;font-size:11.5px;color:var(--sub);opacity:.8;margin-left:auto;font-variant-numeric:tabular-nums}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:6px 12px}
@media(max-width:359px){.grid{gap:8px;padding:4px 8px}.meta{padding:6px 8px 8px}.meta .nm{font-size:11.5px}.meta .au{font-size:10px}.thumb .sz{font-size:9px;padding:2px 6px}.thumb .k2{font-size:8.5px;padding:1px 5px}}
@media(min-width:480px){.grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:768px){.grid{grid-template-columns:repeat(4,1fr)}}
@media(min-width:1024px){.grid{grid-template-columns:repeat(5,1fr);gap:12px;padding:8px 16px}}
@media(min-width:1440px){.grid{grid-template-columns:repeat(6,1fr)}}
@media(min-width:1800px){.grid{grid-template-columns:repeat(7,1fr);gap:14px}}
.card{background:var(--card);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);cursor:pointer;transition:transform .16s var(--ease),box-shadow .16s var(--ease);animation:cardIn .3s var(--ease) both}
.card:active{transform:scale(.975);box-shadow:var(--sh2)}
@keyframes cardIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.card{animation:none}}
.thumb{position:relative;width:100%;aspect-ratio:9/16;background:linear-gradient(100deg,#e8ecf3 40%,#f3f6fa 50%,#e8ecf3 60%);background-size:220% 100%;animation:shim 1.25s linear infinite;overflow:hidden}
@media(min-width:768px){.thumb{aspect-ratio:3/4}}
@media(min-width:1024px){.thumb{aspect-ratio:4/5}}
.thumb img{width:100%;height:100%;object-fit:cover;display:block;background:transparent;opacity:0;transition:opacity .3s}
.thumb img.ok{opacity:1}
.thumb .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11.5px;color:#9aa5b8;background:#e8ecf3;text-align:center;padding:8px;line-height:1.5}
.thumb .sz{position:absolute;right:6px;bottom:6px;background:rgba(0,0,0,.62);color:#fff;font-size:10px;padding:2px 8px;border-radius:9px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);letter-spacing:.02em}
.thumb .k2{position:absolute;left:6px;top:6px;background:linear-gradient(135deg,#f7b733,#fc8c27);color:#fff;font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:8px;letter-spacing:.04em}
.meta{padding:8px 10px 10px}
.meta .nm{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.meta .au{font-size:11px;color:var(--gold);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:14px}
.loadmore{display:block;margin:18px auto 10px;background:#fff;border:1px solid var(--blue);color:var(--blue);border-radius:22px;padding:11px 36px;font-size:14px;font-weight:600;cursor:pointer;transition:background .18s,color .18s,transform .16s}
.loadmore:active{transform:scale(.97);background:var(--blue);color:#fff}
.empty{text-align:center;color:var(--sub);padding:64px 24px;font-size:14px;line-height:1.8}
.empty:before{content:"";display:block;width:52px;height:52px;margin:0 auto 14px;border-radius:50%;background:#e3e9f2 center/24px no-repeat;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239aa5b8' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E")}
.aulist{padding:8px 12px}
@media(min-width:768px){.aulist{max-width:800px;margin:0 auto;padding:12px 16px}}
.auitem{display:flex;width:100%;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:11px 14px;margin-bottom:9px;cursor:pointer;transition:transform .15s var(--ease),box-shadow .15s;text-align:left;font:inherit;color:inherit}
.auitem:active{transform:scale(.985);box-shadow:var(--sh)}
.av{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#42a5f5,#1976d2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;flex:none}
.auitem .info{flex:1;min-width:0}
.auitem .info .n{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.auitem .info .c{font-size:12px;color:var(--sub);margin-top:2px}
.auitem .arrow{color:#c2cad8;font-size:18px;flex:none}
/* 二次元图库瀑布流 */
.gtip{margin:2px 14px 8px;font-size:12px;color:#8a6d1f;background:#fff8e8;border:1px solid #ffe6b8;border-radius:10px;padding:10px 13px;line-height:1.6}
@media(min-width:768px){.gtip{max-width:800px;margin:4px auto 10px}}
.gflow{column-count:2;column-gap:10px;padding:6px 12px}
@media(min-width:480px){.gflow{column-count:3}}
@media(min-width:768px){.gflow{column-count:4}}
@media(min-width:1024px){.gflow{column-count:5;column-gap:12px;padding:8px 16px}}
@media(min-width:1440px){.gflow{column-count:6}}
@media(min-width:1800px){.gflow{column-count:7;column-gap:14px}}
.gfig{display:block;width:100%;border:0;padding:0;text-align:left;color:inherit;font:inherit;break-inside:avoid;margin-bottom:10px;border-radius:11px;overflow:hidden;position:relative;cursor:pointer;box-shadow:0 2px 7px rgba(20,40,80,.08);background:linear-gradient(100deg,#e8ecf3 40%,#f3f6fa 50%,#e8ecf3 60%);background-size:220% 100%;animation:shim 1.25s linear infinite;transition:transform .16s var(--ease)}
.gfig:active{transform:scale(.985)}
@keyframes shim{to{background-position:-220% 0}}
.gfig img{width:100%;height:100%;display:block;object-fit:cover;background:transparent;opacity:0;transition:opacity .32s}
.gfig img.ok{opacity:1}
.gfig .gtag{position:absolute;top:6px;left:6px;background:rgba(0,0,0,.58);color:#fff;font-size:10px;padding:2px 8px;border-radius:9px;white-space:nowrap;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);letter-spacing:.02em}
.gfig .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#e8ecf3;color:#9aa5b8;font-size:11.5px}
.gfig.loaded,.thumb.loaded{animation:none}
@media(hover:hover){.gfig:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(20,40,80,.14)}.card:hover{transform:translateY(-2px);box-shadow:var(--sh2)}}
.topbtn{position:fixed;right:14px;bottom:calc(var(--nav) + env(safe-area-inset-bottom) + 18px);width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--blue);font-size:17px;line-height:1;cursor:pointer;box-shadow:0 4px 14px rgba(20,40,80,.14);z-index:45;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .25s,transform .25s var(--ease);display:flex;align-items:center;justify-content:center;padding:0}
@media(min-width:768px){.topbtn{right:calc(50% - 380px);bottom:100px}}
@media(min-width:1200px){.topbtn{right:calc(50% - 480px)}}
.topbtn.on{opacity:1;transform:none;pointer-events:auto}
.topbtn:active{transform:scale(.9)}
/* 下载页 */
.sech{padding:16px 16px 4px;font-size:14px;font-weight:700}
.sech span{font-size:12px;font-weight:400;color:var(--sub)}
.dlcard{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;margin:10px 12px;box-shadow:0 2px 8px rgba(20,40,80,.06)}
@media(min-width:768px){.dlcard{max-width:700px;margin:12px auto}}
.dlcard .top{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.dlic{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:23px;color:#fff;flex:none}
.dlic.app{background:linear-gradient(135deg,#2ecc8f,#16a085)}
.dlic.engine{background:linear-gradient(135deg,#2a9cf5,#1976d2)}
.dlic.miui{background:linear-gradient(135deg,#78909c,#546e7a)}
.dlcard .tt{flex:1;min-width:0}
.dlcard .tt .n{font-size:15.5px;font-weight:700}
.dlcard .tt .v{font-size:12px;color:var(--sub);margin-top:2px}
.role{background:#f6f8fc;border-left:3px solid var(--blue);border-radius:8px;padding:9px 12px;font-size:12.5px;color:#4a5568;line-height:1.6;margin-bottom:10px}
.role b{color:var(--txt)}
.role.app{border-left-color:var(--green)}.role.miui{border-left-color:var(--gray)}
.dltags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:11px}
.dltag{border-radius:14px;padding:2.5px 11px;font-size:11px}
.dltag.must{background:#e6f9f1;color:#0e9c6b}
.dltag.must2{background:#e8f2fe;color:#1976d2}
.dltag.opt{background:#fff4e6;color:#d97706}
.dlbtn{display:block;width:100%;text-align:center;color:#fff;border-radius:11px;padding:12px;font-size:14.5px;font-weight:600;text-decoration:none}
.dlbtn.app{background:linear-gradient(135deg,#2ecc8f,#16a085)}
.dlbtn.engine{background:linear-gradient(135deg,#2a9cf5,#1976d2)}
.dlbtn.miui{background:linear-gradient(135deg,#78909c,#546e7a)}
.block{margin:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}
@media(min-width:768px){.block{max-width:700px;margin:14px auto}}
.block h3{font-size:15px;margin-bottom:11px}
.block p{font-size:13px;color:var(--sub);line-height:1.7}
.steps{counter-reset:s}
.step{position:relative;padding:0 0 18px 38px;font-size:13px;color:var(--sub);line-height:1.65}
.step:before{counter-increment:s;content:counter(s);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:#e3f2fd;color:var(--blueD);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:13px}
.step:not(:last-child):after{content:"";position:absolute;left:12px;top:28px;bottom:2px;width:2px;background:#e3f2fd}
.step b{color:var(--txt)}
.minilink{display:block;margin:6px 12px 4px;text-align:center;font-size:12.5px;color:var(--blueD);text-decoration:none}
/* 底部导航 */
.nav{position:fixed;bottom:0;left:0;right:0;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 12px rgba(20,40,80,.06)}
@media(min-width:768px){.nav{max-width:600px;left:50%;transform:translateX(-50%);border-radius:16px 16px 0 0;border:1px solid var(--line);border-bottom:none}}
.nav button{flex:1;background:none;border:none;min-height:var(--nav);padding:7px 2px 6px;font-size:11px;color:var(--sub);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;position:relative;transition:color .18s}
.nav button svg{width:23px;height:23px;transition:transform .2s var(--ease)}
.nav button.on{color:var(--blue)}
.nav button.on svg{transform:translateY(-1px) scale(1.08)}
.nav button.on:before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:26px;height:2.5px;border-radius:0 0 3px 3px;background:var(--blue)}
.nav button:active{opacity:.6}
/* 视频壁纸详情 */
.ov{position:fixed;inset:0;background:#000;z-index:60;display:none;flex-direction:column;overscroll-behavior:contain}
.ov.on{display:flex;animation:ovIn .24s var(--ease)}
@keyframes ovIn{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
.ov video{width:100%;max-height:58vh;display:block;background:#0a0d14;object-fit:contain}
@media(min-width:768px){.ov{background:rgba(0,0,0,.85);align-items:center;justify-content:center;padding:24px}.ov video{max-width:900px;max-height:65vh;border-radius:12px 12px 0 0}.ov .dbody{max-width:900px;width:100%;border-radius:0 0 12px 12px;margin-top:0}.ov .dclose{top:calc(24px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);margin-left:-450px}}
@media(min-width:1200px){.ov video{max-width:1100px}.ov .dbody{max-width:1100px}.ov .dclose{margin-left:-550px}}
.ov .dclose{position:absolute;top:calc(10px + env(safe-area-inset-top));left:12px;width:38px;height:38px;border-radius:50%;background:rgba(0,0,0,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;border:none;font-size:23px;line-height:1;display:flex;align-items:center;justify-content:center;z-index:2;transition:background .18s}
.ov .dclose:active{background:rgba(0,0,0,.75)}
.ov .dbody{background:#fff;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;border-radius:18px 18px 0 0;margin-top:-18px;position:relative;padding:20px 18px calc(24px + env(safe-area-inset-bottom))}
.ov .dbody:before{content:"";display:block;width:38px;height:4px;border-radius:2px;background:#dfe5ee;margin:-8px auto 14px}
.ov h2{font-size:18px;line-height:1.4;margin-bottom:6px;word-break:break-word}
.ov .dinf{font-size:13px;color:var(--sub);margin-bottom:16px}
.ov .dinf .au{color:var(--gold)}
.dact{display:flex;gap:10px;margin-bottom:10px}
.dact a,.dact .b{flex:1;text-align:center;border-radius:12px;padding:13px;font-size:14.5px;font-weight:600;text-decoration:none;cursor:pointer;border:1px solid var(--line);transition:transform .15s,filter .15s;min-height:46px}
.dact a:active,.dact .b:active{transform:scale(.975);filter:brightness(.96)}
.dact .dl{background:linear-gradient(135deg,#2a9cf5,#1976d2);color:#fff;border-color:transparent}
.dact .cp{background:#f2f6fc;color:var(--blueD)}
.dlink{background:#f6f8fc;border:1px solid var(--line);border-radius:10px;padding:10px 11px;font-size:11px;color:var(--sub);word-break:break-all;margin-bottom:14px;line-height:1.55;user-select:all;-webkit-user-select:all}
.dtip{font-size:12px;color:#8a6d1f;background:#fff8e8;border:1px solid #ffe6b8;border-radius:10px;padding:11px 13px;line-height:1.65}
/* 图库灯箱 */
.gov{position:fixed;inset:0;background:rgba(5,8,15,.97);z-index:70;display:none;flex-direction:column;align-items:center;justify-content:center;overscroll-behavior:contain}
.gov.on{display:flex;animation:gIn .2s ease-out}
@keyframes gIn{from{opacity:0}to{opacity:1}}
.gov img{max-width:96%;max-height:62vh;display:block;border-radius:6px;background:transparent;object-fit:contain}
@media(min-width:768px){.gov img{max-width:min(90%,1200px);max-height:75vh;border-radius:10px}}
@media(min-width:1200px){.gov img{max-width:min(85%,1600px);max-height:80vh}}
.gov .gspin{position:absolute;top:50%;left:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border:2.5px solid rgba(255,255,255,.22);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:none}
.gov.loading .gspin{display:block}
@keyframes spin{to{transform:rotate(360deg)}}
.gclose{position:absolute;top:calc(12px + env(safe-area-inset-top));right:14px;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;border:none;font-size:22px;line-height:1;z-index:5;transition:background .18s}
.gclose:active{background:rgba(255,255,255,.3)}
.gnav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:64px;background:rgba(255,255,255,.1);color:#fff;border:none;font-size:30px;z-index:5}
.gnav.prev{left:3px}.gnav.next{right:3px}
.gbar{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom));display:flex;gap:9px;align-items:center;flex-wrap:wrap;justify-content:center;padding:0 10px}
.gbtn{background:rgba(255,255,255,.14);color:#fff;border-radius:20px;padding:10px 18px;font-size:13px;text-decoration:none;cursor:pointer;border:none;min-height:40px;display:inline-flex;align-items:center;transition:background .18s}
.gbtn:active{background:rgba(255,255,255,.3)}
#gCount{color:#c3cde0;font-size:13px;font-variant-numeric:tabular-nums;padding:0 4px}
.toast{position:fixed;left:50%;bottom:calc(var(--nav) + env(safe-area-inset-bottom) + 22px);transform:translateX(-50%) translateY(8px);background:rgba(28,35,48,.95);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;padding:11px 22px;border-radius:24px;font-size:13px;z-index:90;opacity:0;transition:opacity .22s,transform .22s var(--ease);pointer-events:none;max-width:86vw;text-align:center}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
