
body.gallery { background: var(--bg); color: var(--text); }
.gskip { position: absolute; left: var(--space-3); top: -4rem; background: var(--surface); padding: var(--space-2) var(--space-3); border: 1px solid var(--border); z-index: 10; }
.gskip:focus { top: var(--space-3); }
.gtop { position: sticky; top: 0; z-index: 5; display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4); background: var(--bg); border-bottom: 1px solid var(--border); }
.gtop__brand { font-weight: 700; color: var(--text); text-decoration: none; }
.gtop__title { color: var(--text-muted); font-size: var(--text-sm); }
.gtop__account { margin-left: auto; display: inline-grid; place-items: center; min-width: 2.75rem; min-height: 2.75rem; font-size: 0; line-height: 0; color: var(--text-muted); text-decoration: none; }
.gtop__account:hover { color: var(--text); }
.gfeed { height: calc(100vh - 7.5rem); height: calc(100svh - 7.5rem); overflow-y: auto; scroll-snap-type: y mandatory; overscroll-behavior-y: contain; }
.gcard { min-height: calc(100vh - 7.5rem); min-height: calc(100svh - 7.5rem); scroll-snap-align: start; scroll-snap-stop: always; display: flex; align-items: center; justify-content: center; padding: var(--space-5) var(--space-4); border-bottom: 1px solid var(--border); }
.gcard__inner { width: 100%; max-width: 40rem; }
.gcard__q { font-size: var(--text-xl); margin: 0 0 var(--space-4); overflow-wrap: anywhere; }
.gcard--intro h1 { font-size: var(--text-3xl); }
.gcard__snippet { font-size: var(--text-lg); overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 8; -webkit-box-orient: vertical; overflow: hidden; }
.gcard__meta { color: var(--text-muted); font-size: var(--text-sm); }
.gcard__badges { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0 0 var(--space-3); }
.gbadge { display: inline-block; padding: 0 var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-lg); font-size: var(--text-xs); background: var(--surface); line-height: 1.8; }
.gbadge--split { border-color: var(--warning); background: var(--warning-bg); }
.gbadge--full { border-color: var(--success); }
.gbutton { display: inline-block; min-height: 2.75rem; padding: var(--space-3) var(--space-5); background: var(--accent); color: var(--on-accent); border-radius: var(--radius-md); text-decoration: none; font-weight: 700; line-height: 1.4; }
.gbutton:hover { text-decoration: underline; }
.gmore { padding: var(--space-6) var(--space-4); text-align: center; }
.gpage { max-width: 46rem; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-7); }
.gnotice { padding: var(--space-3) var(--space-4); border: 1px solid var(--border); background: var(--surface); font-size: var(--text-sm); }
.gtext { white-space: pre-wrap; unicode-bidi: isolate; overflow-wrap: anywhere; }
.gtext bdi { unicode-bidi: isolate; }
.gtext--muted { color: var(--text-muted); }
.ground { margin: 0 0 var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 0 var(--space-4); }
.ground > summary { cursor: pointer; padding: var(--space-3) 0; font-weight: 700; min-height: 2.75rem; }
.gturn { border-top: 1px solid var(--border); padding-top: var(--space-3); }
.gturn__who { margin: 0 0 var(--space-2); font-size: var(--text-base); color: var(--text-muted); }
.gfooter { margin-top: var(--space-6); border-top: 1px solid var(--border); padding-top: var(--space-4); color: var(--text-muted); font-size: var(--text-sm); }
@media (min-width: 48rem) { .gcard__q { font-size: var(--text-2xl); } .gcard__snippet { -webkit-line-clamp: 10; } }
@media (prefers-reduced-motion: reduce) { .gfeed { scroll-behavior: auto; } }
@media (prefers-reduced-motion: no-preference) { .gfeed { scroll-behavior: smooth; } }
body.gallery { --bg: #0b0e14; --surface: #121722; --text: #f3f5f9; --text-muted: #9aa3b5; --border: #232b3b; --link: #7aa2ff; color-scheme: dark; }
body.gallery .gtop { background: #0b0e14; border-bottom-color: #1a2130; }
body.gallery .gtop__brand { font-size: 1.15rem; letter-spacing: .04em; text-transform: uppercase; }
.gfeed .gcard { background: transparent; border-bottom: 0; padding: var(--space-4) var(--space-3); }
.gfeed .gcard:not(.gcard--intro) .gcard__inner { background: linear-gradient(180deg, #0f1420, #0c1018); border: 1px solid #1f2840; border-radius: 22px; padding: var(--space-5) var(--space-4); max-width: 34rem; box-shadow: 0 10px 40px rgb(0 0 0 / .45); }
.gcard__chips { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0 0 var(--space-4); }
.gchip { display: inline-block; padding: 0 var(--space-4); border: 1px solid #2c3b66; color: #8aa4ff; border-radius: 999px; font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 2.1; }
.gchip--split { border-color: #7a2c33; color: #ff6b73; background: rgb(255 80 90 / .08); }
.gchip--full { border-color: #1f6b49; color: #5fe0a2; }
.gfeed .gcard__q { font-size: clamp(1.5rem, 6vw, 2.1rem); line-height: 1.15; font-weight: 800; letter-spacing: -.01em; margin: 0 0 var(--space-4); }
.gfeed .gcard__q[data-len="m"] { font-size: clamp(1.3rem, 4.8vw, 1.7rem); }
.gfeed .gcard__q[data-len="l"] { font-size: clamp(1.15rem, 4vw, 1.4rem); line-height: 1.2; font-weight: 700; }
.gfeed .gcard__q[data-len="xl"] { font-size: clamp(1.05rem, 3.5vw, 1.2rem); line-height: 1.25; font-weight: 700; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.gvoices { list-style: none; margin: 0 0 var(--space-4); padding: 0; display: grid; gap: var(--space-3); }
.gvoice { display: flex; gap: var(--space-3); align-items: flex-start; }
.gvoice__av { flex: none; width: 2.75rem; height: 2.75rem; border-radius: 12px; display: grid; place-items: center; font-weight: 800; color: #fff; background: #3a4560; }
.gv--claude { background: #c8654a; } .gv--gpt { background: #1f8a64; } .gv--gemini { background: #3b6df0; }
.gv--c0 { background: #8a5cf0; } .gv--c1 { background: #d6902a; } .gv--c2 { background: #1f93a8; } .gv--c3 { background: #c2487a; } .gv--c4 { background: #6b8f2a; } .gv--c5 { background: #5a6b8f; }
.gvoice__body { min-width: 0; flex: 1; }
.gvoice__who { display: block; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); margin: 0 0 2px; }
.gvoice__q { margin: 0; padding: var(--space-3) var(--space-3); background: #0e131d; border: 1px solid #1c2332; border-radius: 12px; font-size: 1.02rem; line-height: 1.4; overflow-wrap: anywhere; }
.gvoice__q::before { content: "\201C"; color: #5b6b94; font-weight: 800; margin-right: .3em; }
.gcouncil { display: flex; justify-content: space-between; align-items: center; margin: 0 0 var(--space-3); padding: var(--space-3) var(--space-4); background: #0e131d; border: 1px solid #1c2332; border-radius: 12px; }
.gcouncil__label { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }
.gcouncil__score { color: #37b6ff; font-size: 1.5rem; font-weight: 800; }
.gfeed .gcard__meta { margin: 0 0 var(--space-3); }
.gread { display: flex; justify-content: space-between; align-items: center; min-height: 3.25rem; padding: 0 var(--space-5); border-radius: 16px; text-decoration: none; color: var(--text); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; font-size: .9rem; border: 1.5px solid transparent; background: linear-gradient(#0c1018, #0c1018) padding-box, linear-gradient(90deg, #6a5cff, #2ad0ff) border-box; }
.gread:hover { filter: brightness(1.25); }
.gfeed .gcard--intro .gcard__inner { color: var(--text); }
.gtop__brand { margin-right: auto; }
.gtools { display: flex; gap: var(--space-2); align-items: center; }
.gtop { position: relative; }
.gmenu { position: static; }
.gmenu > summary { list-style: none; cursor: pointer; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 10px; color: var(--text-muted); }
.gmenu > summary::-webkit-details-marker { display: none; }
.gmenu[open] > summary, .gmenu > summary:hover { color: var(--text); background: #151b29; }
.gmenu__panel { position: absolute; left: var(--space-3); right: var(--space-3); top: calc(100% + 4px); z-index: 20; display: flex; gap: var(--space-2); padding: var(--space-3); background: #121722; border: 1px solid #232b3b; border-radius: 14px; box-shadow: 0 12px 40px rgb(0 0 0 / .55); margin: 0; list-style: none; }
.gmenu__input { flex: 1; min-width: 0; padding: var(--space-3); background: #0b0e14; color: var(--text); border: 1px solid #232b3b; border-radius: 10px; font: inherit; }
.gmenu__list { flex-direction: column; gap: 0; padding: var(--space-2); }
.gmenu__list a { display: block; padding: var(--space-3); border-radius: 8px; color: var(--text); text-decoration: none; }
.gmenu__list a:hover, .gmenu__list a[aria-current] { background: #1a2233; }
.gmenu__list a[aria-current]::after { content: " \2713"; color: #5fe0a2; }
.gactions { display: flex; align-items: center; gap: var(--space-5); margin: 0 0 var(--space-3); }
.gact { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 2.75rem; padding: 0 var(--space-1); color: var(--text-muted); text-decoration: none; background: none; border: 0; font: inherit; cursor: pointer; }
.gact:hover { color: var(--text); }
.gact[aria-pressed="true"] { color: #ff5d73; }
.gact[data-act="save"][aria-pressed="true"] { color: #37b6ff; }
.gact[aria-pressed="true"] .gicon { fill: currentColor; }
.gact--share { margin-left: auto; }
.gcouncil { text-decoration: none; color: var(--text); gap: var(--space-3); }
.gcouncil > span:last-child { margin-left: auto; color: var(--text-muted); }
.gcouncil__label { margin-right: auto; }
.gnav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 6; height: 4rem; display: flex; justify-content: space-around; align-items: center; background: #0b0e14; border-top: 1px solid #1a2130; padding-bottom: env(safe-area-inset-bottom); }
.gnav__item { position: relative; display: grid; place-items: center; width: 3.25rem; height: 3.25rem; color: var(--text-muted); border-radius: 12px; text-decoration: none; }
.gnav__item:hover, .gnav__item.is-on { color: var(--text); }
.gnav__item.is-on::after { content: ""; position: absolute; bottom: .35rem; width: 5px; height: 5px; border-radius: 50%; background: #37b6ff; }
.gnav__item--plus { border: 1.5px solid #3a4560; color: var(--text); }
.gpage { padding-bottom: 6rem; }
.greport { margin: var(--space-5) 0; border: 1px solid #232b3b; border-radius: 12px; padding: 0 var(--space-4); }
.greport > summary { cursor: pointer; padding: var(--space-3) 0; min-height: 2.75rem; color: var(--text-muted); }
.greport fieldset { border: 0; padding: 0; margin: 0 0 var(--space-3); }
.greport__opt { display: block; padding: var(--space-2) 0; }
.greport form { padding-bottom: var(--space-4); }
.gbyline { margin: calc(-1 * var(--space-2)) 0 var(--space-4); color: var(--text-muted); font-size: var(--text-sm); }
.gbyline a { color: #8aa4ff; text-decoration: none; }
.gbyline a:hover { text-decoration: underline; }
.gbreakdown { margin: 0 0 var(--space-4); padding: var(--space-3) var(--space-4); background: #0e131d; border: 1px solid #1c2332; border-radius: 12px; }
.gbreakdown summary { cursor: pointer; font-weight: 600; }
.gbreakdown ul { list-style: none; margin: var(--space-3) 0; padding: 0; }
.gbreakdown li { display: flex; justify-content: space-between; padding: 2px 0; }
.gvh { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.gfeed__notice { margin: var(--space-4); }
.gfilter { margin: 0; padding: var(--space-2) var(--space-4); font-size: var(--text-sm); color: var(--text-muted); background: #0b0e14; border-bottom: 1px solid #1a2130; }
.gfilter a { margin-left: var(--space-2); color: #8aa4ff; }
.gfilter + .gfeed { height: calc(100vh - 9.75rem); height: calc(100svh - 9.75rem); }
.glayout { display: none; }
@media (min-width: 48rem) {
.glayout { display: flex; gap: 2px; padding: 2px; border: 1px solid #232b3b; border-radius: 10px; background: #0b0e14; }
.glayout a { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 8px; color: var(--text-muted); }
.glayout a:hover { color: var(--text); }
.glayout a[aria-current="true"] { background: #1a2233; color: var(--text); }
}
.gfeed--table { scroll-snap-type: none; padding: 0 var(--space-4) var(--space-4); }
.gfeed--table .gmore, .gfeed--table .gfeed__notice { scroll-snap-align: none; }
.gtable { width: 100%; max-width: 72rem; margin: 0 auto; border-collapse: collapse; table-layout: fixed; font-size: var(--text-sm); }
.gtable th, .gtable td { padding: var(--space-3); text-align: left; border-bottom: 1px solid #1a2130; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gtable thead th { position: sticky; top: 0; z-index: 1; background: #0b0e14; color: var(--text-muted); font-size: var(--text-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.gtable thead a { color: inherit; text-decoration: none; }
.gtable thead a:hover, .gtable thead th[aria-sort] a { color: var(--text); }
.gtable thead th[aria-sort="descending"] a::after { content: " \2193"; }
.gtable tbody tr:hover { background: #0f1420; }
th.gtable__q { font-weight: 600; }
.gtable__q a { color: var(--text); text-decoration: none; }
.gtable__q a:hover, .gtable__q a:focus-visible { text-decoration: underline; }
.gtable .gchip { line-height: 1.7; }
.gtable__verdict { width: 17rem; }
.gtable__models { width: 12rem; }
.gtable__score { width: 5rem; text-align: right; }
.gtable thead th.gtable__score { text-align: right; }
.gtable__pub { width: 7.5rem; }
@media (max-width: 47.99rem) { .gtable__models, .gtable__pub { display: none; } .gtable__verdict { width: 9rem; } }
.gbtn { display: inline-block; padding: .55rem 1rem; min-height: 2.75rem; line-height: 1.6; border: 1px solid var(--border); border-radius: 10px; color: var(--text); text-decoration: none; font-size: var(--text-sm); }
.gbtn:hover { border-color: var(--text-muted); }
.gchallenges__list { margin: var(--space-3) 0 0; padding-left: 1.25rem; }
.gchallenges__list li { margin-bottom: var(--space-2); }
.gchallenges__by { color: var(--text-muted); font-size: var(--text-sm); }
.gturn__challenge { margin: var(--space-2) 0 0; font-size: var(--text-sm); }
.gturn__challenge a { color: var(--text-muted); }
