@font-face{font-family: "QC Serif";src: url(/assets/fonts/qc-serif.536e0d14.woff2) format("woff2");font-weight: 600;font-style: normal;font-display: swap}:root{--bg: #F3F7FD;--bg-2: #E9F0FA;--surface: #FFFFFF;--surface-2: #F7FAFE;--ink: #0F1B2E;--ink-2: #3D4B60;--muted: #7D899B;--line: rgba(20,50,100,.08);--line-2: rgba(20,50,100,.15);--accent: #1F5FD6;--accent-soft: rgba(31,95,214,.08);--on-accent: #fff;--logo: #145199;--glow-1: rgba(84,150,255,.20);--glow-2: rgba(110,220,255,.20);--tile-s: 90%;--tile-l: 95%;--tile-fg-s: 68%;--tile-fg-l: 46%;--shadow: 0 1px 2px rgba(20,50,100,.05),0 10px 28px -14px rgba(20,50,100,.22);--shadow-lg: 0 2px 6px rgba(20,50,100,.05),0 22px 44px -22px rgba(20,50,100,.35);--g-news: linear-gradient(135deg,#1A4FD6 0%,#2E7BF6 55%,#5DB9FF 100%);--g-rank: linear-gradient(135deg,#4636C9 0%,#7A5FF3 60%,#A893FF 100%);--g-github: linear-gradient(135deg,#0C2C4C 0%,#135F7B 58%,#1D9FA6 100%);--g-club: linear-gradient(135deg,#0E66D0 0%,#1F9FE6 58%,#63DCF3 100%);--serif: "QC Serif","Noto Serif SC","Source Han Serif SC","Songti SC","STSong",serif;--sans: -apple-system,BlinkMacSystemFont,"PingFang SC","HarmonyOS Sans SC","MiSans","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif;--mono: ui-monospace,"SF Mono","Cascadia Code",Consolas,monospace;--side-w: 252px;--gutter: clamp(16px,3.6vw,48px);--top-h: 66px;--r: 16px;color-scheme: light}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg: #0B111D;--bg-2: #131B2B;--surface: #121A28;--surface-2: #162032;--ink: #E8EDF6;--ink-2: #B9C3D3;--muted: #8290A6;--line: rgba(200,220,255,.08);--line-2: rgba(200,220,255,.16);--accent: #6FA2FF;--accent-soft: rgba(111,162,255,.13);--on-accent: #0B111D;--logo: #8DB4FF;--glow-1: rgba(60,120,255,.16);--glow-2: rgba(40,190,230,.10);--tile-s: 45%;--tile-l: 18%;--tile-fg-s: 85%;--tile-fg-l: 74%;--shadow: 0 1px 2px rgba(0,0,0,.3),0 12px 30px -14px rgba(0,0,0,.7);--shadow-lg: 0 2px 6px rgba(0,0,0,.3),0 22px 44px -22px rgba(0,0,0,.8);color-scheme: dark}}:root[data-theme="dark"]{--bg: #0B111D;--bg-2: #131B2B;--surface: #121A28;--surface-2: #162032;--ink: #E8EDF6;--ink-2: #B9C3D3;--muted: #8290A6;--line: rgba(200,220,255,.08);--line-2: rgba(200,220,255,.16);--accent: #6FA2FF;--accent-soft: rgba(111,162,255,.13);--on-accent: #0B111D;--logo: #8DB4FF;--glow-1: rgba(60,120,255,.16);--glow-2: rgba(40,190,230,.10);--tile-s: 45%;--tile-l: 18%;--tile-fg-s: 85%;--tile-fg-l: 74%;--shadow: 0 1px 2px rgba(0,0,0,.3),0 12px 30px -14px rgba(0,0,0,.7);--shadow-lg: 0 2px 6px rgba(0,0,0,.3),0 22px 44px -22px rgba(0,0,0,.8);color-scheme: dark}*,*::before,*::after{box-sizing: border-box}html{-webkit-text-size-adjust: 100%;scroll-behavior: smooth;scroll-padding-top: calc(var(--top-h) + 16px)}body{margin: 0;min-height: 100vh;background: radial-gradient(900px 440px at 88% -140px,var(--glow-1),transparent 70%),radial-gradient(760px 380px at 18% -160px,var(--glow-2),transparent 70%),var(--bg);background-repeat: no-repeat;color: var(--ink);font: 15px/1.65 var(--sans);-webkit-font-smoothing: antialiased;overflow-x: hidden}h1,h2,h3,h4,p,ol,ul,figure{margin: 0}ol,ul{padding: 0;list-style: none}a{color: inherit;text-decoration: none}img{display: block;max-width: 100%;height: auto}button{font: inherit;color: inherit}.serif{font-family: var(--serif);font-weight: 600;letter-spacing: .01em}.sans{font-family: var(--sans);font-weight: 700;letter-spacing: -.01em}::selection{background: #C6E6FF;color: #0B1F3F}:focus-visible{outline: 2px solid var(--accent);outline-offset: 2px;border-radius: 8px}.skip{position: absolute;left: -9999px;top: 12px;z-index: 100;background: var(--ink);color: var(--bg);padding: 8px 14px;border-radius: 8px}.skip:focus{left: 12px}.sprite{position: absolute;width: 0;height: 0;overflow: hidden}.i{width: 1.1em;height: 1.1em;flex: none;fill: none;stroke: currentColor;stroke-width: 1.8;stroke-linecap: round;stroke-linejoin: round}.i-fill{fill: currentColor;stroke: none}.logo{width: 34px;height: auto;fill: var(--logo);flex: none}.tile{--t: 40px;width: var(--t);height: var(--t);flex: none;display: inline-grid;place-items: center;border-radius: 12px;background: hsl(var(--h) var(--tile-s) var(--tile-l));color: hsl(var(--h) var(--tile-fg-s) var(--tile-fg-l))}.tile .i{width: 52%;height: 52%;stroke-width: 1.9}.tile.sm{--t: 28px;border-radius: 9px}.tile.lg{--t: 50px;border-radius: 15px}.shell{display: grid;grid-template-columns: var(--side-w) minmax(0,1fr);min-height: 100vh}.main-col{min-width: 0;display: flex;flex-direction: column}main{flex: 1;width: 100%;max-width: 1400px;padding: 6px var(--gutter) 40px}.side{position: sticky;top: 0;height: 100vh;overflow-y: auto;scrollbar-width: thin;display: flex;flex-direction: column;gap: 18px;padding: 22px 14px 16px;background: var(--surface);border-right: 1px solid var(--line)}.brand{display: flex;align-items: center;gap: 11px;padding: 2px 10px 6px}.brand-t{display: flex;flex-direction: column;line-height: 1.1}.brand-t b{font-size: 21px}.brand-t small{font-size: 11px;letter-spacing: .38em;color: var(--muted);margin-top: 5px}.side-nav{display: flex;flex-direction: column;gap: 3px}.side-label{font-size: 11.5px;font-weight: 600;letter-spacing: .16em;color: var(--muted);margin: 14px 12px 6px}.side-nav a{position: relative;display: flex;align-items: center;gap: 11px;padding: 7px 10px;border-radius: 12px;color: var(--ink-2);font-size: 14.5px;transition: background .18s,color .18s}.side-nav a .tile{transition: transform .18s}.side-nav a:hover{background: var(--bg-2);color: var(--ink)}.side-nav a:hover .tile{transform: scale(1.06)}.side-nav a[aria-current]{background: hsl(var(--h) 88% 93%);color: hsl(var(--h) var(--tile-fg-s) calc(var(--tile-fg-l) - 6%));font-weight: 700;box-shadow: inset 0 0 0 1px hsl(var(--h) 70% 50% / .22)}.side-nav a[aria-current] .tile{background: hsl(var(--h) 72% 52%);color: #fff}.side-nav a[aria-current]::before{content: "";position: absolute;left: -14px;top: 8px;bottom: 8px;width: 4px;border-radius: 0 4px 4px 0;background: hsl(var(--h) 72% 52%)}.side-cta{margin-top: auto;display: flex;align-items: center;gap: 10px;padding: 12px;border-radius: 16px;background: linear-gradient(135deg,hsl(200 90% 96%),hsl(220 90% 96%));border: 1px solid hsl(210 70% 50% / .15);transition: transform .2s}:root[data-theme="dark"] .side-cta{background: var(--surface-2)}.side-cta:hover{transform: translateY(-1px)}.side-cta>span:not(.tile){display: flex;flex-direction: column;min-width: 0;line-height: 1.35;flex: 1}.side-cta b{font-size: 14px}.side-cta b,.side-cta small{white-space: nowrap}.side-cta small{font-size: 12px;color: var(--muted)}.side-cta>.i{color: var(--accent)}.scrim{position: fixed;inset: 0;z-index: 40;background: rgba(8,16,32,.42)}.scrim[hidden]{display: none}.top{position: sticky;top: 0;z-index: 30;height: var(--top-h);display: flex;align-items: center;justify-content: flex-end;gap: 10px;padding: 0 var(--gutter);background: color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter: saturate(1.6) blur(14px);backdrop-filter: saturate(1.6) blur(14px);border-bottom: 1px solid transparent;transition: border-color .2s}.top.scrolled{border-bottom-color: var(--line)}.top .menu-btn,.top .top-brand{display: none}.top-brand .logo{width: 30px}.icon-btn{width: 40px;height: 40px;display: grid;place-items: center;border: 1px solid var(--line-2);border-radius: 12px;background: var(--surface);cursor: pointer;color: var(--ink-2);transition: border-color .2s,color .2s}.icon-btn:hover{border-color: var(--accent);color: var(--accent)}.icon-btn .i{width: 18px;height: 18px}.i[data-when="dark"]{display: none}:root[data-theme="dark"] .i[data-when="dark"]{display: block}:root[data-theme="dark"] .i[data-when="light"]{display: none}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .i[data-when="dark"]{display: block}:root:not([data-theme="light"]) .i[data-when="light"]{display: none}}.search{position: relative;width: min(400px,100%);display: flex;align-items: center}.search>.i{position: absolute;left: 14px;color: var(--muted);pointer-events: none}.search input{width: 100%;height: 42px;padding: 0 40px;border: 1px solid var(--line-2);border-radius: 13px;background: var(--surface);color: var(--ink);font: 14px var(--sans);outline: none;box-shadow: 0 1px 2px rgba(20,50,100,.04);transition: border-color .2s,box-shadow .2s;-webkit-appearance: none;appearance: none}.search input::placeholder{color: var(--muted)}.search input::-webkit-search-cancel-button{display: none}.search input:focus{border-color: var(--accent);box-shadow: 0 0 0 4px var(--accent-soft)}.search kbd{position: absolute;right: 12px;min-width: 22px;height: 22px;display: grid;place-items: center;border: 1px solid var(--line-2);border-radius: 6px;font: 12px var(--mono);color: var(--muted);pointer-events: none;background: var(--surface-2)}.search input:focus ~ kbd{opacity: 0}.search-pop{position: absolute;top: 50px;right: 0;width: min(560px,calc(100vw - 32px));max-height: min(62vh,560px);overflow-y: auto;padding: 6px;background: var(--surface);border: 1px solid var(--line-2);border-radius: 16px;box-shadow: var(--shadow-lg)}.search-pop[hidden]{display: none}.search-pop a{display: grid;grid-template-columns: minmax(0,1fr) auto;gap: 2px 12px;padding: 10px 12px;border-radius: 10px}.search-pop a:hover,.search-pop a.on{background: var(--accent-soft)}.search-pop b{font-size: 14.5px;font-weight: 600;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.search-pop em{font-style: normal;font-size: 11.5px;padding: 1px 8px;border-radius: 999px;background: var(--bg-2);color: var(--accent);align-self: center;white-space: nowrap}.search-pop span{grid-column: 1 / -1;font-size: 12.5px;color: var(--muted);overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.search-empty{padding: 18px 14px;color: var(--muted);font-size: 14px}.bento{display: grid;grid-template-columns: minmax(0,1.7fr) minmax(0,1.4fr) minmax(0,1fr);gap: 16px;margin-top: 10px}.b{position: relative;display: flex;flex-direction: column;min-width: 0;background: var(--surface);border: 1px solid var(--line);border-radius: 22px;overflow: hidden;box-shadow: var(--shadow)}.b-news{grid-row: span 2}.b-gh{grid-row: span 2}.b>ol,.b>ul{padding: 4px 20px 0}.b-more{margin: auto 20px 0;padding: 14px 0 18px;display: inline-flex;align-items: center;gap: 6px;align-self: flex-start;font-size: 13px;font-weight: 600;color: var(--accent)}.b-more .i,.bn-more .i,.more .i{transition: transform .2s}.b-more:hover .i{transform: translateX(3px)}.bn{position: relative;display: flex;flex-direction: column;justify-content: flex-end;min-height: 128px;padding: 18px 20px;color: #fff;overflow: hidden;isolation: isolate}.bn::after{content: "";position: absolute;inset: 0;z-index: -1;background: radial-gradient(circle at 1px 1px,rgba(255,255,255,.22) 1px,transparent 0) 0 0 / 16px 16px;-webkit-mask-image: linear-gradient(90deg,transparent 30%,#000);mask-image: linear-gradient(90deg,transparent 30%,#000)}.bn-news{background: var(--g-news)}.bn-rank{background: var(--g-rank)}.bn-github{background: var(--g-github)}.bn-club{background: var(--g-club)}.bn-k{position: relative;z-index: 1;font-size: 11.5px;font-weight: 700;letter-spacing: .18em;text-transform: uppercase;opacity: .82}.bn h2{position: relative;z-index: 1;margin-top: 4px;font-size: 26px;line-height: 1.15}.bn-more{position: relative;z-index: 1;align-self: flex-start;margin-top: 10px;display: inline-flex;align-items: center;gap: 6px;height: 34px;padding: 0 15px;border-radius: 10px;background: #fff;color: #1A4FD6;font-size: 13.5px;font-weight: 700;box-shadow: 0 8px 18px -8px rgba(0,0,0,.55);transition: transform .2s,box-shadow .2s}.bn:hover .bn-more{transform: translateY(-1px);box-shadow: 0 12px 22px -8px rgba(0,0,0,.65)}.bn-rank .bn-more{color: #4636C9}.bn-github .bn-more{color: #0C5A72}.bn-chip{position: absolute;z-index: 1;top: 16px;right: 16px;height: 24px;display: inline-flex;align-items: center;padding: 0 10px;border-radius: 999px;background: rgba(255,255,255,.22);font-size: 12px;font-weight: 600}.bn-art{position: absolute;z-index: -1;right: 0;top: 0;height: 100%;width: auto;max-width: 78%;pointer-events: none;transition: transform .5s cubic-bezier(.2,.8,.2,1)}.bn:hover .bn-art{transform: translateX(-4px) scale(1.02)}.bn:hover .bn-more .i{transform: translateX(3px)}.b-rank .bn-art,.b-gh .bn-art{max-width: 92%}.b-news-list li a{display: grid;grid-template-columns: auto minmax(0,1fr);gap: 3px 10px;padding: 13px 0;border-top: 1px solid var(--line)}.b-news-list li:first-child a{border-top: 0}.b-news-list b{font-size: 15px;font-weight: 600;line-height: 1.45;transition: color .2s}.b-news-list .sum{grid-column: 2;font-size: 13px;color: var(--muted);display: -webkit-box;-webkit-line-clamp: 1;-webkit-box-orient: vertical;overflow: hidden}.b-news-list li:first-child .sum{-webkit-line-clamp: 2}.b-news-list a:hover b{color: var(--accent)}.tag{display: inline-flex;align-items: center;height: 21px;padding: 0 8px;border-radius: 6px;background: var(--accent-soft);color: var(--accent);font-size: 11.5px;font-weight: 700;white-space: nowrap;margin-top: 1px}.rank-mini li{position: relative;display: grid;grid-template-columns: 24px minmax(0,1fr) auto;align-items: center;gap: 10px;padding: 10px 0 12px;border-top: 1px solid var(--line)}.rank-mini li:first-child{border-top: 0}.rank-mini i{width: 22px;height: 22px;display: grid;place-items: center;border-radius: 7px;background: var(--bg-2);font: 700 12px/1 var(--sans);font-style: normal;color: var(--muted)}.rank-mini li:nth-child(1) i{background: #FFD166;color: #5B3B00}.rank-mini li:nth-child(2) i{background: #DCE3EE;color: #38465A}.rank-mini li:nth-child(3) i{background: #F2C9A0;color: #5C3511}.rank-mini .m{min-width: 0;font-size: 13.5px;font-weight: 600;line-height: 1.3;overflow-wrap: anywhere}.rank-mini small{display: block;font-size: 11.5px;font-weight: 400;color: var(--muted)}.rank-mini b{font: 700 14px var(--sans);font-variant-numeric: tabular-nums}.rank-mini .bar{position: absolute;left: 34px;bottom: 4px;height: 3px;width: calc((100% - 34px) * var(--w) / 100);border-radius: 3px;background: linear-gradient(90deg,#7A5FF3,#A893FF);opacity: .3}.rank-mini li:first-child .bar{opacity: .9}.gh-mini li a{display: flex;align-items: center;justify-content: space-between;gap: 10px;padding: 12px 0;border-top: 1px solid var(--line)}.gh-mini li:first-child a{border-top: 0}.gh-n{min-width: 0;display: flex;flex-direction: column;line-height: 1.35}.gh-n b{font-size: 13.5px;font-weight: 600;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden;transition: color .2s}.gh-n small{font: 11.5px var(--mono);color: var(--muted);overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.gh-s{flex: none;display: inline-flex;align-items: center;gap: 3px;font-size: 12px;font-weight: 600;color: #B7791F;font-variant-numeric: tabular-nums}.gh-s .i{width: 13px;height: 13px;fill: #F6C344;stroke: #E0A82E}.gh-mini a:hover b{color: var(--accent)}.b-club{padding: 16px 18px;min-height: 150px;background: var(--g-club);border-color: transparent;color: #fff;transition: transform .25s,box-shadow .25s;isolation: isolate}.b-club:hover{transform: translateY(-2px);box-shadow: var(--shadow-lg)}.b-club h2{position: relative;z-index: 1;font-size: 22px;line-height: 1.2;margin: 2px 0 4px}.b-club p{position: relative;z-index: 1;max-width: 60%;font-size: 12.5px;line-height: 1.6;color: rgba(255,255,255,.86)}.btn-ghost{position: relative;z-index: 1;margin-top: auto;padding-top: 0;align-self: flex-start;display: inline-flex;align-items: center;gap: 6px;height: 32px;padding: 0 14px;border-radius: 999px;background: #fff;color: #0E66D0;font-size: 13px;font-weight: 700}.b-club .club-art{top: auto;bottom: 0;height: 66%;max-width: 50%}.sec{padding-top: 64px}.sec-head{display: grid;grid-template-columns: auto minmax(0,1fr) auto;align-items: center;gap: 8px 16px;padding: 0 0 18px;margin-bottom: 22px;border-bottom: 1px solid var(--line-2)}.sec-title h2{font-size: clamp(24px,2.6vw,32px);line-height: 1.15}.sec-en{display: flex;align-items: center;gap: 8px;margin-bottom: 3px;font-size: 11.5px;font-weight: 600;letter-spacing: .16em;text-transform: uppercase;color: var(--muted)}.sec-en b{color: hsl(var(--h) 70% 50%)}.count{justify-self: end;height: 28px;display: inline-flex;align-items: center;padding: 0 12px;border-radius: 999px;background: hsl(var(--h) var(--tile-s) var(--tile-l));color: hsl(var(--h) var(--tile-fg-s) var(--tile-fg-l));font-size: 12.5px;font-weight: 700}.sec-intro{grid-column: 1 / -1;max-width: 720px;font-size: 14.5px;color: var(--ink-2)}.group + .group{margin-top: 30px}.group-t{display: flex;align-items: center;gap: 10px;margin: 28px 0 14px;font-size: 16px;font-weight: 700}.group:first-of-type .group-t{margin-top: 0}.group-t i{font: 600 12px var(--sans);font-style: normal;color: var(--muted);padding: 1px 8px;border-radius: 999px;background: var(--bg-2)}.group-t::after{content: "";flex: 1;height: 1px;background: var(--line)}.ico{width: 40px;height: 40px;flex: none;border-radius: 12px;object-fit: contain}img.ico{padding: 5px;background: #fff;box-shadow: inset 0 0 0 1px rgba(20,50,100,.08)}.mono{display: grid;place-items: center;background: hsl(var(--h) 75% 93%);color: hsl(var(--h) 55% 34%);font: 700 17px/1 var(--sans)}:root[data-theme="dark"] .mono{background: hsl(var(--h) 30% 20%);color: hsl(var(--h) 70% 80%)}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .mono{background: hsl(var(--h) 30% 20%);color: hsl(var(--h) 70% 80%)}}.app-grid{display: grid;grid-template-columns: repeat(auto-fit,minmax(min(100%,400px),1fr));gap: 20px}.app-card{display: flex;flex-direction: column;background: var(--surface);border: 1px solid var(--line);border-radius: 22px;overflow: hidden;box-shadow: var(--shadow);transition: transform .25s,box-shadow .25s}.app-card:hover{transform: translateY(-3px);box-shadow: var(--shadow-lg)}.app-cover{aspect-ratio: 16 / 9;overflow: hidden;background: var(--bg-2)}.app-cover img{width: 100%;height: 100%;object-fit: cover;transition: transform .6s}.app-card:hover .app-cover img{transform: scale(1.03)}.cover-ph{position: relative;width: 100%;height: 100%;display: flex;flex-direction: column;align-items: center;justify-content: center;gap: 10px;color: #fff;background: radial-gradient(120% 90% at 85% 10%,rgba(192,248,254,.9) 0,rgba(192,248,254,0) 46%),linear-gradient(135deg,#0F3B7D 0%,#1F5FD6 50%,#4E9BEA 100%);overflow: hidden}.app-grid>:nth-child(2n) .cover-ph{background: radial-gradient(110% 80% at 15% 90%,rgba(170,150,255,.7) 0,rgba(170,150,255,0) 50%),linear-gradient(160deg,#1B1F3B 0%,#3B3A8F 60%,#6E62E5 100%)}.cover-logo{width: 20%;fill: rgba(255,255,255,.95);filter: drop-shadow(0 10px 30px rgba(0,0,0,.25))}.cover-ph span{font-size: clamp(18px,2.2vw,26px);font-weight: 700;letter-spacing: .06em}.cover-ph small{font-size: 12px;letter-spacing: .2em;text-transform: uppercase;opacity: .78}.cover-ph::after{content: "";position: absolute;inset: 0;background-image: linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size: 28px 28px;-webkit-mask-image: radial-gradient(circle at 50% 50%,#000,transparent 75%);mask-image: radial-gradient(circle at 50% 50%,#000,transparent 75%)}.app-body{display: flex;flex-direction: column;gap: 6px;padding: 20px 22px 22px;flex: 1}.app-meta{display: flex;flex-wrap: wrap;align-items: center;gap: 8px 12px;font-size: 12.5px;color: var(--muted)}.badge{display: inline-flex;align-items: center;gap: 6px;height: 23px;padding: 0 10px;border-radius: 999px;background: var(--bg-2);color: var(--ink-2);font-size: 12px;font-weight: 600}.badge.on{background: hsl(150 60% 93%);color: hsl(150 55% 30%)}:root[data-theme="dark"] .badge.on{background: hsl(150 30% 18%);color: hsl(150 60% 70%)}.badge.on::before{content: "";width: 6px;height: 6px;border-radius: 50%;background: #2FA36B;box-shadow: 0 0 0 3px rgba(47,163,107,.2)}.app-body h3{margin-top: 6px;font-size: 22px;line-height: 1.25;font-weight: 700}.app-tagline{color: var(--accent);font-size: 15px;font-weight: 600}.app-sum{margin-top: 2px;color: var(--ink-2);font-size: 14px}.more{margin-top: auto;padding-top: 12px;display: inline-flex;align-items: center;gap: 6px;font-size: 13.5px;font-weight: 600;color: var(--accent)}.app-card:hover .more .i,a:hover>.more .i{transform: translateX(3px)}.card-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(min(100%,248px),1fr));gap: 14px}.card{position: relative;display: flex;flex-direction: column;gap: 10px;padding: 18px;background: var(--surface);border: 1px solid var(--line);border-radius: var(--r);transition: transform .22s,box-shadow .22s,border-color .22s}.card:hover{transform: translateY(-2px);box-shadow: var(--shadow);border-color: var(--line-2)}.card-h{display: flex;align-items: center;gap: 12px;min-width: 0}.card-h h4{font-size: 16px;font-weight: 700;line-height: 1.3;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.card:hover h4{color: var(--accent)}.card-d{font-size: 13.5px;line-height: 1.65;color: var(--ink-2);display: -webkit-box;-webkit-line-clamp: var(--lines,3);-webkit-box-orient: vertical;overflow: hidden}.card-f{margin-top: auto;display: flex;align-items: center;justify-content: space-between;gap: 8px;min-height: 24px}.card-go{width: 26px;height: 26px;flex: none;display: grid;place-items: center;margin-left: auto;border-radius: 8px;color: var(--accent);background: var(--accent-soft);opacity: 0;transform: translateX(-4px);transition: opacity .2s,transform .2s}.card:hover .card-go,.feat:hover .card-go{opacity: 1;transform: none}.tags{display: flex;flex-wrap: wrap;gap: 6px}.tags span{padding: 2px 9px;border-radius: 999px;background: var(--bg-2);font-size: 11.5px;color: var(--ink-2)}.feat-grid{display: grid;grid-template-columns: repeat(auto-fit,minmax(min(100%,380px),1fr));gap: 16px}.feat{position: relative;display: grid;grid-template-columns: auto minmax(0,1fr);gap: 18px;padding: 22px 24px;border-radius: 20px;border: 1px solid hsl(var(--h) 70% 50% / .18);background: linear-gradient(135deg,hsl(var(--h) 90% 97%),var(--surface) 60%);transition: transform .25s,box-shadow .25s;overflow: hidden}:root[data-theme="dark"] .feat{background: linear-gradient(135deg,hsl(var(--h) 35% 16%),var(--surface) 60%)}.feat::after{content: "";position: absolute;right: -40px;top: -40px;width: 140px;height: 140px;border-radius: 50%;background: hsl(var(--h) 85% 60% / .12)}.feat:hover{transform: translateY(-2px);box-shadow: var(--shadow)}.feat .ico{width: 56px;height: 56px;border-radius: 16px;font-size: 22px}.feat img.ico{padding: 8px}.feat h3{font-size: 20px;line-height: 1.25;font-weight: 700}.feat p{margin: 6px 0 12px;font-size: 14px;color: var(--ink-2)}.feat .card-go{position: absolute;right: 16px;bottom: 16px}.tabs{margin-top: 4px}.tab-bar{position: sticky;top: var(--top-h);z-index: 5;display: flex;gap: 6px;margin: 0 calc(var(--gutter) * -1) 16px;padding: 10px var(--gutter);overflow-x: auto;scrollbar-width: none;background: color-mix(in srgb,var(--bg) 90%,transparent);-webkit-backdrop-filter: blur(12px);backdrop-filter: blur(12px)}.tab-bar::-webkit-scrollbar{display: none}.tab-bar [role="tab"]{flex: none;display: inline-flex;align-items: center;gap: 6px;height: 36px;padding: 0 13px;border: 1px solid var(--line-2);border-radius: 11px;background: var(--surface);color: var(--ink-2);font-size: 14px;font-weight: 600;cursor: pointer;white-space: nowrap;transition: background .18s,color .18s,border-color .18s}.tab-bar [role="tab"] .i{width: 16px;height: 16px;color: hsl(var(--h) 65% 50%)}.tab-bar [role="tab"]:hover{border-color: hsl(var(--h) 65% 50% / .5);color: var(--ink)}.tab-bar [aria-selected="true"],.tab-bar [aria-selected="true"]:hover{background: hsl(var(--h) 68% 50%);border-color: transparent;color: #fff;box-shadow: 0 6px 16px -8px hsl(var(--h) 70% 45% / .8)}.tab-bar [aria-selected="true"] .i{color: #fff}.tab-bar sup{font-size: 11px;font-weight: 600;opacity: .65;vertical-align: 5px}.tool-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(min(100%,236px),1fr));gap: 10px}.tool-grid[hidden]{display: none}.tool{display: flex;gap: 12px;padding: 14px;min-width: 0;background: var(--surface);border: 1px solid var(--line);border-radius: 14px;transition: border-color .2s,box-shadow .2s,transform .2s}.tool:hover{border-color: var(--line-2);box-shadow: var(--shadow);transform: translateY(-1px)}.tool .ico{width: 36px;height: 36px;border-radius: 10px;font-size: 15px}.tool img.ico{padding: 4px}.tool-t{min-width: 0}.tool h4{display: flex;align-items: center;gap: 4px;font-size: 14.5px;font-weight: 700;line-height: 1.35;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.tool h4 .i{width: 12px;height: 12px;color: var(--muted)}.tool p{margin-top: 2px;font-size: 12.5px;line-height: 1.55;color: var(--muted);display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden}.tool:hover h4{color: var(--accent)}.btn{display: inline-flex;align-items: center;justify-content: center;gap: 8px;height: 46px;padding: 0 22px;border: 0;border-radius: 13px;background: var(--accent);color: var(--on-accent);font-size: 15px;font-weight: 700;white-space: nowrap;cursor: pointer;box-shadow: 0 8px 20px -10px rgba(31,95,214,.8);transition: transform .2s,box-shadow .2s,filter .2s}.btn:hover{transform: translateY(-1px);filter: brightness(1.06);box-shadow: 0 12px 26px -10px rgba(31,95,214,.9)}.btn.is-off{opacity: .45;cursor: not-allowed;transform: none;box-shadow: none}.btn-line{display: inline-flex;align-items: center;gap: 6px;height: 46px;padding: 0 20px;border: 1px solid var(--line-2);border-radius: 13px;background: var(--surface);font-size: 14.5px;font-weight: 600;transition: border-color .2s,color .2s}.btn-line:hover{border-color: var(--accent);color: var(--accent)}.back{display: inline-flex;align-items: center;gap: 6px;height: 34px;padding: 0 14px 0 10px;border: 1px solid var(--line-2);border-radius: 10px;background: var(--surface);font-size: 13.5px;font-weight: 600;color: var(--ink-2);transition: border-color .2s,color .2s}.back:hover{border-color: var(--accent);color: var(--accent)}.back .i{transition: transform .2s}.back:hover .i{transform: translateX(-2px)}.detail{max-width: 1060px;padding-top: 12px}.d-top{display: flex;flex-wrap: wrap;align-items: center;gap: 10px 16px}.crumb{display: flex;flex-wrap: wrap;gap: 8px;font-size: 13px;color: var(--muted)}.crumb a:hover{color: var(--accent)}.d-head{display: grid;grid-template-columns: auto minmax(0,1fr) auto;gap: 24px;align-items: start;margin-top: 18px;padding: 28px;background: var(--surface);border: 1px solid var(--line);border-radius: 22px;box-shadow: var(--shadow)}.d-head .ico{width: 80px;height: 80px;border-radius: 22px;font-size: 32px}.d-head img.ico{padding: 11px}.d-kicker{display: inline-flex;align-items: center;gap: 6px;height: 26px;padding: 0 10px;border-radius: 999px;background: hsl(var(--h) var(--tile-s) var(--tile-l));color: hsl(var(--h) var(--tile-fg-s) var(--tile-fg-l));font-size: 12.5px;font-weight: 700}.d-kicker .i{width: 14px;height: 14px}.d-title h1{margin: 10px 0 8px;font-size: clamp(30px,4.4vw,46px);line-height: 1.1}.d-desc{max-width: 640px;font-size: 16px;color: var(--ink-2)}.d-title .tags{margin-top: 14px}.d-cta{display: flex;flex-direction: column;align-items: flex-end;gap: 8px}.d-host{font: 12px var(--mono);color: var(--muted)}.d-shot{margin: 22px 0 0;border: 1px solid var(--line-2);border-radius: 18px;overflow: hidden;background: var(--surface);box-shadow: var(--shadow)}.frame{display: flex;align-items: center;gap: 6px;height: 36px;padding: 0 14px;border-bottom: 1px solid var(--line);background: var(--surface-2)}.frame i{width: 10px;height: 10px;border-radius: 50%;background: #FF6B6B}.frame i:nth-child(2){background: #FFC94D}.frame i:nth-child(3){background: #3DD68C}.frame span{margin-left: 10px;font: 11.5px var(--mono);color: var(--muted)}.d-shot img{width: 100%}.d-body{display: grid;gap: 16px;margin-top: 22px}.d-sec{padding: 22px 24px;background: var(--surface);border: 1px solid var(--line);border-radius: 18px}.d-sec h2{display: flex;align-items: center;gap: 10px;margin-bottom: 12px;font-size: 17px;font-weight: 700}.d-sec p{font-size: 15.5px;line-height: 1.9;color: var(--ink-2)}.d-sec p + p{margin-top: .7em}.hl{display: grid;gap: 10px}.hl li{display: flex;gap: 10px;font-size: 15px;color: var(--ink-2)}.hl li .i{margin-top: 4px;width: 18px;height: 18px;padding: 3px;border-radius: 6px;background: hsl(150 60% 92%);color: hsl(150 55% 35%);stroke-width: 2.6}:root[data-theme="dark"] .hl li .i{background: hsl(150 30% 18%);color: hsl(150 60% 65%)}.d-note{margin-top: 16px;font-size: 12.5px;color: var(--muted)}.d-related{margin-top: 34px}.d-related h2{margin-bottom: 14px;font-size: 18px;font-weight: 700}.app-hero{display: grid;grid-template-columns: minmax(0,1fr) minmax(0,1.15fr);gap: clamp(24px,4vw,48px);align-items: center;margin-top: 18px;padding: 30px;background: var(--surface);border: 1px solid var(--line);border-radius: 24px;box-shadow: var(--shadow)}.app-hero h1{margin: 12px 0 6px;font-size: clamp(36px,5vw,58px);line-height: 1.05}.app-hero .app-tagline{font-size: 18px;margin-bottom: 12px}.app-hero-cover{aspect-ratio: 16 / 10;border-radius: 18px;overflow: hidden}.app-hero-cover img{width: 100%;height: 100%;object-fit: cover}.dl{display: flex;flex-wrap: wrap;align-items: center;gap: 12px;margin-top: 24px}.dl small{font-size: 12px;color: var(--muted)}.feat-list{display: grid;grid-template-columns: repeat(auto-fit,minmax(min(100%,240px),1fr));gap: 14px;margin-top: 16px}.feat-list>div{padding: 22px;background: var(--surface);border: 1px solid var(--line);border-radius: 18px}.feat-list h3{margin: 12px 0 6px;font-size: 17px;font-weight: 700}.feat-list p{font-size: 14px;color: var(--ink-2)}.app-cols{display: grid;grid-template-columns: minmax(0,1.1fr) minmax(0,1fr);gap: 16px;margin-top: 16px;align-items: start}.app-cols .d-body{margin-top: 0;padding: 22px 24px;background: var(--surface);border: 1px solid var(--line);border-radius: 18px}.tl-sec{padding: 22px 24px;background: var(--surface);border: 1px solid var(--line);border-radius: 18px}.tl-sec>h2{display: flex;align-items: center;gap: 10px;margin-bottom: 18px;font-size: 17px;font-weight: 700}.tl{position: relative;display: grid;gap: 22px;padding-left: 22px}.tl::before{content: "";position: absolute;left: 6px;top: 6px;bottom: 6px;width: 2px;border-radius: 2px;background: linear-gradient(var(--accent),var(--line-2))}.tl>li{position: relative}.tl>li::before{content: "";position: absolute;left: -22px;top: 4px;width: 14px;height: 14px;border-radius: 50%;background: var(--surface);border: 3px solid var(--accent)}.tl>li.up::before{border-style: dashed;border-color: #F59E0B}.tl-meta{display: flex;align-items: center;gap: 10px}.ver{height: 22px;display: inline-flex;align-items: center;padding: 0 9px;border-radius: 7px;background: var(--accent-soft);color: var(--accent);font: 700 12px var(--sans)}.up .ver{background: hsl(40 95% 92%);color: hsl(30 80% 38%)}.tl-meta time{font: 12.5px var(--mono);color: var(--muted)}.tl-body h3{margin: 6px 0 4px;font-size: 15.5px;font-weight: 700}.tl-body li{position: relative;padding-left: 14px;font-size: 14px;color: var(--ink-2)}.tl-body li::before{content: "";position: absolute;left: 2px;top: .75em;width: 5px;height: 5px;border-radius: 50%;background: var(--line-2)}.tl-empty{font-size: 14px;color: var(--muted)}.shots{margin-top: 28px}.shots h2{font-size: 18px;margin-bottom: 14px}.shot-row{display: grid;grid-auto-flow: column;grid-auto-columns: minmax(280px,70%);gap: 16px;overflow-x: auto;padding-bottom: 10px;scroll-snap-type: x mandatory}.shot-row figure{scroll-snap-align: start;border: 1px solid var(--line);border-radius: 14px;overflow: hidden;background: var(--surface)}.shot-row figcaption{padding: 10px 14px;font-size: 13px;color: var(--muted)}.prose p{font-size: 15.5px;line-height: 1.9;color: var(--ink-2);margin-bottom: 1em}.prose p:last-child{margin-bottom: 0}.prose blockquote{margin: 0 0 1.1em;padding: 12px 16px;border-left: 3px solid var(--accent);background: var(--accent-soft);border-radius: 0 10px 10px 0}.prose blockquote p{margin: 0;color: var(--ink)}.prose a{color: var(--accent);text-decoration: underline;text-underline-offset: 3px}.page{max-width: 1000px;padding-top: 12px}.p-head{position: relative;display: flex;align-items: flex-end;min-height: 200px;margin: 16px 0 22px;padding: 30px;border-radius: 24px;color: #fff;overflow: hidden;isolation: isolate;box-shadow: var(--shadow)}.p-head::after{content: "";position: absolute;inset: 0;z-index: -1;background: radial-gradient(circle at 1px 1px,rgba(255,255,255,.2) 1px,transparent 0) 0 0 / 18px 18px;-webkit-mask-image: linear-gradient(90deg,transparent 35%,#000);mask-image: linear-gradient(90deg,transparent 35%,#000)}.p-head-t{position: relative;z-index: 1;max-width: 62%}.p-head h1{margin: 6px 0 10px;font-size: clamp(34px,5vw,54px);line-height: 1.05}.p-intro{font-size: 15px;color: inherit;opacity: .9}.page.nf .p-intro,.page .p-intro.dark{color: var(--ink-2);opacity: 1}.p-src{margin-top: 10px;font-size: 12.5px;opacity: .85}.p-src a{display: inline-flex;align-items: center;gap: 2px;text-decoration: underline;text-underline-offset: 3px}.p-src .i{width: 13px;height: 13px}.p-head .bn-art{max-width: 46%;height: 100%}.day{display: grid;grid-template-columns: 150px minmax(0,1fr);gap: 24px;padding: 18px 0}.day + .day{border-top: 1px solid var(--line-2);padding-top: 28px}.day-h{position: sticky;top: calc(var(--top-h) + 20px);align-self: start;display: flex;flex-direction: column}.day-h .serif{font-size: 28px;line-height: 1.1}.day-h small{margin-top: 6px;font-size: 12px;letter-spacing: .1em;color: var(--muted)}.news-list{display: grid;gap: 12px}.news-list a{display: block;padding: 18px 20px;background: var(--surface);border: 1px solid var(--line);border-radius: 16px;transition: transform .2s,box-shadow .2s,border-color .2s}.news-list a:hover{transform: translateY(-2px);box-shadow: var(--shadow);border-color: var(--line-2)}.news-meta{display: flex;flex-wrap: wrap;align-items: center;gap: 8px 14px;font-size: 12.5px;color: var(--muted)}.news-meta>span{display: inline-flex;align-items: center;gap: 4px}.news-meta .i{width: 14px;height: 14px}.news-meta .tag{margin: 0}.news-list h3{margin: 10px 0 6px;font-size: 17.5px;line-height: 1.45;font-weight: 700}.news-list a:hover h3{color: var(--accent)}.news-list p{font-size: 14.5px;line-height: 1.8;color: var(--ink-2);display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden}.news-list .more{padding-top: 8px}.news-detail{max-width: 820px}.nd-head{margin-top: 18px;padding: 30px 30px 26px;background: var(--g-news);color: #fff;border-radius: 22px;position: relative;overflow: hidden}.nd-head::after{content: "";position: absolute;right: -60px;top: -60px;width: 220px;height: 220px;border-radius: 50%;border: 30px solid rgba(255,255,255,.08)}.nd-head .news-meta{color: rgba(255,255,255,.85)}.nd-head .tag{background: rgba(255,255,255,.2);color: #fff}.nd-head h1{position: relative;margin-top: 14px;font-size: clamp(24px,3.4vw,34px);line-height: 1.35;font-weight: 700}.nd-body{margin-top: 16px;padding: 26px 30px 30px;background: var(--surface);border: 1px solid var(--line);border-radius: 22px}.nd-body p{font-size: 16.5px;line-height: 2;color: var(--ink-2);margin-bottom: 1em}.nd-body .btn{margin-top: 6px}.pn{display: grid;grid-template-columns: 1fr 1fr;gap: 12px;margin-top: 16px}.pn a{display: flex;flex-direction: column;gap: 4px;padding: 16px 18px;background: var(--surface);border: 1px solid var(--line);border-radius: 16px;transition: border-color .2s}.pn a:hover{border-color: var(--accent)}.pn .nx{text-align: right;align-items: flex-end}.pn small{display: inline-flex;align-items: center;gap: 4px;font-size: 12.5px;color: var(--muted)}.pn b{font-size: 14.5px;line-height: 1.45;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden}.nd-more{display: grid;gap: 8px}.nd-more a{display: flex;align-items: flex-start;gap: 10px;padding: 12px 14px;border-radius: 12px;background: var(--surface);border: 1px solid var(--line);font-size: 14.5px}.nd-more a:hover b{color: var(--accent)}.nd-more b{font-weight: 600;line-height: 1.5}.chips{position: sticky;top: var(--top-h);z-index: 5;display: flex;gap: 8px;padding: 10px 0;overflow-x: auto;scrollbar-width: none;background: color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter: blur(10px);backdrop-filter: blur(10px)}.chips a{flex: none;height: 34px;display: inline-flex;align-items: center;padding: 0 16px;border: 1px solid var(--line-2);border-radius: 11px;font-size: 13.5px;font-weight: 600;background: var(--surface);transition: border-color .2s,color .2s}.chips a:hover{border-color: var(--accent);color: var(--accent)}.boards{display: grid;grid-template-columns: repeat(auto-fit,minmax(min(100%,440px),1fr));gap: 16px;margin-top: 8px}.board{padding: 22px 22px 14px;background: var(--surface);border: 1px solid var(--line);border-radius: 20px;scroll-margin-top: calc(var(--top-h) + 70px)}.board-h{display: flex;align-items: center;gap: 12px;margin-bottom: 8px}.board-h h2{font-size: 19px;font-weight: 700}.board-h p{font-size: 12.5px;color: var(--muted)}.rank-list li{display: grid;grid-template-columns: 34px minmax(0,1fr) auto;grid-template-areas: "n m s" "n o s" "n bar bar";column-gap: 10px;padding: 12px 0;border-top: 1px solid var(--line)}.rank-list li>i{grid-area: n;width: 26px;height: 26px;display: grid;place-items: center;border-radius: 8px;background: var(--bg-2);font: 700 13px/1 var(--sans);font-style: normal;color: var(--muted)}.rank-list li:nth-child(1)>i{background: #FFD166;color: #5B3B00}.rank-list li:nth-child(2)>i{background: #DCE3EE;color: #38465A}.rank-list li:nth-child(3)>i{background: #F2C9A0;color: #5C3511}.rank-list .m{grid-area: m;font-size: 14.5px;font-weight: 600;line-height: 1.35}.rank-list .m em{margin-left: 6px;padding: 1px 6px;border-radius: 4px;background: hsl(40 95% 92%);font-style: normal;font-size: 10.5px;font-weight: 600;color: hsl(30 80% 38%);vertical-align: 1px}.rank-list .o{grid-area: o;font-size: 12px;color: var(--muted)}.rank-list b{grid-area: s;align-self: center;font-size: 16px;font-variant-numeric: tabular-nums}.rank-list .bar{grid-area: bar;height: 5px;margin-top: 8px;border-radius: 5px;background: var(--bg-2);overflow: hidden}.rank-list .bar span{display: block;height: 100%;width: var(--w);border-radius: 5px;background: linear-gradient(90deg,#7A5FF3,#A893FF);opacity: .45}.rank-list li:first-child .bar span{opacity: 1}.gh-list{display: grid;gap: 12px}.gh-card{display: grid;grid-template-columns: 46px minmax(0,1fr) 20px;gap: 16px;padding: 20px 22px;background: var(--surface);border: 1px solid var(--line);border-radius: 18px;transition: transform .2s,box-shadow .2s,border-color .2s}.gh-card:hover{transform: translateY(-2px);box-shadow: var(--shadow);border-color: var(--line-2)}.gh-no{width: 42px;height: 42px;display: grid;place-items: center;border-radius: 12px;background: linear-gradient(135deg,#135F7B,#1D9FA6);color: #fff;font: 700 15px var(--sans)}.gh-body h2{font-size: 17px;font-weight: 700;line-height: 1.4}.gh-card:hover h2{color: var(--accent)}.gh-repo{display: flex;align-items: center;gap: 6px;margin-top: 3px;font: 13px var(--mono);color: var(--muted);word-break: break-all}.gh-repo .i{width: 14px;height: 14px}.gh-body>p:not(.gh-repo){margin: 8px 0 12px;font-size: 14px;color: var(--ink-2)}.gh-meta{display: flex;flex-wrap: wrap;align-items: center;gap: 6px 14px;font-size: 12.5px;color: var(--muted)}.gh-meta>span{display: inline-flex;align-items: center;gap: 4px}.gh-meta .i{width: 14px;height: 14px;fill: #F6C344;stroke: #E0A82E}.gh-meta .lang::before{content: "";width: 9px;height: 9px;border-radius: 50%;background: #1D9FA6}.gh-meta .t{padding: 1px 8px;border-radius: 999px;background: var(--bg-2);color: var(--ink-2)}.gh-card>.i{width: 18px;height: 18px;color: var(--muted)}.qr{display: flex;align-items: center;gap: 18px;padding: 18px;max-width: 520px;background: var(--surface);border: 1px solid var(--line);border-radius: 20px;box-shadow: var(--shadow)}.qr img{width: 132px;height: 132px;border-radius: 12px}.qr-ph{width: 132px;height: 132px;flex: none;display: grid;place-items: center;align-content: center;gap: 8px;border: 1.5px dashed var(--line-2);border-radius: 14px;color: var(--muted);font-size: 12px}.qr-ph .logo{width: 36px;opacity: .6}.qr b{font-size: 16px}.qr p{margin-top: 4px;font-size: 13.5px;color: var(--ink-2)}.perks{display: grid;grid-template-columns: repeat(auto-fit,minmax(min(100%,210px),1fr));gap: 14px;margin-top: 18px}.perks>div{padding: 22px;background: var(--surface);border: 1px solid var(--line);border-radius: 18px}.perks h2{margin: 12px 0 6px;font-size: 16.5px;font-weight: 700}.perks p{font-size: 14px;color: var(--ink-2)}.rules{margin-top: 18px;padding: 22px 24px;background: var(--surface);border: 1px solid var(--line);border-radius: 18px}.rules h2{font-size: 16.5px;font-weight: 700;margin-bottom: 8px}.rules li{position: relative;padding-left: 16px;color: var(--ink-2);line-height: 2}.rules li::before{content: "";position: absolute;left: 0;top: .9em;width: 6px;height: 6px;border-radius: 50%;background: var(--accent)}.nf{padding: 60px 0;text-align: center;display: flex;flex-direction: column;align-items: center;gap: 14px}.nf-code{font: 800 120px/1 var(--sans);background: var(--g-news);-webkit-background-clip: text;background-clip: text;color: transparent}.nf h1{font-size: 30px}.foot{margin-top: 72px;padding: 30px var(--gutter) 36px;border-top: 1px solid var(--line);display: grid;gap: 12px}.foot-links{display: flex;flex-wrap: wrap;gap: 6px 20px;font-size: 13.5px;font-weight: 600;color: var(--ink-2)}.foot-links a:hover{color: var(--accent)}.foot-note{max-width: 760px;font-size: 12.5px;color: var(--muted)}.foot-legal{font-size: 12px;color: var(--muted)}.foot-legal a:hover{color: var(--accent)}@media (max-width: 1280px){}@media (max-width: 1180px){.bento{grid-template-columns: repeat(2,minmax(0,1fr))}.b-news{grid-column: 1 / -1;grid-row: auto}.b-gh{grid-row: span 2}}@media (max-width: 960px){:root{--top-h: 60px}.shell{grid-template-columns: minmax(0,1fr)}.side{position: fixed;z-index: 50;left: 0;top: 0;bottom: 0;width: min(300px,84vw);height: auto;transform: translateX(-102%);transition: transform .3s cubic-bezier(.2,.8,.2,1);box-shadow: var(--shadow-lg)}.menu-open .side{transform: none}.menu-open{overflow: hidden}.top{justify-content: space-between;gap: 8px}.top .menu-btn,.top .top-brand{display: grid;place-items: center}.search{flex: 1;width: auto}.search kbd{display: none}.search input{padding-right: 14px}.search-pop{position: fixed;top: calc(var(--top-h) - 4px);left: 16px;right: 16px;width: auto}.d-head{grid-template-columns: auto minmax(0,1fr)}.d-cta{grid-column: 1 / -1;flex-direction: row;align-items: center;gap: 14px}.app-hero,.app-cols{grid-template-columns: minmax(0,1fr)}.app-hero-cover{order: -1}.day{grid-template-columns: minmax(0,1fr);gap: 12px}.day-h{position: static;flex-direction: row;align-items: baseline;gap: 12px}.p-head-t{max-width: 100%}.p-head .bn-art{opacity: .45}}@media (max-width: 640px){body{font-size: 14.5px}.bento{grid-template-columns: minmax(0,1fr);gap: 12px}.b-gh{grid-row: auto}.bn{min-height: 112px}.bn h2{font-size: 23px}.sec{padding-top: 48px}.sec-head{grid-template-columns: auto minmax(0,1fr)}.count{display: none}.tile.lg{--t: 44px}.card-grid,.tool-grid{grid-template-columns: minmax(0,1fr)}.tool-grid{gap: 8px}.d-head{gap: 16px;padding: 20px}.d-head .ico{width: 60px;height: 60px;border-radius: 16px;font-size: 26px}.d-sec,.tl-sec,.app-cols .d-body{padding: 18px}.app-hero{padding: 18px}.feat{padding: 20px;gap: 14px}.feat .ico{width: 46px;height: 46px}.gh-card{grid-template-columns: 38px minmax(0,1fr);padding: 18px;gap: 12px}.gh-no{width: 36px;height: 36px;font-size: 13px}.gh-card>.i{display: none}.p-head{min-height: 170px;padding: 22px}.nd-head,.nd-body{padding: 20px}.pn{grid-template-columns: minmax(0,1fr)}.qr{flex-direction: column;align-items: flex-start}}@media (min-width: 641px) and (max-width: 960px){.tool-grid{grid-template-columns: repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion: reduce){html{scroll-behavior: auto}*,*::before,*::after{transition: none !important;animation: none !important}}:root[data-theme="dark"] .side-nav a[aria-current]{background: hsl(var(--h) 45% 20%)}.b-sub{margin: 14px 20px 2px;font-size: 12px;font-weight: 600;letter-spacing: .04em;color: var(--muted)}body.has-bg{background: transparent}body.has-bg .side,body.has-bg .b:not(.b-club),body.has-bg .card,body.has-bg .tool,body.has-bg .app-card,body.has-bg .feat,body.has-bg .tab-bar [role="tab"]:not([aria-selected="true"]){background-color: color-mix(in srgb,var(--surface) 80%,transparent)}body.has-bg .top,body.has-bg .tab-bar{background: color-mix(in srgb,var(--bg) 55%,transparent)}body.has-bg .sec-head{border-bottom-color: color-mix(in srgb,var(--ink) 18%,transparent)}.bg-wrap{position: fixed !important;inset: 0;z-index: -1;pointer-events: none}html{background: var(--bg)}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .side-cta{background: var(--surface-2)}:root:not([data-theme="light"]) .side-nav a[aria-current]{background: hsl(var(--h) 45% 20%)}:root:not([data-theme="light"]) .badge.on{background: hsl(150 30% 18%);color: hsl(150 60% 70%)}:root:not([data-theme="light"]) .feat{background: linear-gradient(135deg,hsl(var(--h) 35% 16%),var(--surface) 60%)}:root:not([data-theme="light"]) .hl li .i{background: hsl(150 30% 18%);color: hsl(150 60% 65%)}}.rank-bar{position: sticky;top: var(--top-h);z-index: 5;display: flex;align-items: center;gap: 12px;padding: 10px 0;background: color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter: blur(10px);backdrop-filter: blur(10px)}.rank-tabs{display: flex;gap: 6px;flex: 1;min-width: 0;overflow-x: auto;scrollbar-width: none}.rank-tabs::-webkit-scrollbar{display: none}.rank-tabs button{flex: none;display: inline-flex;align-items: center;gap: 6px;height: 36px;padding: 0 13px;border: 1px solid var(--line-2);border-radius: 11px;background: var(--surface);color: var(--ink-2);font-size: 14px;font-weight: 600;cursor: pointer;white-space: nowrap;transition: background .18s,color .18s,border-color .18s}.rank-tabs button .i{width: 16px;height: 16px}.rank-tabs button:hover{border-color: var(--accent);color: var(--accent)}.rank-tabs button[aria-pressed="true"]{background: var(--accent);border-color: transparent;color: var(--on-accent)}.rank-tabs sup{font-size: 11px;opacity: .65;vertical-align: 5px}.gh-tabs,.news-tabs{flex-wrap: wrap;overflow: visible;margin-bottom: 16px}.rank-cn{flex: none;display: inline-flex;align-items: center;gap: 8px;height: 36px;padding: 0 13px;border: 1px solid var(--line-2);border-radius: 11px;background: var(--surface);font-size: 14px;font-weight: 700;cursor: pointer;user-select: none}.rank-cn input{position: absolute;opacity: 0;width: 0;height: 0}.rank-cn .box{width: 18px;height: 18px;display: grid;place-items: center;border: 1.5px solid var(--line-2);border-radius: 5px;color: transparent;transition: background .15s,border-color .15s}.rank-cn .box .i{width: 13px;height: 13px;stroke-width: 3}.rank-cn input:checked + .box{background: #E5484D;border-color: #E5484D;color: #fff}.rank-cn input:focus-visible + .box{outline: 2px solid var(--accent);outline-offset: 2px}.rank-desc{margin: 2px 0 10px;font-size: 13px;color: var(--muted)}.table-wrap{background: var(--surface);border: 1px solid var(--line);border-radius: 18px;overflow: hidden}.rank-table{width: 100%;border-collapse: collapse}.rank-table th{padding: 12px 14px;text-align: left;font-size: 12px;font-weight: 600;color: var(--muted);border-bottom: 1px solid var(--line-2);white-space: nowrap}.rank-table td{padding: 11px 14px;border-bottom: 1px solid var(--line);font-size: 14px;vertical-align: middle}.rank-table tbody tr:last-child td{border-bottom: 0}.rank-table tbody tr:hover td{background: var(--accent-soft)}.t-no i{width: 28px;height: 28px;display: grid;place-items: center;border-radius: 8px;background: var(--bg-2);font: 700 13px/1 var(--sans);color: var(--muted)}.t-no i.top1{background: #FFD166;color: #5B3B00}.t-no i.top2{background: #DCE3EE;color: #38465A}.t-no i.top3{background: #F2C9A0;color: #5C3511}.t-m b{font-weight: 700;overflow-wrap: anywhere}.t-m em{margin-left: 7px;padding: 1px 6px;border-radius: 4px;background: rgba(229,72,77,.12);color: #D93A40;font-style: normal;font-size: 11px;font-weight: 700;white-space: nowrap}.t-m small{display: none;font-size: 12px;color: var(--muted)}.t-o,.t-v,.t-w{color: var(--ink-2);white-space: nowrap;font-size: 13px !important}.t-v{font-variant-numeric: tabular-nums}td.t-s{min-width: 170px}.t-s b{display: inline-block;width: 46px;font-variant-numeric: tabular-nums}.t-s .bar{display: inline-block;width: calc(100% - 52px);height: 6px;border-radius: 6px;background: var(--bg-2);overflow: hidden;vertical-align: middle}.t-s .bar span{display: block;height: 100%;border-radius: 6px;background: linear-gradient(90deg,#7A5FF3,#A893FF)}.rank-table .t-w{display: none}.rank-table.cn .t-w{display: table-cell}.mv{font-size: 12.5px;font-weight: 700;color: var(--muted);white-space: nowrap}.mv.up{color: #18A058}.mv.down{color: #E5484D}.mv.new{padding: 2px 7px;border-radius: 5px;background: var(--accent-soft);color: var(--accent)}.rank-bar{align-items: flex-start}.rank-bar .rank-tabs{flex-wrap: wrap;overflow: visible}.rank-bar .rank-tabs button{padding: 0 11px}@media (max-width: 760px){.rank-bar{position: static;flex-direction: column;align-items: stretch}.rank-cn{align-self: flex-start}.t-o,.t-v,.rank-table.cn .t-w{display: none !important}.t-m small{display: block}td.t-s{min-width: 96px}.t-s .bar{display: none}.rank-table td,.rank-table th{padding: 10px 8px}}.gh-page .gh-list{display: grid;gap: 10px}.gh-page .gh-list>li[hidden]{display: none}.gh-page .gh-list>li{scroll-margin-top: calc(var(--top-h) + 12px)}.gh-item{background: var(--surface);border: 1px solid var(--line);border-radius: 16px;transition: border-color .2s,box-shadow .2s}.gh-item:hover{border-color: var(--line-2)}.gh-item[open]{border-color: var(--accent);box-shadow: var(--shadow)}.gh-item summary{display: grid;grid-template-columns: auto minmax(0,1fr) auto;gap: 14px;align-items: start;padding: 16px 18px;cursor: pointer;list-style: none}.gh-item summary::-webkit-details-marker{display: none}.gh-sum h2{font-size: 16.5px;font-weight: 700;line-height: 1.4}.gh-item:hover h2{color: var(--accent)}.gh-sum .gh-repo{margin-top: 1px}.gh-desc{margin: 7px 0 10px;font-size: 14px;color: var(--ink-2)}.gh-meta .star{font-weight: 700;color: #B7791F}.gh-meta .gain{font-weight: 700;color: #E5484D}.gh-meta .gain .i{fill: currentColor;stroke: none}.gh-chev{width: 30px;height: 30px;display: grid;place-items: center;border-radius: 9px;background: var(--accent-soft);color: var(--accent);transition: transform .2s}.gh-item[open] .gh-chev{transform: rotate(90deg)}.gh-detail{display: grid;grid-template-columns: minmax(0,1fr);gap: 16px;padding: 4px 18px 20px 72px}.gh-img{border: 1px solid var(--line);border-radius: 12px;overflow: hidden;background: var(--bg-2);max-width: 720px}.gh-img img{width: 100%}.gh-img figcaption{padding: 6px 12px;font-size: 12px;color: var(--muted)}.gh-detail p{color: var(--ink-2)}.gh-code{position: relative;border-radius: 10px;background: #0E1626;color: #DCE6F7}.gh-code pre{margin: 0;padding: 13px 70px 13px 15px;overflow-x: auto;font: 13px/1.6 var(--mono)}.gh-code button{position: absolute;top: 8px;right: 8px;height: 26px;padding: 0 10px;border: 0;border-radius: 6px;background: rgba(255,255,255,.14);color: #fff;font-size: 12px;cursor: pointer}.gh-actions{display: flex;flex-wrap: wrap;align-items: center;gap: 14px;font-size: 13px;color: var(--muted)}.gh-actions .btn{height: 40px;padding: 0 16px;font-size: 14px}@media (max-width: 640px){.gh-item summary{grid-template-columns: minmax(0,1fr) auto;padding: 14px}.gh-item summary>.tile{display: none}.gh-detail{padding: 2px 14px 16px}}.day[hidden],.news-list li[hidden]{display: none}.article p{text-indent: 2em;text-align: justify}.gh-detail .article p{font-size: 15.5px;line-height: 1.95}.gh-detail .article p + p{margin-top: .75em}.nd-img{margin: 6px 0 22px;border-radius: 12px;overflow: hidden;border: 1px solid var(--line);background: var(--bg-2)}.nd-img img{display: block;width: 100%;height: auto}.nd-img figcaption{padding: 6px 12px;font-size: 12px;color: var(--muted)}