/* ==========================================================================
   Character name list + side controls
   Used by bakery, milford, maxwell, supporting and susara pages.
   Built by assets/js/quickjump.js from the character headings on each page.
   ========================================================================== */

/* Name list, sits under the banner and scrolls with the page */

.quickjump {
	margin: 2.5em auto 0em auto;
	padding: 0 1.5em;
	max-width: 70%;
	text-align: center;
	font-size: 1.3em;
	line-height: 1.6;
	letter-spacing: 0.02em;
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.55);
}

	.quickjump:empty {
		display: none;
	}

	/* 5 or fewer names: one line (quickjump.js shrinks the text to fit) */
	.quickjump.qj-nowrap {
		white-space: nowrap;
	}

	/* name + its trailing bullet travel together, so a bullet never starts a line */
	.qj-item {
		white-space: nowrap;
	}

	.qj-name {
		border-bottom: 0;
		font-weight: 600;
		color: #ffffff;
		cursor: pointer;
	}

		.qj-name:hover,
		.qj-name:focus-visible {
			color: #fda2c4 !important;
			outline: none;
		}

	.qj-sep {
		display: inline-block;
		padding: 0 0.6em;
		opacity: 1;
	}

/* Side controls: back to top / previous / next */

.qj-controls {
	position: fixed;
	top: 50%;
	right: 0.7em;
	transform: translateY(-50%);
	z-index: 400;
	display: flex;
	flex-direction: column;
	gap: 0.35em;
	opacity: 1;
	pointer-events: auto;
	transition: opacity 0.3s ease;
}

	.qj-controls.qj-hidden {
		opacity: 0;
		pointer-events: none;
	}

	.qj-controls .qj-ctl {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 3em;
		height: 3em;
		margin: 0;
		padding: 0;
		margin-bottom: 1em;
		margin-right: 1em;	
		border: 0;
		border-radius: 50%;
		background: #825998d2 !important;
		box-shadow: none !important;
		color: #ffffff;
		font-size: 1em;
		line-height: 1;
		letter-spacing: 0;
		text-transform: none;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
		transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
	}

	.qj-controls .qj-ctl:hover,
	.qj-controls .qj-ctl:focus-visible {
		background: rgba(255, 255, 255, 0.55) !important;
		color: #ff337e;
		outline: none;
	}

	.qj-controls .qj-ctl:disabled {
		opacity: 0.2;
		cursor: default;
		pointer-events: none;
	}

/* Back to top: bottom-left, small and out of the way */

.qj-backtotop {
	position: fixed;
	right: 0.9em;
	bottom: 0.9em;
	z-index: 400;

	margin: 0;
	padding: 0.2em 0;
	border: 0;
	background: none !important;
	box-shadow: none !important;

	font-size: 0.75em;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: none;
	color: #ffffff;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7), 0 0 8px rgba(0, 0, 0, 0.35);

	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	opacity: 1;
	pointer-events: auto;
	transition: opacity 0.3s ease, color 0.2s ease;
}

	.qj-backtotop.qj-hidden {
		opacity: 0;
		pointer-events: none;
	}

	.qj-backtotop:hover,
	.qj-backtotop:focus-visible {
		color: #fda2c4 !important;
		outline: none;
	}

	.qj-backtotop .qj-caret {
		display: inline-block;
		font-size: 0.8em;
		margin-right: 0.15em;
	}

/* Phones */

@media screen and (max-width: 736px) {

	.quickjump {
		margin: 3em auto 2em auto;
		padding: 0 1em;
		font-size: 0.8em;
		line-height: 1.8;
	}

	.qj-sep {
		padding: 0 0.4em;
	}

	.qj-controls {
		right: 0.3em;
	}

	.qj-controls .qj-ctl {
		font-size: 0.7em;
	}

	.qj-backtotop {
		right: 0.6em;
		bottom: 0.7em;
		font-size: 0.68em;
	}
}
