/* Shared hub + game shells for Hry o dárek */
:root {
	--g-ink: #1f2a24;
	--g-muted: #5a6b62;
	--g-sage: #7f9e8a;
	--g-sage-deep: #3d5c4a;
	--g-coral: #e07a5f;
	--g-coral-deep: #c45c42;
	--g-cream: #f7fbf8;
	--g-shadow: rgba(31, 42, 36, 0.14);
	--g-font-display: "Fredoka", sans-serif;
	--g-font-body: "Nunito", system-ui, sans-serif;
}

/* —— Hub —— */
.games-hub {
	position: relative;
	min-height: calc(100vh - 4.5rem);
	font-family: var(--g-font-body);
	color: var(--g-ink);
	overflow: hidden;
}

.games-hub__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		radial-gradient(ellipse 70% 45% at 10% 0%, #d5ebe0 0%, transparent 55%),
		radial-gradient(ellipse 55% 40% at 95% 8%, #f8e0d6 0%, transparent 50%),
		linear-gradient(165deg, #e4f0e9 0%, #f4efe8 48%, #e8f1ec 100%);
}

.games-hub__wrap {
	position: relative;
	z-index: 1;
	width: min(1100px, 100% - 2rem);
	margin: 0 auto;
	padding: 2.25rem 0 3.5rem;
}

.games-hub__header {
	text-align: center;
	margin-bottom: 2rem;
}

.games-hub__brand {
	margin: 0;
	font-family: var(--g-font-display);
	font-weight: 600;
	font-size: clamp(1.25rem, 3.5vw, 1.65rem);
	color: var(--g-sage-deep);
}

.games-hub__title {
	margin: 0.35rem 0 0;
	font-family: var(--g-font-display);
	font-weight: 700;
	font-size: clamp(2.2rem, 7vw, 3.5rem);
	letter-spacing: -0.03em;
	line-height: 1.05;
}

.games-hub__lead {
	margin: 0.7rem auto 0;
	max-width: 32rem;
	color: var(--g-muted);
	font-size: 1.05rem;
	line-height: 1.45;
}

.games-hub__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1rem;
}

.games-card {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	padding: 1.25rem 1.2rem 1.15rem;
	border-radius: 1.15rem;
	text-decoration: none;
	color: inherit;
	background: color-mix(in srgb, var(--g-cream) 88%, white);
	border: 1.5px solid color-mix(in srgb, var(--g-sage) 28%, transparent);
	box-shadow: 0 10px 24px var(--g-shadow);
	transition: transform 0.18s ease, box-shadow 0.18s ease;
	min-height: 11.5rem;
}

.games-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 28px rgba(31, 42, 36, 0.18);
	color: inherit;
	text-decoration: none;
}

.games-card__time {
	align-self: flex-start;
	font-family: var(--g-font-display);
	font-size: 0.75rem;
	font-weight: 600;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	background: color-mix(in srgb, var(--g-sage) 18%, transparent);
	color: var(--g-sage-deep);
}

.games-card__title {
	margin: 0;
	font-family: var(--g-font-display);
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.games-card__lead {
	margin: 0;
	flex: 1;
	font-size: 0.95rem;
	color: var(--g-muted);
	line-height: 1.4;
}

.games-card__cta {
	font-family: var(--g-font-display);
	font-weight: 600;
	color: var(--g-coral-deep);
}

.games-card--coral { border-color: color-mix(in srgb, var(--g-coral) 40%, transparent); }
.games-card--sage { border-color: color-mix(in srgb, var(--g-sage) 50%, transparent); }
.games-card--amber { border-color: #e0b35a; }
.games-card--violet { border-color: #9b8ec4; }
.games-card--rose { border-color: #d48aa0; }
.games-card--brown { border-color: #c4a574; }
.games-card--forest { border-color: #6a9b78; }
.games-card--teal { border-color: #5fadb0; }
.games-card--indigo { border-color: #7a8bc4; }
.games-card--gold { border-color: #d4b45a; }
.games-card--slate { border-color: #7a8a96; }
.games-card--plum { border-color: #a67a9b; }

.games-hub__alt {
	margin: 2rem 0 0;
	text-align: center;
	color: var(--g-muted);
	font-size: 0.95rem;
}

.games-hub__alt a {
	color: var(--g-sage-deep);
	font-weight: 700;
}

/* —— Shared game shell —— */
.g-game {
	position: relative;
	min-height: calc(100vh - 4.5rem);
	font-family: var(--g-font-body);
	color: var(--g-ink);
	overflow: hidden;
}

.g-game__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		radial-gradient(ellipse 70% 50% at 12% 8%, #d5ebe0 0%, transparent 55%),
		radial-gradient(ellipse 60% 45% at 92% 12%, #f8e0d6 0%, transparent 50%),
		linear-gradient(165deg, #e4f0e9 0%, #f4efe8 48%, #e8f1ec 100%);
}

.g-game__wrap {
	position: relative;
	z-index: 1;
	width: min(920px, 100% - 2rem);
	margin: 0 auto;
	padding: 2rem 0 3rem;
	display: flex;
	flex-direction: column;
	gap: 1.15rem;
	min-height: inherit;
}

.g-game__top {
	text-align: center;
}

.g-game__brand {
	margin: 0;
	font-family: var(--g-font-display);
	font-weight: 600;
	font-size: 1.1rem;
	color: var(--g-sage-deep);
}

.g-game__brand a {
	color: inherit;
	text-decoration: none;
}

.g-game__brand a:hover {
	text-decoration: underline;
}

.g-game__title {
	margin: 0.3rem 0 0;
	font-family: var(--g-font-display);
	font-weight: 700;
	font-size: clamp(1.9rem, 6vw, 3rem);
	letter-spacing: -0.03em;
	line-height: 1.05;
}

.g-game__lead {
	margin: 0.55rem auto 0;
	max-width: 28rem;
	color: var(--g-muted);
	line-height: 1.45;
}

.g-game__progress {
	display: flex;
	justify-content: center;
	gap: 0.45rem;
	margin-top: 0.95rem;
}

.g-game__seg {
	width: 2.4rem;
	height: 0.35rem;
	border-radius: 999px;
	background: color-mix(in srgb, var(--g-sage) 28%, transparent);
}

.g-game__seg.is-done,
.g-game__seg.is-active {
	background: var(--g-coral);
}

.g-game__stage {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 280px;
}

.g-game__arena {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.85rem;
}

.g-game__footer {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
}

.g-btn {
	font-family: var(--g-font-display);
	font-weight: 600;
	font-size: 1.05rem;
	border: none;
	cursor: pointer;
	border-radius: 999px;
	padding: 0.85rem 1.5rem;
	transition: transform 0.15s ease, background 0.2s, opacity 0.2s;
}

.g-btn:active { transform: scale(0.97); }
.g-btn:disabled { opacity: 0.55; cursor: not-allowed; transform: none; }
.g-btn[hidden] { display: none !important; }

.g-btn--primary {
	background: var(--g-coral);
	color: #fffaf7;
	min-width: 10rem;
	box-shadow: 0 10px 24px color-mix(in srgb, var(--g-coral) 35%, transparent);
}

.g-btn--primary:hover:not(:disabled) { background: var(--g-coral-deep); }

.g-btn--ghost {
	background: transparent;
	color: var(--g-sage-deep);
	border: 1.5px solid color-mix(in srgb, var(--g-sage) 45%, transparent);
}

.g-choice {
	appearance: none;
	border: none;
	background: color-mix(in srgb, var(--g-cream) 92%, white);
	border: 1.5px solid color-mix(in srgb, var(--g-sage) 30%, transparent);
	border-radius: 1rem;
	padding: 1rem 1.1rem;
	cursor: pointer;
	font-family: var(--g-font-display);
	font-weight: 600;
	font-size: 1rem;
	color: var(--g-sage-deep);
	min-width: 7.5rem;
	box-shadow: 0 8px 18px var(--g-shadow);
	transition: transform 0.15s ease, border-color 0.15s;
}

.g-choice:hover { transform: translateY(-3px); border-color: var(--g-coral); }
.g-choice.is-selected { border-color: var(--g-coral); background: #fff; transform: scale(1.04); }
.g-choice.is-dimmed { opacity: 0.35; pointer-events: none; }

/* Portrety swipe */
.g-swipe {
	width: min(320px, 100%);
	touch-action: pan-y;
	user-select: none;
}

.g-swipe__card {
	background: #fff;
	border-radius: 1.25rem;
	border: 1.5px solid color-mix(in srgb, var(--g-sage) 28%, transparent);
	box-shadow: 0 14px 32px var(--g-shadow);
	padding: 2rem 1.5rem;
	text-align: center;
	min-height: 220px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.g-swipe__icon {
	font-size: 3rem;
	line-height: 1;
}

.g-swipe__label {
	font-family: var(--g-font-display);
	font-size: 1.5rem;
	font-weight: 700;
}

.g-swipe__hint {
	margin-top: 1rem;
	text-align: center;
	color: var(--g-muted);
	font-size: 0.9rem;
}

.g-swipe__actions {
	display: flex;
	justify-content: center;
	gap: 0.75rem;
	margin-top: 1rem;
}

/* Compass */
.g-compass {
	position: relative;
	width: min(280px, 80vw);
	aspect-ratio: 1;
	border-radius: 50%;
	background:
		conic-gradient(from -30deg, #f4a261, #e9c46a, #74c69d, #8d99ae, #e07a5f, #b08968, #f4a261);
	box-shadow: 0 12px 28px var(--g-shadow);
	display: grid;
	place-items: center;
}

.g-compass__face {
	width: 78%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--g-cream);
	border: 3px solid #fff;
	position: relative;
}

.g-compass__needle {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 6px;
	height: 42%;
	margin-left: -3px;
	margin-top: -42%;
	background: linear-gradient(var(--g-coral), var(--g-sage-deep));
	border-radius: 3px;
	transform-origin: bottom center;
	transition: transform 0.05s linear;
}

.g-compass__hub {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 16px;
	height: 16px;
	margin: -8px 0 0 -8px;
	border-radius: 50%;
	background: var(--g-ink);
}

.g-compass__labels {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.5rem;
	margin-top: 1rem;
	width: min(420px, 100%);
}

.g-compass__chip {
	text-align: center;
	font-family: var(--g-font-display);
	font-size: 0.8rem;
	font-weight: 600;
	padding: 0.35rem;
	border-radius: 0.5rem;
	background: rgba(255,255,255,0.7);
	color: var(--g-sage-deep);
}

.g-compass__chip.is-hot {
	background: var(--g-coral);
	color: #fff;
}

/* Package belt */
.g-belt {
	width: min(560px, 100%);
	position: relative;
	padding: 1rem 0 2rem;
}

.g-belt__track {
	height: 12px;
	background: linear-gradient(90deg, #c9b59a, #a89070);
	border-radius: 6px;
	position: relative;
	margin: 2.5rem 0 1.5rem;
}

.g-belt__pkg {
	position: absolute;
	top: -28px;
	left: 0;
	width: 56px;
	height: 44px;
	background: linear-gradient(#f0c9a0, #e0a978);
	border: 2px solid #c4844e;
	border-radius: 0.4rem;
	transition: left 0.45s ease;
	display: grid;
	place-items: center;
	font-size: 1.2rem;
}

.g-belt__stations {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 0.65rem;
}

/* Wishes */
.g-spark {
	width: 88px;
	height: 88px;
	border-radius: 50%;
	border: none;
	cursor: pointer;
	background: radial-gradient(circle at 35% 30%, #fff7d6, #f4a261 55%, #e07a5f);
	box-shadow: 0 0 0 0 rgba(224, 122, 95, 0.4);
	animation: g-pulse 2s ease-in-out infinite;
	font-size: 1.6rem;
}

.g-spark.is-open {
	animation: none;
	transform: scale(1.1);
	box-shadow: 0 0 24px rgba(224, 122, 95, 0.55);
}

@keyframes g-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(224, 122, 95, 0.35); }
	50% { box-shadow: 0 0 0 14px rgba(224, 122, 95, 0); }
}

/* Mystery boxes */
.g-mbox {
	width: 100px;
	cursor: pointer;
	border: none;
	background: transparent;
	padding: 0;
}

.g-mbox__visual {
	height: 78px;
	border-radius: 0.45rem 0.45rem 0.6rem 0.6rem;
	background: linear-gradient(#f0c9a0, #e0a978);
	border: 2px solid #c4844e;
	position: relative;
	box-shadow: 0 8px 16px var(--g-shadow);
}

.g-mbox__visual::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	width: 12px;
	transform: translateX(-50%);
	background: var(--g-coral);
}

.g-mbox__tag {
	margin-top: 0.45rem;
	font-family: var(--g-font-display);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--g-sage-deep);
}

.g-mbox.is-opened .g-mbox__visual {
	opacity: 0.45;
	transform: scale(0.92);
}

/* Owl */
.g-owl {
	font-size: 4rem;
	line-height: 1;
	margin-bottom: 0.5rem;
}

.g-owl__bubble {
	background: #fff;
	border-radius: 1rem;
	padding: 1rem 1.25rem;
	border: 1.5px solid color-mix(in srgb, var(--g-sage) 30%, transparent);
	box-shadow: 0 10px 22px var(--g-shadow);
	max-width: 28rem;
	margin: 0 auto 1rem;
	font-family: var(--g-font-display);
	font-weight: 600;
	text-align: center;
}

/* Map */
.g-map {
	width: min(480px, 100%);
	aspect-ratio: 4/3;
	border-radius: 1.25rem;
	background:
		radial-gradient(circle at 30% 40%, #c5e0d2 0 18%, transparent 19%),
		radial-gradient(circle at 70% 55%, #dceee3 0 22%, transparent 23%),
		linear-gradient(145deg, #9fbfad, #6f8f7c);
	border: 3px solid #fff;
	box-shadow: 0 12px 28px var(--g-shadow);
	position: relative;
	overflow: hidden;
}

.g-map__pin {
	position: absolute;
	transform: translate(-50%, -100%);
	border: none;
	background: #fff;
	color: var(--g-sage-deep);
	font-family: var(--g-font-display);
	font-weight: 600;
	font-size: 0.8rem;
	padding: 0.4rem 0.65rem;
	border-radius: 999px;
	cursor: pointer;
	box-shadow: 0 6px 14px rgba(0,0,0,0.15);
	white-space: nowrap;
}

.g-map__pin:hover,
.g-map__pin.is-selected {
	background: var(--g-coral);
	color: #fff;
}

/* Memory */
.g-memory {
	display: grid;
	grid-template-columns: repeat(4, minmax(64px, 88px));
	gap: 0.65rem;
	justify-content: center;
}

.g-mem {
	aspect-ratio: 3/4;
	border: none;
	border-radius: 0.75rem;
	cursor: pointer;
	background: var(--g-sage-deep);
	color: #fff;
	font-family: var(--g-font-display);
	font-weight: 700;
	font-size: 1.4rem;
	box-shadow: 0 8px 16px var(--g-shadow);
	transition: transform 0.15s ease;
}

.g-mem.is-flipped,
.g-mem.is-matched {
	background: #fff;
	color: var(--g-sage-deep);
	border: 1.5px solid color-mix(in srgb, var(--g-sage) 35%, transparent);
	font-size: 0.75rem;
	padding: 0.35rem;
	line-height: 1.2;
}

.g-mem.is-matched { opacity: 0.7; }

/* Dice */
.g-dice {
	width: 120px;
	height: 120px;
	border-radius: 1.1rem;
	background: #fff;
	border: 2px solid color-mix(in srgb, var(--g-sage) 35%, transparent);
	box-shadow: 0 12px 28px var(--g-shadow);
	display: grid;
	place-items: center;
	font-family: var(--g-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	text-align: center;
	padding: 0.75rem;
	transition: transform 0.12s ease;
}

.g-dice.is-rolling {
	animation: g-shake 0.45s ease;
}

@keyframes g-shake {
	0%, 100% { transform: rotate(0); }
	25% { transform: rotate(-12deg) scale(1.05); }
	75% { transform: rotate(12deg) scale(1.05); }
}

.g-dice__meta {
	margin-top: 0.75rem;
	text-align: center;
	color: var(--g-muted);
	font-size: 0.9rem;
}

/* —— Labyrint —— */
.g-lab {
	width: min(640px, 100%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}

.g-lab__trail {
	display: flex;
	align-items: center;
	gap: 0.35rem;
}

.g-lab__node {
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-family: var(--g-font-display);
	font-weight: 700;
	font-size: 0.85rem;
	background: color-mix(in srgb, var(--g-sage) 18%, white);
	color: var(--g-muted);
	border: 1.5px solid color-mix(in srgb, var(--g-sage) 35%, transparent);
}

.g-lab__node.is-done {
	background: var(--g-sage-deep);
	color: #fff;
	border-color: var(--g-sage-deep);
}

.g-lab__node.is-here {
	background: var(--g-coral);
	color: #fff;
	border-color: var(--g-coral);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--g-coral) 22%, transparent);
}

.g-lab__line {
	width: 1.5rem;
	height: 3px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--g-sage) 25%, transparent);
}

.g-lab__line.is-done {
	background: var(--g-sage-deep);
}

.g-lab__crumbs {
	margin: 0;
	font-size: 0.9rem;
	color: var(--g-muted);
	text-align: center;
	line-height: 1.4;
}

.g-lab__doors {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 0.75rem;
	width: 100%;
}

.g-lab__door {
	appearance: none;
	border: 1.5px solid color-mix(in srgb, var(--g-sage) 32%, transparent);
	background:
		linear-gradient(180deg, #fff9f2 0%, #f3ebe0 100%);
	border-radius: 0.85rem 0.85rem 0.35rem 0.35rem;
	padding: 1.1rem 0.85rem 0.95rem;
	cursor: pointer;
	text-align: center;
	box-shadow: 0 8px 18px var(--g-shadow);
	transition: transform 0.15s ease, border-color 0.15s, box-shadow 0.15s;
	animation: g-rise 0.35s ease both;
}

.g-lab__door:hover {
	transform: translateY(-4px);
	border-color: var(--g-coral);
}

.g-lab__door.is-open {
	transform: scale(1.04) rotateY(12deg);
	border-color: var(--g-coral);
	box-shadow: 0 12px 28px color-mix(in srgb, var(--g-coral) 28%, transparent);
}

.g-lab__door-label {
	display: block;
	font-family: var(--g-font-display);
	font-weight: 700;
	font-size: 0.98rem;
	color: var(--g-sage-deep);
}

.g-lab__door-hint {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.8rem;
	color: var(--g-muted);
}

.g-lab__chest {
	text-align: center;
	animation: g-rise 0.4s ease both;
}

.g-lab__chest-icon {
	display: block;
	width: 72px;
	height: 56px;
	margin: 0 auto 0.75rem;
	border-radius: 8px 8px 6px 6px;
	background:
		linear-gradient(180deg, #c45c42 0 18%, #e07a5f 18% 22%, #d4a574 22% 78%, #b08968 78%);
	box-shadow: 0 10px 22px var(--g-shadow);
	position: relative;
}

.g-lab__chest-icon::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 52%;
	width: 14px;
	height: 14px;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: #e0b35a;
	box-shadow: inset 0 0 0 3px #c45c42;
}

.g-lab__chest p {
	margin: 0;
	font-family: var(--g-font-display);
	font-weight: 600;
	color: var(--g-sage-deep);
}

/* —— Alchymie —— */
.g-alc {
	width: min(640px, 100%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.1rem;
}

.g-alc__cauldron {
	width: 120px;
	height: 100px;
	position: relative;
	border-radius: 0 0 55% 55% / 0 0 70% 70%;
	background: #2f3a34;
	box-shadow: 0 14px 28px var(--g-shadow);
	overflow: hidden;
	border: 3px solid #1f2a24;
}

.g-alc__cauldron::before {
	content: "";
	position: absolute;
	left: -8px;
	right: -8px;
	top: 8px;
	height: 14px;
	border-radius: 999px;
	background: #3d5c4a;
	z-index: 2;
}

.g-alc__liquid {
	position: absolute;
	left: 8%;
	right: 8%;
	bottom: 8%;
	height: 55%;
	border-radius: 40% 40% 50% 50%;
	background: linear-gradient(180deg, #7f9e8a, #3d5c4a);
	transition: background 0.35s ease, height 0.35s ease;
}

.g-alc__cauldron.is-boiling .g-alc__liquid {
	height: 70%;
	animation: g-brew 0.7s ease-in-out infinite alternate;
}

.g-alc__bubbles {
	position: absolute;
	inset: 20% 10% 10%;
	pointer-events: none;
	z-index: 1;
}

.g-alc__bubble {
	position: absolute;
	bottom: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.45);
	animation: g-bubble 1.4s ease-in infinite;
}

.g-alc__meter {
	display: flex;
	gap: 0.45rem;
}

.g-alc__drop {
	width: 0.85rem;
	height: 0.85rem;
	border-radius: 50% 50% 50% 10%;
	transform: rotate(-45deg);
	background: color-mix(in srgb, var(--g-sage) 22%, white);
	border: 1.5px solid color-mix(in srgb, var(--g-sage) 35%, transparent);
	transition: background 0.25s, transform 0.25s;
}

.g-alc__drop.is-filled {
	transform: rotate(-45deg) scale(1.15);
	border-color: transparent;
}

.g-alc__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 0.7rem;
	width: 100%;
}

.g-alc__ing {
	appearance: none;
	display: flex;
	align-items: center;
	gap: 0.65rem;
	border: 1.5px solid color-mix(in srgb, var(--g-sage) 30%, transparent);
	background: color-mix(in srgb, var(--g-cream) 92%, white);
	border-radius: 1rem;
	padding: 0.75rem 0.9rem;
	cursor: pointer;
	text-align: left;
	box-shadow: 0 8px 16px var(--g-shadow);
	transition: transform 0.15s ease, border-color 0.15s;
	animation: g-rise 0.35s ease both;
}

.g-alc__ing:hover {
	transform: translateY(-3px);
	border-color: var(--g-coral);
}

.g-alc__ing.is-tossed {
	transform: translateY(-18px) scale(0.92);
	opacity: 0.55;
}

.g-alc__swatch {
	width: 1.35rem;
	height: 1.35rem;
	border-radius: 50%;
	flex-shrink: 0;
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.35);
}

.g-alc__ing-label {
	font-family: var(--g-font-display);
	font-weight: 600;
	font-size: 0.92rem;
	color: var(--g-sage-deep);
	line-height: 1.25;
}

.g-alc__done {
	margin: 0;
	font-family: var(--g-font-display);
	font-weight: 600;
	color: var(--g-sage-deep);
}

@keyframes g-rise {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: translateY(0); }
}

@keyframes g-brew {
	from { filter: brightness(1); }
	to { filter: brightness(1.15); }
}

@keyframes g-bubble {
	0% { transform: translateY(0) scale(0.6); opacity: 0; }
	20% { opacity: 0.7; }
	100% { transform: translateY(-48px) scale(1); opacity: 0; }
}

@media (max-width: 640px) {
	.games-hub__wrap,
	.g-game__wrap { padding-top: 1.35rem; }
	.g-memory { grid-template-columns: repeat(3, minmax(72px, 1fr)); }
	.g-lab__doors,
	.g-alc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
