.g-ai{--grp:var(--gai);}
.g-security{--grp:var(--gsc);}
.g-internet{--grp:var(--gin);}
.g-media{--grp:var(--gmd);}
.g-design{--grp:var(--gds);}
.g-files{--grp:var(--gfl);}
.g-system{--grp:var(--gsy);}
.g-productivity{--grp:var(--gpr);}
.g-development{--grp:var(--gdv);}
.platform-chips{list-style:none;margin:0 -10px;padding:0;display:flex;flex-wrap:wrap;gap:4px;}
.platform-chip{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0 10px;border-radius:var(--br1);color:var(--tx1);font-weight:600;font-size:.95rem;}
.platform-chip:hover{background:var(--ab1);color:var(--as1);text-decoration-line:none;}
.platform-chip .icon,.platform-chip img{width:20px;height:20px;}
.platform-chip-count{color:var(--tx2);font-weight:500;font-size:.85rem;}
.shelf{margin-bottom:38px;}
.shelf .section-head{margin-bottom:14px;}
.card-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;}
.card-grid>li{display:flex;min-width:0;}
.card{flex:1;min-width:0;display:flex;align-items:flex-start;gap:14px;padding:16px;border-radius:var(--br1);background:var(--bg2);color:var(--tx1);}
.card:hover{background:var(--ab1);color:var(--tx1);text-decoration-line:none;}
.card:hover .card-title{color:var(--as1);}
.card .app-icon{flex:none;}
.card-body{display:flex;flex-direction:column;gap:3px;min-width:0;}
.card-title{margin:0;font-size:1.05rem;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.card-summary{color:var(--tx2);font-size:.9rem;line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;}
.card-meta{display:block;min-width:0;margin-top:4px;color:var(--tx2);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.card-version{color:var(--ac2);font-weight:600;}
.group-glyph{flex:none;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:var(--br1);background:color-mix(in srgb,var(--grp) 15%,transparent);color:var(--grp);}
.group-glyph .icon{width:22px;height:22px;}
.group-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:30px 40px;}
.group-tile{display:flex;flex-direction:column;gap:14px;}
.group-tile-head{display:flex;align-items:center;gap:12px;}
.group-tile-title{margin:0;font-size:1.2rem;flex:1;min-width:0;}
.group-tile-title a{color:var(--grp);}
.group-tile-title a:hover{color:var(--grp);}
.group-tile-count{color:var(--tx2);font-size:.9rem;}
.group-tile-icons{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px;}
.group-tile-icons a{display:block;border-radius:var(--br1);}
.group-tile-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px 16px;font-size:.92rem;}
.group-tile-links a{color:var(--tx2);}
.group-tile-links a:hover{color:var(--tx1);}
.spotlight{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:8px 40px;align-items:center;margin-bottom:38px;}
.spotlight-kicker{margin:0 0 14px;color:var(--ac3);font-weight:700;font-size:.95rem;}
.spotlight-kicker span{margin-left:8px;color:var(--tx2);font-weight:500;font-size:.85rem;}
.spotlight-head{display:flex;align-items:center;gap:16px;margin-bottom:10px;}
.spotlight-title{margin:0;font-size:2rem;}
.spotlight-title a{color:var(--tx1);}
.spotlight-summary{font-size:1.08rem;color:var(--tx2);}
.spotlight .app-badges{margin-bottom:20px;}
.spotlight-go{margin:0;}
.spotlight-shot{display:block;aspect-ratio:16/10;border-radius:var(--br1);overflow:hidden;background:var(--bg1);box-shadow:var(--bs1);}
.spotlight-shot img{width:100%;height:100%;object-fit:contain;}
.spotlight-credit{grid-column:2;margin:4px 0 0;text-align:right;font-size:.8rem;}
.spotlight-credit a{color:var(--tx2);}
.home-page .card-grid,.home-page .tile-list{margin:0 -10px;gap:4px 12px;}
.home-page .card,.home-page .tile{padding:10px;background:none;}
.line-rank{flex:none;width:24px;text-align:center;font-family:"Big Shoulders",var(--ff1);font-size:1.7rem;font-weight:500;line-height:1;font-variant-numeric:tabular-nums;color:var(--tx2);}
.s9-shots{list-style:none;margin:0 -10px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 12px;}
.s9-shots>li{display:flex;min-width:0;}
.s9-shot-card{flex:1;display:flex;flex-direction:column;gap:12px;min-width:0;padding:10px;border-radius:var(--br1);color:var(--tx1);}
.s9-shot-card:hover{background:var(--bg2);color:var(--tx1);text-decoration-line:none;}
.s9-shot-card:hover .line-title{color:var(--as1);}
.s9-shot{display:block;aspect-ratio:16/10;border-radius:var(--br1);overflow:hidden;background:var(--bg2);box-shadow:var(--bs1);}
.s9-shot img{width:100%;height:100%;object-fit:cover;object-position:top left;}
.s9-shot-body{display:flex;align-items:center;gap:10px;min-width:0;}
.s9-shot-body .app-icon{flex:none;width:32px;height:32px;}
.s9-shot-body .line-meta{display:none;}
.plat-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:0 -10px 10px;}
.plat-tab{position:relative;display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:0 12px;border-radius:var(--br1);color:var(--tx2);font-weight:600;cursor:pointer;user-select:none;-webkit-user-select:none;}
.plat-tab .icon,.plat-tab img{width:20px;height:20px;}
.plat-tab:hover{background:var(--bg2);color:var(--tx1);}
.plat-tab:has(.plat-radio:checked){background:var(--bg2);color:var(--tx1);}
.plat-tab:has(.plat-radio:focus-visible){outline:2px solid var(--fc1);outline-offset:2px;}
.plat-panel{display:none;}
.plat-panel .line-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px;margin:0 -10px;}
.plat-panel .nav-all{margin:8px 0 0;}
.plat:has(.plat-radio[value="windows"]:checked) .plat-panel-windows,.plat:has(.plat-radio[value="macos"]:checked) .plat-panel-macos,.plat:has(.plat-radio[value="linux"]:checked) .plat-panel-linux,.plat:has(.plat-radio[value="android"]:checked) .plat-panel-android,.plat:has(.plat-radio[value="ios"]:checked) .plat-panel-ios,.plat:has(.plat-radio[value="web"]:checked) .plat-panel-web{display:block;}
.news-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 32px;margin-bottom:38px;}
.news{min-width:0;}
.news-day{margin:14px 0 2px;color:var(--tx2);font-size:.9rem;font-weight:600;}
.news .section-head+.news-day{margin-top:0;}
.news .line-list{margin:0 -10px;}
.vs-grid{list-style:none;margin:0 -10px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;}
.vs-grid>li{display:flex;min-width:0;}
.vs-card{flex:1;display:flex;flex-direction:column;gap:12px;min-width:0;padding:12px 10px 14px;border-radius:var(--br1);color:var(--tx1);}
.vs-card:hover{background:var(--bg2);color:var(--tx1);text-decoration-line:none;}
.vs-card:hover .vs-name{color:var(--as1);}
.vs-cat{color:var(--tx2);font-size:.9rem;font-weight:600;}
.vs-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;}
.vs-app{display:flex;align-items:center;gap:12px;min-width:0;}
.vs-app:last-child{flex-direction:row-reverse;text-align:right;}
.vs-app .app-icon{flex:none;}
.vs-name{min-width:0;font-weight:650;line-height:1.3;overflow-wrap:break-word;}
.vs-mark{color:var(--tx2);font-size:.85rem;font-weight:700;}
.charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 32px;}
.chart{min-width:0;}
.chart-title{margin:0 0 4px;font-size:1.1rem;}
.chart-title a{color:var(--tx1);}
.chart-title a:hover{color:var(--as1);}
.chart .line-list{margin:0 -10px;}
.search-drop{margin-left:auto;align-self:stretch;display:flex;}
.search-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--tx2);font-weight:500;cursor:pointer;list-style:none;user-select:none;-webkit-user-select:none;}
.search-toggle::-webkit-details-marker{display:none;}
.search-toggle .icon{width:22px;height:22px;}
.search-toggle:hover .search-toggle-label,.search-drop[open] .search-toggle-label{color:var(--tx1);text-decoration-line:underline;}
.search-drop[open] .search-toggle{color:var(--tx1);}
.search-panel{left:var(--gap);right:var(--gap);padding:12px;}
.search-panel .site-search{margin:0;}
.search-panel .site-search{--bg5:var(--bg1);}
.search-panel .site-search-input{background:var(--bg1);}
.q-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:var(--tx2);cursor:pointer;list-style:none;user-select:none;-webkit-user-select:none;}
.q-toggle::-webkit-details-marker{display:none;}
.q-toggle:hover,.nav-drop[open]>.q-toggle{background:var(--bg2);color:var(--tx1);}
.q-toggle .icon{width:24px;height:24px;}
.q-menu-panel{left:var(--gap);right:var(--gap);top:calc(100% + 8px);max-height:calc(100vh - 100px);overflow-y:auto;padding:24px 28px 10px;}
.q-menu-cols{columns:4;column-gap:28px;}
.q-menu-top{columns:3;}
.q-menu-cols .link-cols-group{margin-bottom:16px;}
.q-menu-cols .link-cols-heading{font-size:.95rem;}
.q-menu-cols .link-cols-heading a{color:var(--tx1);}
.q-menu-cols ul a{padding:2px 0;font-size:.92rem;color:var(--tx2);}
.q-menu-cols ul a:hover{color:var(--tx1);}
.q-menu-head{margin:6px 0 12px;font-size:1.05rem;font-weight:700;}
.q-menu-head a{color:var(--tx1);}
.has-side{--sw1:272px;}
.has-rail{--rw1:272px;}
.site-frame{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,var(--pw1)) minmax(0,1fr);gap:0 20px;width:100%;}
.has-side .site-frame{grid-template-columns:minmax(var(--sw1),1fr) minmax(0,var(--pw1)) minmax(0,1fr);}
.has-rail .site-frame{grid-template-columns:minmax(0,1fr) minmax(0,var(--pw1)) minmax(var(--rw1),1fr);}
.has-side.has-rail .site-frame{grid-template-columns:minmax(var(--sw1),1fr) minmax(0,var(--pw1)) minmax(var(--rw1),1fr);}
.site-side{grid-column:1;grid-row:1;justify-self:end;width:var(--sw1);position:sticky;top:0;align-self:start;max-height:100vh;overflow-y:auto;padding:calc(var(--rh1) - 6px) 6px 40px 20px;scrollbar-width:thin;scrollbar-color:var(--bc1) transparent;}
.site-frame .site-main{grid-column:2;grid-row:1;}
.has-side .cat-panel{display:none;}
.site-rail{grid-column:3;grid-row:1;justify-self:start;width:var(--rw1);position:sticky;top:0;align-self:start;min-width:0;max-height:100vh;overflow-y:auto;padding:calc(var(--rh1) - 6px) 20px 40px 6px;scrollbar-width:thin;scrollbar-color:var(--bc1) transparent;}
.side-groups,.side-cats{list-style:none;margin:0;padding:0;}
.side-group{margin-bottom:2px;}
.side-group-top{display:flex;align-items:center;gap:12px;min-height:40px;padding:0 10px;border-radius:var(--br1);color:var(--tx1);font-weight:600;}
.side-group-top .icon{width:20px;height:20px;color:var(--grp);}
.side-group-top:hover{background:var(--bg2);color:var(--tx1);text-decoration-line:none;}
.side-group-top[aria-current]{background:color-mix(in srgb,var(--grp) 13%,transparent);}
.side-cats{padding:2px 0 12px;}
.side-cat{display:flex;align-items:center;min-height:34px;padding:0 10px 0 42px;border-radius:var(--br1);color:var(--tx2);font-size:.95rem;}
.side-cat:hover{background:var(--bg2);color:var(--tx1);text-decoration-line:none;}
.side-cat[aria-current]{background:color-mix(in srgb,var(--grp) 13%,transparent);color:var(--tx1);font-weight:600;}
.side-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media (max-width:1179px){
.site-frame{display:flex;flex-direction:column;}
.site-frame .site-main{order:1;}
.site-side,.site-rail{width:100%;max-width:var(--pw1);margin:0 auto;}
.site-side{order:2;position:static;max-height:none;overflow:visible;padding:14px var(--gap) 34px;}
.side-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:dense;gap:0 20px;align-items:start;}
.side-group.is-open{grid-column:1/-1;}
.side-group.is-open .side-cats{columns:2;column-gap:20px;}
.side-cats li{break-inside:avoid;}
.has-side .cat-panel{display:block;}
.site-rail{order:2;position:static;max-height:none;overflow:visible;padding:14px var(--gap) 20px;}
.has-side .site-side{order:3;}
}
@media (max-width:860px){
.spotlight{grid-template-columns:minmax(0,1fr);}
.spotlight-shot{order:-1;margin-bottom:16px;}
.spotlight-credit{grid-column:1;order:-1;margin:-12px 0 8px;}
}
@media (max-width:640px){
.side-groups{grid-template-columns:minmax(0,1fr);}
.side-group.is-open .side-cats{columns:1;}
.side-group-top,.side-cat{min-height:44px;}
.s9-shots{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;margin:0 -8px;}
.charts,.news-cols{grid-template-columns:minmax(0,1fr);}
.plat-panel .line-list,.vs-grid{grid-template-columns:minmax(0,1fr);}
.vs-app .app-icon{width:40px;height:40px;}
.vs-name{font-size:.95rem;}
.plat-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1*var(--gap)) 10px;padding:0 calc(var(--gap) - 12px);}
.plat-tabs::-webkit-scrollbar{display:none;}
.plat-tab{flex:none;}
.s9-shot-card{padding:8px;gap:10px;}
.q-menu-panel{max-height:75vh;padding:18px 18px 6px;}
.q-menu-cols,.q-menu-top{columns:2;column-gap:16px;}
.q-menu-cols ul a{padding:7px 0;}
.platform-chips{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;margin:0 calc(-1*var(--gap));padding:0 calc(var(--gap) - 10px) 4px;scrollbar-width:none;}
.platform-chips::-webkit-scrollbar{display:none;}
.platform-chips li{flex:none;}
.card-grid{grid-template-columns:minmax(0,1fr);gap:8px;}
.card{padding:12px;}
.group-grid{grid-template-columns:minmax(0,1fr);}
.spotlight-title{font-size:1.5rem;}
.spotlight-head .app-icon{width:48px;height:48px;}
.search-drop{display:none;}
}
@media (min-width:641px){
.site-header.c29-mast .site-header-inner{flex-direction:column;gap:18px;padding-top:40px;}
.site-header.c29-mast .c29-brand .brand-mark{width:64px;height:64px;margin:-13px 0;}
.site-header.c29-mast .site-nav{align-self:center;}
.site-header.c29-mast .nav-menu{justify-content:center;}
.site-header.c29-mast .c29-search{padding-top:22px;}
.site-header.c29-m-none .site-header-inner,.site-header.c29-m-search .site-header-inner{padding-top:48px;}
.v29 .hero{text-align:center;}
.v29 .hero-lead{margin-left:auto;margin-right:auto;}
.v29 .hero .site-search{margin:0 auto 20px;}
.c29-m-corner .q-menu,.c29-m-drawer .q-menu{position:absolute;top:40px;right:var(--gap);}
.c29-m-drawer .q-menu{right:auto;left:var(--gap);}
.c29-m-corner .q-menu-panel{left:auto;right:0;width:calc(min(var(--pw1),100vw) - 2*var(--gap));}
.c29-m-drawer .d12{left:0;right:auto;border-radius:0 var(--br1) var(--br1) 0;}
.c29-m-drawer .h12-menu[open]>.h12-toggle::after{position:fixed;inset:15px auto auto 332px;width:44px;height:44px;}
.c29-mast .q-toggle{color:var(--tx1);}
.c29-m-search .c29-search{position:relative;}
}
.c29-m-search .c29-search{display:flex;align-items:center;justify-content:center;gap:8px;}
.c29-m-search .c29-search>.site-search{flex:1;min-width:0;margin:0;}
.h12-toggle{position:relative;}
.h12-menu[open]>.h12-toggle::before{content:"";position:fixed;inset:0;z-index:55;background:rgb(0 0 0/.4);cursor:default;}
.h12-menu[open]>.h12-toggle::after{content:"";position:absolute;inset:0;z-index:62;border-radius:50%;background:linear-gradient(45deg,transparent calc(50% - 1px),var(--tx1) calc(50% - 1px),var(--tx1) calc(50% + 1px),transparent calc(50% + 1px)) center/22px 22px no-repeat,linear-gradient(-45deg,transparent calc(50% - 1px),var(--tx1) calc(50% - 1px),var(--tx1) calc(50% + 1px),transparent calc(50% + 1px)) center/22px 22px no-repeat,var(--bg2);}
.d12{position:fixed;top:0;right:0;bottom:0;left:auto;z-index:60;width:400px;max-width:100vw;min-width:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;padding:12px 24px 40px;border-radius:var(--br1) 0 0 var(--br1);background:var(--bg3);box-shadow:var(--bs1);}
.d12-title{display:flex;align-items:center;min-height:50px;margin:0 0 18px;font-size:1.3rem;font-weight:750;}
.d12-quick{list-style:none;margin:0 -10px 22px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 6px;}
.d12-link{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 10px;border-radius:var(--br1);color:var(--tx1);font-weight:600;}
.d12-link .icon{width:20px;height:20px;color:var(--ac2);}
.d12-link:hover{background:var(--ab1);color:var(--as1);text-decoration-line:none;}
.d12-head{margin:0 0 10px;font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}
.d12-head a{color:var(--tx2);}
.d12-groups{list-style:none;margin:0;padding:0;}
.d12-groups>li{margin-bottom:14px;}
.d12-group{display:flex;align-items:center;gap:12px;min-height:40px;margin:0 -10px;padding:0 10px;border-radius:var(--br1);color:var(--tx1);font-weight:700;font-size:1.05rem;}
.d12-group .icon{width:22px;height:22px;color:var(--grp);}
.d12-group:hover{background:color-mix(in srgb,var(--grp) 13%,transparent);color:var(--tx1);text-decoration-line:none;}
.d12-cats{list-style:none;margin:2px 0 0 34px;padding:0;display:flex;flex-wrap:wrap;gap:3px 16px;font-size:.92rem;}
.d12-cats a{color:var(--tx2);}
.d12-cats a:hover{color:var(--tx1);}
@media (max-width:640px){
.d12{width:100vw;border-radius:0;padding:var(--rh1) var(--gap) 40px;}
.d12-title{min-height:48px;}
.d12-cats a{display:inline-block;padding:5px 0;}
.site-header.c29-m-none{grid-template-columns:auto minmax(0,1fr);}
}
