.gs-body {
	background:
		radial-gradient(circle at 8% 10%, rgba(199, 210, 254, .55), transparent 24rem),
		radial-gradient(circle at 92% 26%, rgba(254, 240, 138, .25), transparent 22rem),
		#f8fafc;
}
.gs-back-link { display: inline-flex; align-items: center; gap: .55rem; color: #64748b; font-size: .875rem; font-weight: 800; }
.gs-back-link:hover { color: #4f46e5; }
.gs-hero { min-height: 31rem; background: #151443; isolation: isolate; }
.gs-hero__art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.gs-hero__veil { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(15, 16, 55, .97) 0%, rgba(24, 24, 84, .92) 37%, rgba(32, 30, 90, .42) 65%, rgba(15, 23, 42, .06) 100%); }
.gs-hero__copy { display: flex; flex-direction: column; justify-content: center; width: min(100%, 39rem); min-height: 31rem; }
.gs-eyebrow { display: inline-flex; align-items: center; align-self: flex-start; gap: .5rem; padding: .45rem .8rem; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: rgba(255,255,255,.1); color: #e0e7ff; font-size: .72rem; font-weight: 900; backdrop-filter: blur(8px); }
.gs-hero-chip { display: inline-flex; align-items: center; gap: .45rem; padding: .48rem .7rem; border-radius: .8rem; background: rgba(255,255,255,.1); color: #eef2ff; font-size: .72rem; font-weight: 800; border: 1px solid rgba(255,255,255,.1); backdrop-filter: blur(8px); }
.gs-primary-btn, .gs-game-btn { min-height: 3.5rem; border-radius: 1rem; display: inline-flex; align-items: center; justify-content: center; gap: .7rem; font-weight: 900; transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease; }
.gs-primary-btn { padding: .55rem .9rem .55rem .55rem; color: white; background: #4f46e5; box-shadow: 0 12px 28px -15px rgba(99,102,241,.9); }
.gs-primary-btn:hover { background: #6366f1; transform: translateY(-2px); }
.gs-primary-btn__icon { width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: .75rem; background: rgba(255,255,255,.14); }
.gs-game-btn { padding: .75rem 1rem; color: #eef2ff; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(8px); }
.gs-game-btn:hover { background: rgba(255,255,255,.16); transform: translateY(-2px); }
.gs-primary-btn:focus-visible, .gs-game-btn:focus-visible, .gs-card:focus-visible { outline: 3px solid #fbbf24; outline-offset: 4px; }
.gs-progress-panel { display: grid; grid-template-columns: minmax(15rem, auto) minmax(8rem, 1fr) auto; align-items: center; gap: 1rem; margin: -1.35rem 1.5rem 0; position: relative; z-index: 12; padding: 1rem 1.2rem; border-radius: 1.25rem; background: rgba(255,255,255,.94); box-shadow: 0 18px 40px -24px rgba(30,41,59,.42); border: 1px solid rgba(226,232,240,.85); backdrop-filter: blur(12px); }
.gs-progress-icon { width: 2.8rem; height: 2.8rem; border-radius: .9rem; display: grid; place-items: center; color: #4f46e5; background: #eef2ff; }
.gs-progress-track { height: .65rem; overflow: hidden; border-radius: 99px; background: #eef2f7; }
.gs-progress-fill { height: 100%; border-radius: inherit; background: linear-gradient(90deg, #fbbf24, #10b981); transition: width .5s ease; }
.gs-kicker { display: inline-flex; align-items: center; gap: .45rem; color: #6366f1; font-size: .72rem; font-weight: 900; letter-spacing: .04em; }
.gs-room-count { display: inline-flex; align-items: center; gap: .5rem; align-self: flex-start; padding: .55rem .8rem; border-radius: .85rem; color: #4338ca; background: #eef2ff; font-size: .78rem; font-weight: 900; }
.gs-card { display: block; overflow: hidden; border-radius: 1.5rem; background: white; border: 1px solid #e8edf5; box-shadow: 0 12px 30px -24px rgba(30,41,59,.48); transition: transform .22s cubic-bezier(.22,1,.36,1), box-shadow .22s ease, border-color .22s ease; }
.gs-card:hover { transform: translateY(-5px); border-color: color-mix(in srgb, var(--accent), white 65%); box-shadow: 0 24px 44px -28px rgba(30,41,59,.55); }
.gs-card__art { position: relative; height: 14.5rem; overflow: hidden; background: #312e81; }
.gs-card__art img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.22,1,.36,1); }
.gs-card:hover .gs-card__art img { transform: scale(1.035); }
.gs-card__shade { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(15,23,42,.3) 0%, transparent 42%, rgba(15,23,42,.9) 100%); }
.gs-number, .gs-hot { display: inline-flex; align-items: center; gap: .35rem; padding: .38rem .65rem; border-radius: 999px; font-size: .68rem; font-weight: 900; box-shadow: 0 4px 14px -8px rgba(15,23,42,.5); }
.gs-number { background: rgba(255,255,255,.95); color: #3730a3; }
.gs-hot { background: rgba(244,63,94,.92); color: white; }
.gs-card__body { padding: 1.15rem 1.25rem 1.25rem; }
.gs-topic-chip { display: inline-flex; align-items: center; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: .28rem .55rem; border-radius: .6rem; background: #f1f5f9; color: #64748b; font-size: .66rem; font-weight: 800; }
.gs-card__cta { flex: none; display: inline-flex; align-items: center; gap: .5rem; padding: .58rem .72rem; border-radius: .75rem; color: white; background: var(--accent); font-size: .75rem; font-weight: 900; transition: gap .18s ease, filter .18s ease; }
.gs-card:hover .gs-card__cta { gap: .7rem; filter: brightness(.96); }
@media (max-width: 767px) {
	.gs-hero { min-height: 39rem; }
	.gs-hero__art { object-position: 66% center; }
	.gs-hero__veil { background: linear-gradient(180deg, rgba(15,16,55,.28) 0%, rgba(15,16,55,.28) 34%, rgba(15,16,55,.9) 62%, #0f1037 100%); }
	.gs-hero__copy { min-height: 39rem; justify-content: flex-end; padding-top: 15rem; }
	.gs-progress-panel { grid-template-columns: 1fr auto; margin: -1rem .75rem 0; }
	.gs-progress-track { grid-column: 1 / -1; grid-row: 2; }
	.gs-card__art { height: 13.5rem; }
}
@media (max-width: 479px) {
	.gs-primary-btn, .gs-game-btn { width: 100%; }
	.gs-card__art { height: 12.5rem; }
}
@media (prefers-reduced-motion: reduce) {
	.gs-primary-btn, .gs-game-btn, .gs-card, .gs-card__art img, .gs-progress-fill { transition: none; }
	.gs-primary-btn:hover, .gs-game-btn:hover, .gs-card:hover { transform: none; }
	.gs-card:hover .gs-card__art img { transform: none; }
}
